]> git.jsancho.org Git - guile-irrlicht.git/commitdiff
Unwrap Irrlicht objects in C++ instead of Guile
authorJavier Sancho <jsf@jsancho.org>
Wed, 13 May 2020 08:53:19 +0000 (10:53 +0200)
committerJavier Sancho <jsf@jsancho.org>
Wed, 13 May 2020 08:53:19 +0000 (10:53 +0200)
27 files changed:
Makefile.am
irrlicht/device.scm
irrlicht/gui.scm
irrlicht/irr.scm
irrlicht/scene.scm
irrlicht/video.scm
src/animated-mesh-scene-node.cpp
src/animated-mesh.cpp
src/box3d.cpp
src/cursor-control.cpp
src/device.cpp
src/event-receiver.cpp
src/file-system.cpp
src/gui-environment.cpp
src/gui-in-out-fader.cpp
src/gui-listbox.cpp
src/gui-scrollbar.cpp
src/gui-skin.cpp
src/gui-toolbar.cpp
src/reference-counted.cpp
src/scene-manager.cpp
src/scene-node.cpp
src/timer.cpp
src/vertex3d.cpp
src/video-driver.cpp
src/wrapped.cpp [new file with mode: 0644]
src/wrapped.h [new file with mode: 0644]

index c4a5bfb7b406a770c73ee268e3c8fa6e4c5c1321..f7c37c18166d71085d37cc8e7b8463bf232fd3b8 100644 (file)
@@ -58,7 +58,8 @@ libguile_irrlicht_la_SOURCES = \
   src/vector3d.cpp \
   src/vertex3d.cpp \
   src/video-driver.cpp \
-  src/wchar.cpp
+  src/wchar.cpp \
+  src/wrapped.cpp
 libguile_irrlicht_la_CPPFLAGS = @GUILE_CFLAGS@
 libguile_irrlicht_la_LDFLAGS = \
   -version-info 0:1 \
index 4db0e940695cacbf2d3680ae1a61db608ceca644..97e2bbab2d207f3ffb23dfb1350464cc00e3ce2e 100644 (file)
      fullscreen
      stencilbuffer
      vsync
-     (irr-pointer receiver))))
+     receiver)))
 
 (define-method (get-gui-environment (device <irrlicht-device>))
-  (make <gui-environment>
-    #:irr-pointer ((get-irrlicht-proc "getGUIEnvironment" device) (irr-pointer device))))
+  (let ((getGUIEnvironment (get-irrlicht-proc "getGUIEnvironment" device)))
+    (make <gui-environment>
+      #:irr-pointer (getGUIEnvironment device))))
 
 (define-method (get-scene-manager (device <irrlicht-device>))
   (make <scene-manager>
-    #:irr-pointer ((get-irrlicht-proc "getSceneManager" device) (irr-pointer device))))
+    #:irr-pointer ((get-irrlicht-proc "getSceneManager" device) device)))
 
 (define-method (get-video-driver (device <irrlicht-device>))
   (make <video-driver>
-    #:irr-pointer ((get-irrlicht-proc "getVideoDriver" device) (irr-pointer device))))
+    #:irr-pointer ((get-irrlicht-proc "getVideoDriver" device) device)))
 
 (define-method (run (device <irrlicht-device>))
-  ((get-irrlicht-proc "run" device) (irr-pointer device)))
+  ((get-irrlicht-proc "run" device) device))
 
 (define-method (set-window-caption! (device <irrlicht-device>) text)
   ((get-irrlicht-proc "setWindowCaption" device)
-   (irr-pointer device) text))
+   device text))
 
 (export create-device get-gui-environment get-scene-manager get-video-driver run
         set-window-caption!)
index 1d79f296ebff6d97ca88816fe3081f43e420d148..3d0e091e06b47ef11b44c0d4700f229580e056a1 100644 (file)
     (make <gui-static-text>
       #:irr-pointer
       ((get-irrlicht-proc "addStaticText" gui-environment parent)
-       (irr-pointer gui-environment)
+       gui-environment
        text
        rectangle
        border
        word-wrap
-       (irr-pointer parent)
+       parent
        id
        fill-background))))
 
 (define-method (draw-all (gui-environment <gui-environment>))
   ((get-irrlicht-proc "drawAll" gui-environment)
-   (irr-pointer gui-environment)))
+   gui-environment))
 
 (export <gui-environment> add-static-text! draw-all)
 
index 16cbf0de69c5c22608529b2f63a35f46a9b08df3..19af56fd58547cb7d6d56d918280280d4f87187a 100644 (file)
@@ -29,8 +29,8 @@
   (irr-class #:init-value "IReferenceCounted" #:getter irr-class))
 
 (define-method (drop! (obj <reference-counted>))
-  ((get-irrlicht-proc "drop" obj)
-   (irr-pointer obj)))
+  (let ((drop (get-irrlicht-proc "drop" obj)))
+    (drop obj)))
 
 (export <reference-counted> drop!)
 
index cf51aa56866c7fa8c44f39d9a3d9b71abe8f5724..a59e0fa3d4a554552cc61d4dce8ee4e042926535 100644 (file)
@@ -59,9 +59,9 @@
     (make <animated-mesh-scene-node>
       #:irr-pointer
       ((get-irrlicht-proc "addAnimatedMeshSceneNode" scene-manager parent)
-       (irr-pointer scene-manager)
-       (irr-pointer mesh)
-       (irr-pointer parent)
+       scene-manager
+       mesh
+       parent
        id
        position
        rotation
@@ -78,8 +78,8 @@
     (make <camera-scene-node>
       #:irr-pointer
       ((get-irrlicht-proc "addCameraSceneNode" scene-manager parent)
-       (irr-pointer scene-manager)
-       (irr-pointer parent)
+       scene-manager
+       parent
        position
        lookat
        id
 
 (define-method (draw-all (scene-manager <scene-manager>))
   ((get-irrlicht-proc "drawAll" scene-manager)
-   (irr-pointer scene-manager)))
+   scene-manager))
 
 (define-method (get-mesh (scene-manager <scene-manager>) filename)
   (make <animated-mesh>
     #:irr-pointer
     ((get-irrlicht-proc "getMesh" scene-manager)
-     (irr-pointer scene-manager)
+     scene-manager
      filename)))
 
 (export <scene-manager> add-animated-mesh-scene-node! add-camera-scene-node! draw-all get-mesh)
 
 (define-method (set-material-flag! (node <scene-node>) flag new-value)
   ((get-irrlicht-proc "setMaterialFlag" node)
-   (irr-pointer node)
+   node
    flag
    new-value))
 
 (define-method (set-material-texture! (node <scene-node>) texture-layer (texture <texture>))
   ((get-irrlicht-proc "setMaterialTexture" node)
-   (irr-pointer node)
+   node
    texture-layer
-   (irr-pointer texture)))
+   texture))
 
 (export <scene-node> set-material-flag! set-material-texture!)
 
 
 (define-method (set-md2-animation! (node <animated-mesh-scene-node>) anim)
   ((get-irrlicht-proc "setMD2Animation" node)
-   (irr-pointer node)
+   node
    anim))
 
 (export <animated-mesh-scene-node> set-md2-animation!)
index 53b28a62074cd2fe8826b1a7b4b9b2aaed6ba379..ee1f767fd9e541bedcd41d13acc4023e494fb48a 100644 (file)
@@ -44,7 +44,7 @@
          video-data
          source-rect)
     ((get-irrlicht-proc "beginScene" video-driver)
-     (irr-pointer video-driver)
+     video-driver
      back-buffer
      z-buffer
      color
 
 (define-method (end-scene (video-driver <video-driver>))
   ((get-irrlicht-proc "endScene" video-driver)
-   (irr-pointer video-driver)))
+   video-driver))
 
 (define-method (get-texture (video-driver <video-driver>) filename)
   (make <texture>
     #:irr-pointer
     ((get-irrlicht-proc "getTexture" video-driver)
-     (irr-pointer video-driver)
+     video-driver
      filename)))
 
 (export <video-driver> begin-scene end-scene get-texture)
