libCIrrlicht.la
libtool
ltmain.sh
+m4/
missing
src/.deps/
src/.dirstamp
lib_LTLIBRARIES = libCIrrlicht.la
libCIrrlicht_la_SOURCES = \
src/CIrrlicht.cpp \
+ src/IGUIEnvironment.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/IrrlichtDevice.h \
include/cirrlicht.h \
- include/dimension2d.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_GUI_ENVIRONMENT_H_INCLUDED__
+#define __C_GUI_ENVIRONMENT_H_INCLUDED__
+
+#include "rect.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ void* irr_gui_IGUIEnvironment_addStaticText(void* guienv,
+ const char* text,
+ const irr_core_rect_s32* rectangle,
+ bool border,
+ bool wordWrap,
+ void* parent,
+ int32_t id,
+ bool fillBackground);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
extern "C" {
#endif
+ void* irr_IrrlichtDevice_getGUIEnvironment(void* device);
void* irr_IrrlichtDevice_getSceneManager(void* device);
void* irr_IrrlichtDevice_getVideoDriver(void* device);
void irr_IrrlichtDevice_setWindowCaption(void* device, const char* text);
#define __C_IRRLICHT_H_INCLUDED__
#include "EDriverTypes.h"
+#include "IGUIEnvironment.h"
#include "IrrlichtDevice.h"
#include "dimension2d.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_RECT_H_INCLUDED__
+#define __C_IRR_RECT_H_INCLUDED__
+
+typedef struct
+{
+ int32_t x;
+ int32_t y;
+ int32_t x2;
+ int32_t y2;
+} irr_core_rect_s32;
+
+#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 <wchar.h>
+#include "IGUIEnvironment.h"
+
+extern "C" {
+ void* irr_gui_IGUIEnvironment_addStaticText(void* guienv,
+ const char* text,
+ const irr_core_rect_s32* rectangle,
+ bool border,
+ bool wordWrap,
+ void* parent,
+ int32_t id,
+ bool fillBackground)
+ {
+ // Convert to wide char text
+ wchar_t *wtext = (wchar_t*)malloc((strlen(text) + 1) * sizeof(wchar_t));
+ mbsrtowcs(wtext, &text, strlen(text) + 1, NULL);
+
+ // Make rectangle
+ irr::core::rect<irr::s32> rect = \
+ irr::core::rect<irr::s32>(rectangle->x,
+ rectangle->y,
+ rectangle->x2,
+ rectangle->y2);
+
+ // Add static text
+ irr::gui::IGUIStaticText *staticText = \
+ ((irr::gui::IGUIEnvironment*)guienv)->addStaticText(wtext,
+ rect,
+ border,
+ wordWrap,
+ (irr::gui::IGUIElement*)parent,
+ id,
+ fillBackground);
+ return staticText;
+ }
+}
#include "IrrlichtDevice.h"
extern "C" {
+ void* irr_IrrlichtDevice_getGUIEnvironment(void* device)
+ {
+ return ((irr::IrrlichtDevice*)device)->getGUIEnvironment();
+ }
+
void* irr_IrrlichtDevice_getSceneManager(void* device)
{
return ((irr::IrrlichtDevice*)device)->getSceneManager();