]> git.jsancho.org Git - guile-irrlicht.git/commitdiff
avoid problems with complex inheritance tree and getters
authorJavier Sancho <jsf@jsancho.org>
Thu, 14 May 2020 07:16:57 +0000 (09:16 +0200)
committerJavier Sancho <jsf@jsancho.org>
Thu, 14 May 2020 07:16:57 +0000 (09:16 +0200)
irrlicht/base.scm
irrlicht/device.scm
irrlicht/gui.scm
irrlicht/io.scm
irrlicht/irr.scm
irrlicht/scene.scm
irrlicht/video.scm

index dba889b6168eddb90b15b5518740111614d149aa..db1de76f1bd8333f03a0a74bcb93528f74dcedb8 100644 (file)
             is-empty?))
 
 (define-class <irrlicht-base> ()
-  (irr-class #:init-value "" #:getter irr-class)
+  (irr-class #:init-value "")
   (irr-pointer #:init-value %null-pointer #:getter irr-pointer #:init-keyword #:irr-pointer))
 
+;; irr-class getter is defined in this way to avoid problems with multiple getters
+;; in multiple inherited classes
+(define-method (irr-class (obj <irrlicht-base>))
+  (slot-ref obj 'irr-class))
+
 (define-method (is-empty? (obj <irrlicht-base>))
   (equal? (irr-pointer obj) %null-pointer))
index 6e9dfcc8cf0c0a1a7d0f05d7855873710ba5b604..ef1b776f819da6ab64c9522bd247f055487c2c30 100644 (file)
@@ -31,7 +31,7 @@
 
 ;; IrrlichtDevice
 (define-class <irrlicht-device> (<reference-counted>)
-  (irr-class #:init-value "IrrlichtDevice" #:getter irr-class))
+  (irr-class #:init-value "IrrlichtDevice"))
 
 (define* (create-device #:key
                         (device-type 'software)
index 3d0e091e06b47ef11b44c0d4700f229580e056a1..818d062bef3cedf6d3192db1c7ed83cab6c04b0d 100644 (file)
 
 ;; IGUIElement
 (define-class <gui-element> (<attribute-exchanging-object> <event-receiver>)
-  (irr-class #:init-value "IGUIElement" #:getter irr-class))
+  (irr-class #:init-value "IGUIElement"))
 
 (export <gui-element>)
 
 
 ;; IGUIEnvironment
 (define-class <gui-environment> (<reference-counted>)
-  (irr-class #:init-value "IGUIEnvironment" #:getter irr-class))
+  (irr-class #:init-value "IGUIEnvironment"))
 
 (define-method (add-static-text! (gui-environment <gui-environment>) text rectangle . rest)
   (let-keywords rest #f
@@ -66,6 +66,6 @@
 
 ;; IGUIStaticText
 (define-class <gui-static-text> (<gui-element>)
-  (irr-class #:init-value "IGUIStaticText" #:getter irr-class))
+  (irr-class #:init-value "IGUIStaticText"))
 
 (export <gui-static-text>)
index 1e94c5d23fd774668b28156d189051a186018d48..0276982dc932560e8d7221c5fd7d9c11b727b4c3 100644 (file)
 
 ;; IAttributeExchangingObject
 (define-class <attribute-exchanging-object> (<reference-counted>)
-  (irr-class #:init-value "IAttributeExchangingObject" #:getter irr-class))
+  (irr-class #:init-value "IAttributeExchangingObject"))
 
 (export <attribute-exchanging-object>)
 
 
 ;;IFileArchive
 (define-class <file-archive> (<reference-counted>)
-  (irr-class #:init-value "IFileArchive" #:getter irr-class))
+  (irr-class #:init-value "IFileArchive"))
 
 (export <file-archive>)
 
 
 ;;IFileSystem
 (define-class <file-system> (<reference-counted>)
-  (irr-class #:init-value "IFileSystem" #:getter irr-class))
+  (irr-class #:init-value "IFileSystem"))
 
 (define-method (add-file-archive! (file-system <file-system>) filename . rest)
   (let-keywords rest #f
index 19af56fd58547cb7d6d56d918280280d4f87187a..b1ffdcc58e30748f58dd5cfb8cf1ce0557007d5c 100644 (file)
@@ -26,7 +26,7 @@
 
 ;; IReferenceCounted
 (define-class <reference-counted> (<irrlicht-base>)
-  (irr-class #:init-value "IReferenceCounted" #:getter irr-class))
+  (irr-class #:init-value "IReferenceCounted"))
 
 (define-method (drop! (obj <reference-counted>))
   (let ((drop (get-irrlicht-proc "drop" obj)))
@@ -37,6 +37,6 @@
 
 ;; IEventReceiver
 (define-class <event-receiver> (<irrlicht-base>)
-  (irr-class #:init-value "IEventReceiver" #:getter irr-class))
+  (irr-class #:init-value "IEventReceiver"))
 
 (export <event-receiver>)
index a59e0fa3d4a554552cc61d4dce8ee4e042926535..d268dea8a583492e5f8fddafb7478c3a0b9a061a 100644 (file)
 
 ;; IMesh
 (define-class <mesh> (<reference-counted>)
-  (irr-class #:init-value "IMesh" #:getter irr-class))
+  (irr-class #:init-value "IMesh"))
 
 (export <mesh>)
 
 
 ;; IAnimatedMesh
 (define-class <animated-mesh> (<mesh>)
-  (irr-class #:init-value "IAnimatedMesh" #:getter irr-class))
+  (irr-class #:init-value "IAnimatedMesh"))
 
 (export <animated-mesh>)
 
 
 ;; ISceneManager
 (define-class <scene-manager> (<reference-counted>)
-  (irr-class #:init-value "ISceneManager" #:getter irr-class))
+  (irr-class #:init-value "ISceneManager"))
 
 (define-method (add-animated-mesh-scene-node! (scene-manager <scene-manager>)
                                               (mesh <animated-mesh>)
 
 ;; ISceneNode
 (define-class <scene-node> (<attribute-exchanging-object>)
-  (irr-class #:init-value "ISceneNode" #:getter irr-class))
+  (irr-class #:init-value "ISceneNode"))
 
 (define-method (set-material-flag! (node <scene-node>) flag new-value)
   ((get-irrlicht-proc "setMaterialFlag" node)
 
 ;; IAnimatedMeshSceneNode
 (define-class <animated-mesh-scene-node> (<scene-node>)
-  (irr-class #:init-value "IAnimatedMeshSceneNode" #:getter irr-class))
+  (irr-class #:init-value "IAnimatedMeshSceneNode"))
 
 (define-method (set-md2-animation! (node <animated-mesh-scene-node>) anim)
   ((get-irrlicht-proc "setMD2Animation" node)
 
 ;; ICameraSceneNode
 (define-class <camera-scene-node> (<scene-node>)
-  (irr-class #:init-value "ICameraSceneNode" #:getter irr-class))
+  (irr-class #:init-value "ICameraSceneNode"))
 
 (export <camera-scene-node>)
index 5659276c57bd432f90fc69c5926af973b0c28265..7dd433dc65b5d4b45dc71f91ac703b1b89d56fb8 100644 (file)
 
 ;; ITexture
 (define-class <texture> (<irrlicht-base>)
-  (irr-class #:init-value "ITexture" #:getter irr-class))
+  (irr-class #:init-value "ITexture"))
 
 (export <texture>)
 
 
 ;; IVideoDriver
 (define-class <video-driver> (<irrlicht-base>)
-  (irr-class #:init-value "IVideoDriver" #:getter irr-class))
+  (irr-class #:init-value "IVideoDriver"))
 
 (define-method (begin-scene (video-driver <video-driver>) . rest)
   (let-keywords rest #f