index 3496b3a7b32ae53c4df3c35926d0321e787acd40..040b7cdba9f2bac04ce5549590af005049e6e22e 100644 (file)
@@ -24,6 +24,7 @@
 #include "animated-mesh-md2.h"
 #include "animated-mesh-scene-node.h"
 #include "gsubr.h"
+#include "wrapped.h"
 
 using namespace irr;
 
@@ -33,7 +34,7 @@ IAnimatedMeshSceneNode_setFrameLoop (SCM animated_mesh_scene_node,
                                      SCM end)
 {
   return scm_from_bool
-    (((scene::IAnimatedMeshSceneNode*)scm_to_pointer (animated_mesh_scene_node))->
+    (((scene::IAnimatedMeshSceneNode*)scm_to_irr_pointer (animated_mesh_scene_node))->
      setFrameLoop (scm_to_int32 (begin),
                    scm_to_int32 (end)));
 }
@@ -43,7 +44,7 @@ IAnimatedMeshSceneNode_setMD2Animation (SCM animated_mesh_scene_node,
                                         SCM anim)
 {
   return scm_from_bool
-    (((scene::IAnimatedMeshSceneNode*)scm_to_pointer (animated_mesh_scene_node))->
+    (((scene::IAnimatedMeshSceneNode*)scm_to_irr_pointer (animated_mesh_scene_node))->
      setMD2Animation (scm_to_md2_animation_type (anim)));
 }
 
index cb88225c9f659c564df5bbb5ed7ac72e2c8aea2c..896cfe95e0fcb6ce8d696276eb0e12450c0ec429 100644 (file)
@@ -23,6 +23,7 @@
 #include <libguile.h>
 #include "animated-mesh.h"
 #include "gsubr.h"
+#include "wrapped.h"
 
 using namespace irr;
 
@@ -30,7 +31,7 @@ SCM
 IAnimatedMesh_setAnimationSpeed (SCM animated_mesh,
                                  SCM frames_per_second)
 {
-  ((scene::IAnimatedMesh*)scm_to_pointer (animated_mesh))->
+  ((scene::IAnimatedMesh*)scm_to_irr_pointer (animated_mesh))->
     setAnimationSpeed (scm_to_double (frames_per_second));
   return SCM_UNSPECIFIED;
 }
index ed56fdc3228f514e9bbf52f30c5d153c5200f69e..b1b873c58034774e133bdb337b4fdbb7778a95a8 100644 (file)
@@ -24,6 +24,7 @@
 #include "box3d.h"
 #include "gsubr.h"
 #include "vector3d.h"
+#include "wrapped.h"
 
 using namespace irr;
 
@@ -31,7 +32,7 @@ SCM
 aabbox3d_addInternalPoint (SCM box3d,
                            SCM point)
 {
-  ((core::aabbox3df*)scm_to_pointer (box3d))->addInternalPoint (scm_to_vector3df (point));
+  ((core::aabbox3df*)scm_to_irr_pointer (box3d))->addInternalPoint (scm_to_vector3df (point));
   return SCM_UNSPECIFIED;
 }
 
@@ -46,7 +47,7 @@ SCM
 aabbox3d_reset (SCM box3d,
                 SCM init_value)
 {
-  ((core::aabbox3df*)scm_to_pointer (box3d))->reset (scm_to_vector3df (init_value));
+  ((core::aabbox3df*)scm_to_irr_pointer (box3d))->reset (scm_to_vector3df (init_value));
   return SCM_UNSPECIFIED;
 }
 
index 55f6622e8997350ebfd0d0ef5f5911acc084bfe8..781fed770b9a6d363b8a41a69b345c08440e2cdb 100644 (file)
@@ -24,6 +24,7 @@
 #include "cursor-control.h"
 #include "gsubr.h"
 #include "position2d.h"
+#include "wrapped.h"
 
 using namespace irr;
 
@@ -31,14 +32,14 @@ SCM
 ICursorControl_getPosition (SCM cursor_control)
 {
   return scm_from_position2d_s32
-    (((gui::ICursorControl*)scm_to_pointer (cursor_control))->getPosition ());
+    (((gui::ICursorControl*)scm_to_irr_pointer (cursor_control))->getPosition ());
 }
 
 SCM
 ICursorControl_setPosition (SCM cursor_control,
                             SCM position)
 {
-  ((gui::ICursorControl*)scm_to_pointer (cursor_control))->
+  ((gui::ICursorControl*)scm_to_irr_pointer (cursor_control))->
     setPosition (scm_to_position2d_s32 (position));
   return SCM_UNSPECIFIED;
 }
index 55c752fec4b1866a097dfd86a2169601d91297c2..503f11c2b54becab87f90b112d558e225abb5429 100644 (file)
@@ -26,6 +26,7 @@
 #include "driver-types.h"
 #include "gsubr.h"
 #include "wchar.h"
+#include "wrapped.h"
 
 using namespace irr;
 
@@ -45,7 +46,7 @@ irr_createDevice (SCM device_type,
                   scm_to_bool (fullscreen),
                   scm_to_bool (stencilbuffer),
                   scm_to_bool (vsync),
-                  (IEventReceiver*)scm_to_pointer (receiver));
+                  (IEventReceiver*)scm_to_irr_pointer (receiver));
   return scm_from_pointer ((void*)device, NULL);
 }
 
@@ -53,7 +54,7 @@ SCM
 IrrlichtDevice_getCursorControl (SCM device)
 {
   gui::ICursorControl* cursor_control =
-    ((IrrlichtDevice*)scm_to_pointer (device))->getCursorControl ();
+    ((IrrlichtDevice*)scm_to_irr_pointer (device))->getCursorControl ();
   return scm_from_pointer ((void*)cursor_control, NULL);
 }
 
@@ -61,7 +62,7 @@ SCM
 IrrlichtDevice_getFileSystem (SCM device)
 {
   io::IFileSystem* file_system =
-    ((IrrlichtDevice*)scm_to_pointer (device))->getFileSystem ();
+    ((IrrlichtDevice*)scm_to_irr_pointer (device))->getFileSystem ();
   return scm_from_pointer ((void*)file_system, NULL);
 }
 
