libCIrrlicht_la_SOURCES = \
src/CIrrlicht.cpp \
src/IGUIEnvironment.cpp \
+ src/IVideoDriver.cpp \
src/IrrlichtDevice.cpp
libCIrrlicht_la_CPPFLAGS = -I$(top_srcdir)/include
libCIrrlicht_la_LDFLAGS = -version-info 0:1
include_HEADERS = \
include/EDriverTypes.h \
include/IGUIEnvironment.h \
+ include/IVideoDriver.h \
include/IrrlichtDevice.h \
+ include/SColor.h \
include/cirrlicht.h \
include/dimension2d.h \
include/rect.h
--- /dev/null
+/* c-irrlicht --- C bindings for Irrlicht Engine
+
+ Copyright (C) 2019 Javier Sancho <jsf@jsancho.org>
+
+ This file is part of c-irrlicht.
+
+ c-irrlicht is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 3 of the
+ License, or (at your option) any later version.
+
+ c-irrlicht is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with guile-irrlicht. If not, see
+ <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __C_IRR_I_VIDEO_DRIVER_H_INCLUDED__
+#define __C_IRR_I_VIDEO_DRIVER_H_INCLUDED__
+
+#include "SColor.h"
+#include "rect.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ bool irr_video_IVideoDriver_beginScene(void* driver,
+ bool backBuffer,
+ bool zBuffer,
+ const irr_video_SColor* color,
+ void* videoData, // not used for now
+ const irr_core_rect_s32* sourceRect);
+
+ bool irr_videoIVideoDriver_endScene(void* driver);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
--- /dev/null
+/* c-irrlicht --- C bindings for Irrlicht Engine
+
+ Copyright (C) 2019 Javier Sancho <jsf@jsancho.org>
+
+ This file is part of c-irrlicht.
+
+ c-irrlicht is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 3 of the
+ License, or (at your option) any later version.
+
+ c-irrlicht is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with guile-irrlicht. If not, see
+ <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __C_COLOR_H_INCLUDED__
+#define __C_COLOR_H_INCLUDED__
+
+typedef struct
+{
+ u_int32_t a;
+ u_int32_t r;
+ u_int32_t g;
+ u_int32_t b;
+} irr_video_SColor;
+
+#endif
--- /dev/null
+/* c-irrlicht --- C bindings for Irrlicht Engine
+
+ Copyright (C) 2019 Javier Sancho <jsf@jsancho.org>
+
+ This file is part of c-irrlicht.
+
+ c-irrlicht is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 3 of the
+ License, or (at your option) any later version.
+
+ c-irrlicht is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with guile-irrlicht. If not, see
+ <http://www.gnu.org/licenses/>.
+*/
+
+#include <irrlicht/irrlicht.h>
+#include "IVideoDriver.h"
+
+extern "C" {
+ bool irr_video_IVideoDriver_beginScene(void* driver,
+ bool backBuffer,
+ bool zBuffer,
+ const irr_video_SColor* color,
+ void* videoData, // not used for now
+ const irr_core_rect_s32* sourceRect)
+ {
+ // Color
+ irr::video::SColor col = irr::video::SColor(color->a, color->r,
+ color->g, color->b);
+
+ // Video data
+ irr::video::SExposedVideoData vdata = irr::video::SExposedVideoData();
+
+ // Source rect
+ irr::core::rect<irr::s32> rect = \
+ irr::core::rect<irr::s32>(sourceRect->x,
+ sourceRect->y,
+ sourceRect->x2,
+ sourceRect->y2);
+
+ // Begin scene
+ return ((irr::video::IVideoDriver*)driver)->beginScene(backBuffer,
+ zBuffer,
+ col,
+ vdata,
+ &rect);
+ }
+
+ bool irr_videoIVideoDriver_endScene(void* driver)
+ {
+ return ((irr::video::IVideoDriver*)driver)->endScene();
+ }
+}