@@ -69,7 +70,7 @@ SCM
 IrrlichtDevice_getGUIEnvironment (SCM device)
 {
   gui::IGUIEnvironment* gui_env =
-    ((IrrlichtDevice*)scm_to_pointer (device))->getGUIEnvironment ();
+    ((IrrlichtDevice*)scm_to_irr_pointer (device))->getGUIEnvironment ();
   return scm_from_pointer ((void*)gui_env, NULL);
 }
 
@@ -77,7 +78,7 @@ SCM
 IrrlichtDevice_getSceneManager (SCM device)
 {
   scene::ISceneManager* manager =
-    ((IrrlichtDevice*)scm_to_pointer (device))->getSceneManager ();
+    ((IrrlichtDevice*)scm_to_irr_pointer (device))->getSceneManager ();
   return scm_from_pointer ((void*)manager, NULL);
 }
 
@@ -85,7 +86,7 @@ SCM
 IrrlichtDevice_getTimer (SCM device)
 {
   ITimer* timer =
-    ((IrrlichtDevice*)scm_to_pointer (device))->getTimer ();
+    ((IrrlichtDevice*)scm_to_irr_pointer (device))->getTimer ();
   return scm_from_pointer ((void*)timer, NULL);
 }
 
@@ -93,7 +94,7 @@ SCM
 IrrlichtDevice_getVideoDriver (SCM device)
 {
   video::IVideoDriver* driver =
-    ((IrrlichtDevice*)scm_to_pointer (device))->getVideoDriver ();
+    ((IrrlichtDevice*)scm_to_irr_pointer (device))->getVideoDriver ();
   return scm_from_pointer ((void*)driver, NULL);
 }
 
@@ -101,14 +102,14 @@ SCM
 IrrlichtDevice_isWindowActive (SCM device)
 {
   return scm_from_bool
-    (((IrrlichtDevice*)scm_to_pointer (device))->isWindowActive ());
+    (((IrrlichtDevice*)scm_to_irr_pointer (device))->isWindowActive ());
 }
 
 SCM
 IrrlichtDevice_run (SCM device)
 {
   return scm_from_bool
-    (((IrrlichtDevice*)scm_to_pointer (device))->run ());
+    (((IrrlichtDevice*)scm_to_irr_pointer (device))->run ());
 }
 
 template <typename TEventReceiver>
@@ -116,8 +117,8 @@ SCM
 IrrlichtDevice_setEventReceiver (SCM device,
                                  SCM receiver)
 {
-  ((IrrlichtDevice*)scm_to_pointer (device))->
-    setEventReceiver ((TEventReceiver)scm_to_pointer (receiver));
+  ((IrrlichtDevice*)scm_to_irr_pointer (device))->
+    setEventReceiver ((TEventReceiver)scm_to_irr_pointer (receiver));
   return SCM_UNSPECIFIED;
 }
 
@@ -125,7 +126,7 @@ SCM
 IrrlichtDevice_setResizable (SCM device,
                              SCM resize)
 {
-  ((IrrlichtDevice*)scm_to_pointer (device))->
+  ((IrrlichtDevice*)scm_to_irr_pointer (device))->
     setResizable (scm_to_bool (resize));
   return SCM_UNSPECIFIED;
 }
@@ -134,7 +135,7 @@ SCM
 IrrlichtDevice_setWindowCaption (SCM device,
                                  SCM text)
 {
-  ((IrrlichtDevice*)scm_to_pointer (device))->
+  ((IrrlichtDevice*)scm_to_irr_pointer (device))->
     setWindowCaption (scm_to_wide_char_string (text));
   return SCM_UNSPECIFIED;
 }
@@ -142,7 +143,7 @@ IrrlichtDevice_setWindowCaption (SCM device,
 SCM
 IrrlichtDevice_yield (SCM device)
 {
-  ((IrrlichtDevice*)scm_to_pointer (device))->yield ();
+  ((IrrlichtDevice*)scm_to_irr_pointer (device))->yield ();
   return SCM_UNSPECIFIED;
 }
 
index cae9191691668a98a28a146b8c85e381dd6dcfc8..12ff718059404c901409f46f62a0a0e1518cac8b 100644 (file)
@@ -24,6 +24,7 @@
 #include "event-receiver.h"
 #include "gsubr.h"
 #include "keycodes.h"
+#include "wrapped.h"
 
 using namespace irr;
 
@@ -54,14 +55,14 @@ SCM
 SEvent_EventType (SCM event)
 {
   return scm_from_event_type
-    (((SEvent*)scm_to_pointer (event))->EventType);
+    (((SEvent*)scm_to_irr_pointer (event))->EventType);
 }
 
 SCM
 SEvent_SGUIEvent_Caller (SCM event)
 {
   gui::IGUIElement* caller =
-    ((SEvent*)scm_to_pointer (event))->GUIEvent.Caller;
+    ((SEvent*)scm_to_irr_pointer (event))->GUIEvent.Caller;
   return scm_from_pointer ((void*)caller, NULL);
 }
 
@@ -69,21 +70,21 @@ SCM
 SEvent_SGUIEvent_EventType (SCM event)
 {
   return scm_from_gui_event_type
-    (((SEvent*)scm_to_pointer (event))->GUIEvent.EventType);
+    (((SEvent*)scm_to_irr_pointer (event))->GUIEvent.EventType);
 }
 
 SCM
 SEvent_SKeyInput_Key (SCM event)
 {
   return scm_from_key_code
-    (((SEvent*)scm_to_pointer (event))->KeyInput.Key);
+    (((SEvent*)scm_to_irr_pointer (event))->KeyInput.Key);
 }
 
 SCM
 SEvent_SKeyInput_PressedDown (SCM event)
 {
   return scm_from_bool
-    (((SEvent*)scm_to_pointer (event))->KeyInput.PressedDown);
+    (((SEvent*)scm_to_irr_pointer (event))->KeyInput.PressedDown);
 }
 
 void
index 204e25dabad0985bcd17662b552f3695eb5894f2..fe9b062d6e060b3fd268dfb0fb17526d5a18c189 100644 (file)
@@ -24,6 +24,7 @@
 #include "file-archive.h"
 #include "file-system.h"
 #include "gsubr.h"
+#include "wrapped.h"
 
 using namespace irr;
 
@@ -36,7 +37,7 @@ IFileSystem_addFileArchive (SCM file_system,
                             SCM password,
                             SCM ret_archive)
 {
-  io::IFileArchive* retArchive = (io::IFileArchive*)scm_to_pointer (ret_archive);
+  io::IFileArchive* retArchive = (io::IFileArchive*)scm_to_irr_pointer (ret_archive);
   io::IFileArchive** retArchiveReference = 0;
   if (retArchive != NULL)
     {
@@ -44,7 +45,7 @@ IFileSystem_addFileArchive (SCM file_system,
     }
 
   return scm_from_bool
-    (((io::IFileSystem*)scm_to_pointer (file_system))->
+    (((io::IFileSystem*)scm_to_irr_pointer (file_system))->
      addFileArchive (scm_to_utf8_stringn (filename, NULL),
                      scm_to_bool (ignore_case),
                      scm_to_bool (ignore_paths),
index 9c45b3574aac9058947a7ffe97b217eefa9f6363..1ee3e5d9212c18009efab2fbdc222fbc5e04dee1 100644 (file)
@@ -26,6 +26,7 @@
 #include "position2d.h"
 #include "rect.h"
 #include "wchar.h"
+#include "wrapped.h"
 
 using namespace irr;
 
@@ -39,9 +40,9 @@ IGUIEnvironment_addButton (SCM gui_environment,
                            SCM tooltiptext)
 {
   gui::IGUIButton* button =
-    ((gui::IGUIEnvironment*)scm_to_pointer (gui_environment))->
+    ((gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment))->
     addButton (scm_to_rect_s32 (rectangle),
-               (TParent)scm_to_pointer (parent),
+               (TParent)scm_to_irr_pointer (parent),
                scm_to_int32 (id),
                scm_to_wide_char_string (text),
                scm_to_wide_char_string (tooltiptext));
@@ -58,11 +59,11 @@ IGUIEnvironment_addEditBox (SCM gui_environment,
                             SCM id)
 {
   gui::IGUIEditBox* editbox =
-    ((gui::IGUIEnvironment*)scm_to_pointer (gui_environment))->
+    ((gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment))->
     addEditBox (scm_to_wide_char_string (text),
                 scm_to_rect_s32 (rectangle),
                 scm_to_bool (border),
-                (TParent)scm_to_pointer (parent),
+                (TParent)scm_to_irr_pointer (parent),
                 scm_to_int32 (id));
   return scm_from_pointer ((void*)editbox, NULL);
 }
@@ -77,12 +78,12 @@ IGUIEnvironment_addImage (SCM gui_environment,
                           SCM id,
                           SCM text)
 {
-  gui::IGUIEnvironment* guienv = (gui::IGUIEnvironment*)scm_to_pointer (gui_environment);
+  gui::IGUIEnvironment* guienv = (gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment);
   gui::IGUIImage* new_image =
-    guienv->addImage ((video::ITexture*)scm_to_pointer (image),
+    guienv->addImage ((video::ITexture*)scm_to_irr_pointer (image),
                       scm_to_position2d_s32 (position),
                       scm_to_bool (use_alpha_channel),
-                      (TParent)scm_to_pointer (parent),
+                      (TParent)scm_to_irr_pointer (parent),
                       scm_to_int32 (id),
                       scm_to_wide_char_string (text));
   return scm_from_pointer ((void*) new_image, NULL);
@@ -97,9 +98,9 @@ IGUIEnvironment_addListBox (SCM gui_environment,
                             SCM draw_background)
 {
   gui::IGUIListBox* listbox =
-    ((gui::IGUIEnvironment*)scm_to_pointer (gui_environment))->
+    ((gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment))->
     addListBox (scm_to_rect_s32 (rectangle),
-                (TParent)scm_to_pointer (parent),
+                (TParent)scm_to_irr_pointer (parent),
                 scm_to_int32 (id),
                 scm_to_bool (draw_background));
   return scm_from_pointer ((void*)listbox, NULL);
@@ -114,10 +115,10 @@ IGUIEnvironment_addScrollBar (SCM gui_environment,
                               SCM id)
 {
   gui::IGUIScrollBar* scrollbar =
-    ((gui::IGUIEnvironment*)scm_to_pointer (gui_environment))->
+    ((gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment))->
     addScrollBar (scm_to_bool (horizontal),
                   scm_to_rect_s32 (rectangle),
-                  (TParent)scm_to_pointer (parent),
+                  (TParent)scm_to_irr_pointer (parent),
                   scm_to_int32 (id));
   return scm_from_pointer ((void*)scrollbar, NULL);
 }
@@ -134,12 +135,12 @@ IGUIEnvironment_addStaticText (SCM gui_environment,
                                SCM fill_background)
 {
   gui::IGUIStaticText* static_text =
-    ((gui::IGUIEnvironment*)scm_to_pointer (gui_environment))->
+    ((gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment))->
     addStaticText (scm_to_wide_char_string (text),
                    scm_to_rect_s32 (rectangle),
                    scm_to_bool (border),
                    scm_to_bool (word_wrap),
-                   (TParent)scm_to_pointer (parent),
+                   (TParent)scm_to_irr_pointer (parent),
                    scm_to_int32 (id),
                    scm_to_bool (fill_background));
   return scm_from_pointer ((void*)static_text, NULL);
@@ -155,11 +156,11 @@ IGUIEnvironment_addWindow (SCM gui_environment,
                            SCM id)
 {
   gui::IGUIWindow* window =
-    ((gui::IGUIEnvironment*)scm_to_pointer (gui_environment))->
+    ((gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment))->
     addWindow (scm_to_rect_s32 (rectangle),
                scm_to_bool (modal),
                scm_to_wide_char_string (text),
-               (TParent)scm_to_pointer (parent),
+               (TParent)scm_to_irr_pointer (parent),
                scm_to_int32 (id));
   return scm_from_pointer ((void*)window, NULL);
 }
@@ -167,7 +168,7 @@ IGUIEnvironment_addWindow (SCM gui_environment,
 SCM
 IGUIEnvironment_drawAll (SCM gui_environment)
 {
-  ((gui::IGUIEnvironment*)scm_to_pointer (gui_environment))->drawAll ();
+  ((gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment))->drawAll ();
   return SCM_UNSPECIFIED;
 }
 
@@ -175,7 +176,7 @@ SCM
 IGUIEnvironment_getBuiltInFont (SCM gui_environment)
 {
   gui::IGUIFont* font =
-    ((gui::IGUIEnvironment*)scm_to_pointer (gui_environment))->getBuiltInFont ();
+    ((gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment))->getBuiltInFont ();
   return scm_from_pointer ((void*)font, NULL);
 }
 
@@ -184,7 +185,7 @@ IGUIEnvironment_getFont (SCM gui_environment,
                          SCM filename)
 {
   gui::IGUIFont* font =
-    ((gui::IGUIEnvironment*)scm_to_pointer (gui_environment))->
+    ((gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment))->
     getFont (scm_to_utf8_stringn (filename, NULL));
   return scm_from_pointer ((void*)font, NULL);
 }
@@ -193,7 +194,7 @@ SCM
 IGUIEnvironment_getSkin (SCM gui_environment)
 {
   gui::IGUISkin* skin =
-    ((gui::IGUIEnvironment*)scm_to_pointer (gui_environment))->getSkin ();
+    ((gui::IGUIEnvironment*)scm_to_irr_pointer (gui_environment))->getSkin ();
   return scm_from_pointer ((void*)skin, NULL);
 }
 
index 0e39bca7462f144111fc2df1305f1204c411fd03..ea296a532dfa0a08e36026493b2da32d551b6de0 100644 (file)
@@ -24,6 +24,7 @@
 #include "color.h"
 #include "gsubr.h"
 #include "gui-in-out-fader.h"
+#include "wrapped.h"
 
 using namespace irr;
 
@@ -32,7 +33,7 @@ IGUIInOutFader_setColor (SCM in_out_fader,
                          SCM color,
                          SCM dest_color)
 {
-  gui::IGUIInOutFader* fader = (gui::IGUIInOutFader*)scm_to_pointer (in_out_fader);
+  gui::IGUIInOutFader* fader = (gui::IGUIInOutFader*)scm_to_irr_pointer (in_out_fader);
   if (dest_color == SCM_UNDEFINED)
     {
       fader->setColor (scm_to_color (color));
index e53ba49d0cb5139fdab0c04b766c585421cd6f22..b7232501843a2080c08f7ee2d834eba03cfb53ea 100644 (file)
@@ -24,6 +24,7 @@
 #include "gui-listbox.h"
 #include "gsubr.h"
 #include "wchar.h"
+#include "wrapped.h"
 
 using namespace irr;
 
@@ -32,7 +33,7 @@ IGUIListBox_addItem (SCM gui_listbox,
                      SCM text,
                      SCM icon)
 {
-  gui::IGUIListBox* listbox = (gui::IGUIListBox*)scm_to_pointer (gui_listbox);
+  gui::IGUIListBox* listbox = (gui::IGUIListBox*)scm_to_irr_pointer (gui_listbox);
   u32 item_id;
   if (icon == SCM_UNDEFINED)
     {
index 236dd757b8f7d139332725a2d21002cc726fec7c..bf9bd1c62582fa7ff620516211cb51e5e993357c 100644 (file)
@@ -23,6 +23,7 @@
 #include <libguile.h>
 #include "gui-scrollbar.h"
 #include "gsubr.h"
+#include "wrapped.h"
 
 using namespace irr;
 
@@ -30,14 +31,14 @@ SCM
 IGUIScrollBar_getPos (SCM gui_scrollbar)
 {
   return scm_from_int32
-    (((gui::IGUIScrollBar*)scm_to_pointer (gui_scrollbar))->getPos ());
+    (((gui::IGUIScrollBar*)scm_to_irr_pointer (gui_scrollbar))->getPos ());
 }
 
 SCM
 IGUIScrollBar_setMax (SCM gui_scrollbar,
                       SCM max)
 {
-  ((gui::IGUIScrollBar*) scm_to_pointer (gui_scrollbar))->setMax (scm_to_int32 (max));
+  ((gui::IGUIScrollBar*) scm_to_irr_pointer (gui_scrollbar))->setMax (scm_to_int32 (max));
   return SCM_UNSPECIFIED;
 }
 
@@ -45,7 +46,7 @@ SCM
 IGUIScrollBar_setPos (SCM gui_scrollbar,
                       SCM pos)
 {
-  ((gui::IGUIScrollBar*) scm_to_pointer (gui_scrollbar))->setPos (scm_to_int32 (pos));
+  ((gui::IGUIScrollBar*) scm_to_irr_pointer (gui_scrollbar))->setPos (scm_to_int32 (pos));
   return SCM_UNSPECIFIED;
 }
 
index f6628f1b4a1eeda6a67de1377910ef8738ee5da0..fae5c3dd142c22c89e5ea8f1b9808a8da70e6687 100644 (file)
@@ -24,6 +24,7 @@
 #include "color.h"
 #include "gsubr.h"
 #include "gui-skin.h"
+#include "wrapped.h"
 
 using namespace irr;
 
@@ -31,7 +32,7 @@ SCM
 IGUISkin_getColor (SCM gui_skin,
                    SCM color)
 {
-  gui::IGUISkin* skin = (gui::IGUISkin*) scm_to_pointer (gui_skin);
+  gui::IGUISkin* skin = (gui::IGUISkin*) scm_to_irr_pointer (gui_skin);
   video::SColor scolor = skin->getColor (scm_to_default_color (color));
   return scm_from_color (scolor);
 }
@@ -40,7 +41,7 @@ SCM
 IGUISkin_getFont (SCM gui_skin,
                   SCM which)
 {
-  gui::IGUISkin* skin = (gui::IGUISkin*) scm_to_pointer (gui_skin);
+  gui::IGUISkin* skin = (gui::IGUISkin*) scm_to_irr_pointer (gui_skin);
   gui::IGUIFont* font = skin->getFont (scm_to_default_font (which));
   return scm_from_pointer ((void*) font, NULL);
 }
@@ -50,7 +51,7 @@ IGUISkin_setColor (SCM gui_skin,
                    SCM which,
                    SCM new_color)
 {
-  gui::IGUISkin* skin = (gui::IGUISkin*) scm_to_pointer (gui_skin);
+  gui::IGUISkin* skin = (gui::IGUISkin*) scm_to_irr_pointer (gui_skin);
   skin->setColor (scm_to_default_color (which),
                   scm_to_color (new_color));
   return SCM_UNSPECIFIED;
@@ -61,8 +62,8 @@ IGUISkin_setFont (SCM gui_skin,
                   SCM font,
                   SCM which)
 {
-  gui::IGUISkin* skin = (gui::IGUISkin*) scm_to_pointer (gui_skin);
-  skin->setFont ((gui::IGUIFont*) scm_to_pointer (font),
+  gui::IGUISkin* skin = (gui::IGUISkin*) scm_to_irr_pointer (gui_skin);
+  skin->setFont ((gui::IGUIFont*) scm_to_irr_pointer (font),
                  scm_to_default_font (which));
   return SCM_UNSPECIFIED;
 }
index 997de689b6cc1ac84e3584fb7c3bd320c2189ef4..ace658cf6ca423f20bca76d3294b83081da18caf 100644 (file)
@@ -24,6 +24,7 @@
 #include "gsubr.h"
 #include "gui-toolbar.h"
 #include "wchar.h"
+#include "wrapped.h"
 
 using namespace irr;
 
@@ -37,13 +38,13 @@ IGUIToolBar_addButton (SCM gui_toolbar,
                        SCM is_push_button,
                        SCM use_alpha_channel)
 {
-  gui::IGUIToolBar* toolbar = (gui::IGUIToolBar*) scm_to_pointer (gui_toolbar);
+  gui::IGUIToolBar* toolbar = (gui::IGUIToolBar*) scm_to_irr_pointer (gui_toolbar);
   gui::IGUIButton* button =
     toolbar->addButton (scm_to_int32 (id),
                         scm_to_wide_char_string (text),
                         scm_to_wide_char_string (tooltiptext),
-                        (video::ITexture*) scm_to_pointer (img),
-                        (video::ITexture*) scm_to_pointer (pressedimg),
+                        (video::ITexture*) scm_to_irr_pointer (img),
+                        (video::ITexture*) scm_to_irr_pointer (pressedimg),
                         scm_to_bool (is_push_button),
                         scm_to_bool (use_alpha_channel));
   return scm_from_pointer ((void*) button, NULL);
index 1bdc8daf8737de65dc5791d363a18a6f68d29262..f01287f22032606c9423f125e46f3a38c6a83c19 100644 (file)
@@ -23,6 +23,7 @@
 #include <libguile.h>
 #include "gsubr.h"
 #include "reference-counted.h"
+#include "wrapped.h"
 
 using namespace irr;
 
@@ -30,7 +31,7 @@ template <typename T>
 SCM
 IReferenceCounted_drop (SCM obj)
 {
-  return scm_from_bool (((T) scm_to_pointer (obj))->drop ());
+  return scm_from_bool (((T) scm_to_irr_pointer (obj))->drop ());
 }
 
 void
index 427faf57c5e7fb0b9031086d2d2412e2fe5b8b65..f120955316230e1cc5fa58cf9515c4a3b3deb825 100644 (file)
@@ -24,6 +24,7 @@
 #include "gsubr.h"
 #include "scene-manager.h"
 #include "vector3d.h"
+#include "wrapped.h"
 
 using namespace irr;
 
@@ -38,10 +39,10 @@ ISceneManager_addAnimatedMeshSceneNode (SCM scene_manager,
                                         SCM scale,
                                         SCM also_add_if_mesh_pointer_zero)
 {
-  scene::ISceneManager* smgr = (scene::ISceneManager*) scm_to_pointer (scene_manager);
+  scene::ISceneManager* smgr = (scene::ISceneManager*) scm_to_irr_pointer (scene_manager);
   scene::IAnimatedMeshSceneNode* node =
-    smgr->addAnimatedMeshSceneNode ((scene::IAnimatedMesh*) scm_to_pointer (mesh),
-                                    (TParent) scm_to_pointer (parent),
+    smgr->addAnimatedMeshSceneNode ((scene::IAnimatedMesh*) scm_to_irr_pointer (mesh),
+                                    (TParent) scm_to_irr_pointer (parent),
                                     scm_to_int32 (id),
                                     scm_to_vector3df (position),
                                     scm_to_vector3df (rotation),
@@ -59,9 +60,9 @@ ISceneManager_addCameraSceneNode (SCM scene_manager,
                                   SCM id,
                                   SCM make_active)
 {
-  scene::ISceneManager* smgr = (scene::ISceneManager*) scm_to_pointer (scene_manager);
+  scene::ISceneManager* smgr = (scene::ISceneManager*) scm_to_irr_pointer (scene_manager);
   scene::ICameraSceneNode* camera =
-    smgr->addCameraSceneNode ((TParent) scm_to_pointer (parent),
+    smgr->addCameraSceneNode ((TParent) scm_to_irr_pointer (parent),
                               scm_to_vector3df (position),
                               scm_to_vector3df (lookat),
                               scm_to_int32 (id),
@@ -99,13 +100,13 @@ ISceneManager_addCameraSceneNodeFPS (SCM scene_manager,
                                 scm_from_utf8_keyword ("make-active"), &make_active,
                                 SCM_UNDEFINED);
 
-  scene::ISceneManager* smgr = (scene::ISceneManager*) scm_to_pointer (scene_manager);
+  scene::ISceneManager* smgr = (scene::ISceneManager*) scm_to_irr_pointer (scene_manager);
   scene::ICameraSceneNode* camera =
-    smgr->addCameraSceneNodeFPS ((TParent) scm_to_pointer (parent),
+    smgr->addCameraSceneNodeFPS ((TParent) scm_to_irr_pointer (parent),
                                  scm_to_double (rotate_speed),
                                  scm_to_double (move_speed),
                                  scm_to_int32 (id),
-                                 (SKeyMap*) scm_to_pointer (key_map_array),
+                                 (SKeyMap*) scm_to_irr_pointer (key_map_array),
                                  scm_to_int32 (key_map_size),
                                  scm_to_bool (no_vertical_movement),
                                  scm_to_double (jump_speed),
@@ -124,10 +125,10 @@ ISceneManager_addCubeSceneNode (SCM scene_manager,
                                 SCM rotation,
                                 SCM scale)
 {
-  scene::ISceneManager* smgr = (scene::ISceneManager*) scm_to_pointer (scene_manager);
+  scene::ISceneManager* smgr = (scene::ISceneManager*) scm_to_irr_pointer (scene_manager);
   scene::IMeshSceneNode* node =
     smgr->addCubeSceneNode (scm_to_double (size),
-                            (TParent) scm_to_pointer (parent),
+                            (TParent) scm_to_irr_pointer (parent),
                             scm_to_int32 (id),
                             scm_to_vector3df (position),
                             scm_to_vector3df (rotation),
@@ -191,7 +192,7 @@ ISceneManager_addCustomSceneNode (SCM scene_manager,
     virtual const core::aabbox3d<f32>& getBoundingBox () const
     {
       SCM box = scm_call_0 (scm_get_bounding_box);
-      return *((core::aabbox3d<f32>*) scm_to_pointer (box));
+      return *((core::aabbox3d<f32>*) scm_to_irr_pointer (box));
     }
 
     virtual u32 getMaterialCount () const
@@ -202,13 +203,13 @@ ISceneManager_addCustomSceneNode (SCM scene_manager,
     virtual video::SMaterial& getMaterial (u32 i)
     {
       SCM material = scm_call_1 (scm_get_material, scm_from_uint32 (i));
-      return *((video::SMaterial*) scm_to_pointer (material));
+      return *((video::SMaterial*) scm_to_irr_pointer (material));
     }
   };
 
   CustomSceneNode* node =
-    new CustomSceneNode ((TParent) scm_to_pointer (parent),
-                         (scene::ISceneManager*) scm_to_pointer (scene_manager),
+    new CustomSceneNode ((TParent) scm_to_irr_pointer (parent),
+                         (scene::ISceneManager*) scm_to_irr_pointer (scene_manager),
                          scm_to_int32 (id),
                          scm_to_vector3df (position),
                          scm_to_vector3df (rotation),
@@ -229,10 +230,10 @@ ISceneManager_addOctreeSceneNode (SCM scene_manager,
                                   SCM minimal_polys_per_node,
                                   SCM also_add_if_mesh_pointer_zero)
 {
-  scene::ISceneManager* smgr = (scene::ISceneManager*) scm_to_pointer (scene_manager);
+  scene::ISceneManager* smgr = (scene::ISceneManager*) scm_to_irr_pointer (scene_manager);
   scene::IMeshSceneNode* node =
-    smgr->addOctreeSceneNode ((TMesh) scm_to_pointer (mesh),
-                              (TParent) scm_to_pointer (parent),
+    smgr->addOctreeSceneNode ((TMesh) scm_to_irr_pointer (mesh),
+                              (TParent) scm_to_irr_pointer (parent),
                               scm_to_int32 (id),
                               scm_to_int32 (minimal_polys_per_node),
                               scm_to_bool (also_add_if_mesh_pointer_zero));
@@ -250,11 +251,11 @@ ISceneManager_addSphereSceneNode (SCM scene_manager,
                                   SCM rotation,
                                   SCM scale)
 {
-  scene::ISceneManager* smgr = (scene::ISceneManager*) scm_to_pointer (scene_manager);
+  scene::ISceneManager* smgr = (scene::ISceneManager*) scm_to_irr_pointer (scene_manager);
   scene::IMeshSceneNode* node =
     smgr->addSphereSceneNode (scm_to_double (radius),
                               scm_to_int32 (poly_count),
-                              (TParent) scm_to_pointer (parent),
+                              (TParent) scm_to_irr_pointer (parent),
                               scm_to_int32 (id),
                               scm_to_vector3df (position),
                               scm_to_vector3df (rotation),
@@ -271,7 +272,7 @@ ISceneManager_createFlyCircleAnimator (SCM scene_manager,
                                        SCM start_position,
                                        SCM radius_ellipsoid)
 {
-  scene::ISceneManager* smgr = (scene::ISceneManager*) scm_to_pointer (scene_manager);
+  scene::ISceneManager* smgr = (scene::ISceneManager*) scm_to_irr_pointer (scene_manager);
   scene::ISceneNodeAnimator* anim =
     smgr->createFlyCircleAnimator (scm_to_vector3df (center),
                                    scm_to_double (radius),
@@ -290,7 +291,7 @@ ISceneManager_createFlyStraightAnimator (SCM scene_manager,
                                          SCM loop,
                                          SCM pingpong)
 {
-  scene::ISceneManager* smgr = (scene::ISceneManager*) scm_to_pointer (scene_manager);
+  scene::ISceneManager* smgr = (scene::ISceneManager*) scm_to_irr_pointer (scene_manager);
   scene::ISceneNodeAnimator* anim =
     smgr->createFlyStraightAnimator (scm_to_vector3df (start_point),
                                      scm_to_vector3df (end_point),
@@ -304,7 +305,7 @@ SCM
 ISceneManager_createRotationAnimator (SCM scene_manager,
                                       SCM rotation_speed)
 {
-  scene::ISceneManager* smgr = (scene::ISceneManager*) scm_to_pointer (scene_manager);
+  scene::ISceneManager* smgr = (scene::ISceneManager*) scm_to_irr_pointer (scene_manager);
   scene::ISceneNodeAnimator* anim =
     smgr->createRotationAnimator (scm_to_vector3df (rotation_speed));
   return scm_from_pointer ((void*) anim, NULL);
@@ -313,7 +314,7 @@ ISceneManager_createRotationAnimator (SCM scene_manager,
 SCM
 ISceneManager_drawAll (SCM scene_manager)
 {
-  ((scene::ISceneManager*) scm_to_pointer (scene_manager))->drawAll ();
+  ((scene::ISceneManager*) scm_to_irr_pointer (scene_manager))->drawAll ();
   return SCM_UNSPECIFIED;
 }
 
@@ -321,7 +322,7 @@ SCM
 ISceneManager_getMesh (SCM scene_manager,
                        SCM filename)
 {
-  scene::ISceneManager* smgr = (scene::ISceneManager*) scm_to_pointer (scene_manager);
+  scene::ISceneManager* smgr = (scene::ISceneManager*) scm_to_irr_pointer (scene_manager);
   scene::IAnimatedMesh* mesh = smgr->getMesh(scm_to_utf8_stringn (filename, NULL));
   return scm_from_pointer ((void*) mesh, NULL);
 }
@@ -329,7 +330,7 @@ ISceneManager_getMesh (SCM scene_manager,
 SCM
 ISceneManager_getRootSceneNode (SCM scene_manager)
 {
-  scene::ISceneManager* smgr = (scene::ISceneManager*) scm_to_pointer (scene_manager);
+  scene::ISceneManager* smgr = (scene::ISceneManager*) scm_to_irr_pointer (scene_manager);
   return scm_from_pointer ((void*) smgr->getRootSceneNode (), NULL);
 }
 
index 29d5214b208b418c417be8d2dfc22fc4d91c6b51..3700818f4c290eeeea6dff21c33f046347b87e7e 100644 (file)
@@ -26,6 +26,7 @@
 #include "matrix4.h"
 #include "scene-node.h"
 #include "vector3d.h"
+#include "wrapped.h"
 
 using namespace irr;
 
@@ -34,8 +35,8 @@ SCM
 ISceneNode_addAnimator (SCM scene_node,
                         SCM animator)
 {
-  TSceneNode node = (TSceneNode) scm_to_pointer (scene_node);
-  node->addAnimator ((scene::ISceneNodeAnimator*) scm_to_pointer (animator));
+  TSceneNode node = (TSceneNode) scm_to_irr_pointer (scene_node);
+  node->addAnimator ((scene::ISceneNodeAnimator*) scm_to_irr_pointer (animator));
   return SCM_UNSPECIFIED;
 }
 
@@ -43,7 +44,7 @@ template <typename TSceneNode>
 SCM
 ISceneNode_getAbsoluteTransformation (SCM scene_node)
 {
-  TSceneNode node = (TSceneNode) scm_to_pointer (scene_node);
+  TSceneNode node = (TSceneNode) scm_to_irr_pointer (scene_node);
   return scm_from_matrix4 (node->getAbsoluteTransformation ());
 }
 
@@ -51,7 +52,7 @@ template <typename TSceneNode>
 SCM
 ISceneNode_getPosition (SCM scene_node)
 {
-  TSceneNode node = (TSceneNode) scm_to_pointer (scene_node);
+  TSceneNode node = (TSceneNode) scm_to_irr_pointer (scene_node);
   return scm_from_vector3df (node->getPosition ());
 }
 
@@ -61,7 +62,7 @@ ISceneNode_setMaterialFlag (SCM scene_node,
                             SCM flag,
                             SCM newvalue)
 {
-  TSceneNode node = (TSceneNode) scm_to_pointer (scene_node);
+  TSceneNode node = (TSceneNode) scm_to_irr_pointer (scene_node);
   node->setMaterialFlag (scm_to_material_flag (flag), scm_to_bool (newvalue));
   return SCM_UNSPECIFIED;
 }
@@ -72,9 +73,9 @@ ISceneNode_setMaterialTexture (SCM scene_node,
                                SCM texture_layer,
                                SCM texture)
 {
-  TSceneNode node = (TSceneNode) scm_to_pointer (scene_node);
+  TSceneNode node = (TSceneNode) scm_to_irr_pointer (scene_node);
   node->setMaterialTexture (scm_to_uint32 (texture_layer),
-                            (video::ITexture*) scm_to_pointer (texture));
+                            (video::ITexture*) scm_to_irr_pointer (texture));
   return SCM_UNSPECIFIED;
 }
 
@@ -83,7 +84,7 @@ SCM
 ISceneNode_setPosition (SCM scene_node,
                         SCM position)
 {
-  TSceneNode node = (TSceneNode) scm_to_pointer (scene_node);
+  TSceneNode node = (TSceneNode) scm_to_irr_pointer (scene_node);
   node->setPosition (scm_to_vector3df (position));
   return SCM_UNSPECIFIED;
 }
@@ -93,7 +94,7 @@ SCM
 ISceneNode_setRotation (SCM scene_node,
                         SCM rotation)
 {
-  TSceneNode node = (TSceneNode) scm_to_pointer (scene_node);
+  TSceneNode node = (TSceneNode) scm_to_irr_pointer (scene_node);
   node->setRotation (scm_to_vector3df (rotation));
   return SCM_UNSPECIFIED;
 }
@@ -103,7 +104,7 @@ SCM
 ISceneNode_setScale (SCM scene_node,
                      SCM scale)
 {
-  TSceneNode node = (TSceneNode) scm_to_pointer (scene_node);
+  TSceneNode node = (TSceneNode) scm_to_irr_pointer (scene_node);
   node->setScale (scm_to_vector3df (scale));
   return SCM_UNSPECIFIED;
 }
index 4a042543fae29f0d5c9a32fea95500deb3600b74..e557217fb3a7adc36cd1742058f4a32fcdd4cba1 100644 (file)
 #include <libguile.h>
 #include "gsubr.h"
 #include "timer.h"
+#include "wrapped.h"
 
 using namespace irr;
 
 SCM
 ITimer_getTime (SCM timer)
 {
-  return scm_from_uint32 (((ITimer*) scm_to_pointer (timer))->getTime());
+  return scm_from_uint32 (((ITimer*) scm_to_irr_pointer (timer))->getTime());
 }
 
 void
index 649bc56e3f458d6a9d0510774cfaad8ff6c3c83a..9b7a1e874d7408a59f1c2f9ae2fff68185a3034f 100644 (file)
@@ -26,6 +26,7 @@
 #include "vector2d.h"
 #include "vector3d.h"
 #include "vertex3d.h"
+#include "wrapped.h"
 
 using namespace irr;
 
@@ -45,7 +46,7 @@ video_S3DVertex_make (SCM position,
 
 SCM
 video_S3DVertex_Pos (SCM vertex) {
-  video::S3DVertex* s3dvertex = (video::S3DVertex*) scm_to_pointer (vertex);
+  video::S3DVertex* s3dvertex = (video::S3DVertex*) scm_to_irr_pointer (vertex);
   return scm_from_vector3df (s3dvertex->Pos);
 }
 
index 6ec018338454b7c408a2ca27e7e15690488db7c7..b52b24f6e2b9593a916d1c94f35f6fc0a0ce6af3 100644 (file)
@@ -28,6 +28,7 @@
 #include "rect.h"
 #include "vertex3d.h"
 #include "video-driver.h"
+#include "wrapped.h"
 
 using namespace irr;
 
@@ -39,7 +40,7 @@ IVideoDriver_beginScene (SCM video_driver,
                          SCM video_data,
                          SCM source_rect)
 {
-  video::IVideoDriver* driver = (video::IVideoDriver*) scm_to_pointer (video_driver);
+  video::IVideoDriver* driver = (video::IVideoDriver*) scm_to_irr_pointer (video_driver);
 
   // Source rect
   core::rect<s32>* sourceRectAddress = 0;
@@ -69,7 +70,7 @@ IVideoDriver_drawVertexPrimitiveList (SCM video_driver,
   for (int i = 0; i < vertex_count; i++)
     {
       video::S3DVertex* vertex =
-        (video::S3DVertex*) scm_to_pointer (scm_list_ref (vertices, scm_from_int (i)));
+        (video::S3DVertex*) scm_to_irr_pointer (scm_list_ref (vertices, scm_from_int (i)));
       s3d_vertices[i] = video::S3DVertex (vertex->Pos,
                                           vertex->Normal,
                                           vertex->Color,
@@ -88,7 +89,7 @@ IVideoDriver_drawVertexPrimitiveList (SCM video_driver,
     }
 
   // Draw vertices
-  video::IVideoDriver* driver = (video::IVideoDriver*) scm_to_pointer (video_driver);
+  video::IVideoDriver* driver = (video::IVideoDriver*) scm_to_irr_pointer (video_driver);
   driver->drawVertexPrimitiveList (&s3d_vertices[0],
                                    vertex_count,
                                    &c_indices[0],
@@ -102,14 +103,14 @@ IVideoDriver_drawVertexPrimitiveList (SCM video_driver,
 SCM
 IVideoDriver_endScene (SCM video_driver)
 {
-  video::IVideoDriver* driver = (video::IVideoDriver*) scm_to_pointer (video_driver);
+  video::IVideoDriver* driver = (video::IVideoDriver*) scm_to_irr_pointer (video_driver);
   return scm_from_bool (driver->endScene ());
 }
 
 SCM
 IVideoDriver_getFPS (SCM video_driver)
 {
-  video::IVideoDriver* driver = (video::IVideoDriver*) scm_to_pointer (video_driver);
+  video::IVideoDriver* driver = (video::IVideoDriver*) scm_to_irr_pointer (video_driver);
   return scm_from_int32 (driver->getFPS ());
 }
 
@@ -117,7 +118,7 @@ SCM
 IVideoDriver_getTexture (SCM video_driver,
                          SCM filename)
 {
-  video::IVideoDriver* driver = (video::IVideoDriver*) scm_to_pointer (video_driver);
+  video::IVideoDriver* driver = (video::IVideoDriver*) scm_to_irr_pointer (video_driver);
   video::ITexture* texture = driver->getTexture (scm_to_utf8_stringn (filename, NULL));
   return scm_from_pointer ((void*) texture, NULL);
 }
@@ -126,8 +127,8 @@ SCM
 IVideoDriver_setMaterial (SCM video_driver,
                           SCM material)
 {
-  video::IVideoDriver* driver = (video::IVideoDriver*) scm_to_pointer (video_driver);
-  driver->setMaterial (*((video::SMaterial*) scm_to_pointer (material)));
+  video::IVideoDriver* driver = (video::IVideoDriver*) scm_to_irr_pointer (video_driver);
+  driver->setMaterial (*((video::SMaterial*) scm_to_irr_pointer (material)));
   return SCM_UNSPECIFIED;
 }
 
@@ -136,7 +137,7 @@ IVideoDriver_setTransform (SCM video_driver,
                            SCM state,
                            SCM mat)
 {
-  video::IVideoDriver* driver = (video::IVideoDriver*) scm_to_pointer (video_driver);
+  video::IVideoDriver* driver = (video::IVideoDriver*) scm_to_irr_pointer (video_driver);
   driver->setTransform (scm_to_transformation_state (state),
                         scm_to_matrix4 (mat));
   return SCM_UNSPECIFIED;
diff --git a/src/wrapped.cpp b/src/wrapped.cpp
new file mode 100644 (file)
index 0000000..81d4130
--- /dev/null
@@ -0,0 +1,31 @@
+/* guile-irrlicht --- GNU Guile bindings for Irrlicht Engine
+
+   Copyright (C) 2020 Javier Sancho <jsf@jsancho.org>
+
+   This file is part of guile-irrlicht.
+
+   guile-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.
+
+   guile-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 <libguile.h>
+#include "wrapped.h"
+
+/* Extract C++ irrlicht object pointer from Guile object */
+void*
+scm_to_irr_pointer (SCM obj)
+{
+  SCM slot = scm_slot_ref (obj, scm_from_utf8_symbol ("irr-pointer"));
+  return scm_to_pointer (slot);
+}
diff --git a/src/wrapped.h b/src/wrapped.h
new file mode 100644 (file)
index 0000000..136a6cd
--- /dev/null
@@ -0,0 +1,30 @@
+/* guile-irrlicht --- GNU Guile bindings for Irrlicht Engine
+
+   Copyright (C) 2020 Javier Sancho <jsf@jsancho.org>
+
+   This file is part of guile-irrlicht.
+
+   guile-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.
+
+   guile-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 __GUILE_IRRLICHT_WRAPPED_H_INCLUDED__
+#define __GUILE_IRRLICHT_WRAPPED_H_INCLUDED__
+
+#include <libguile.h>
+
+void*
+scm_to_irr_pointer (SCM obj);
+
+#endif