]> git.jsancho.org Git - guile-irrlicht.git/commitdiff
Boolean functions
authorJavier Sancho <jsf@jsancho.org>
Mon, 11 Nov 2019 08:48:45 +0000 (09:48 +0100)
committerJavier Sancho <jsf@jsancho.org>
Mon, 11 Nov 2019 08:48:45 +0000 (09:48 +0100)
irrlicht/device.scm
irrlicht/gui.scm
irrlicht/io.scm
irrlicht/scene.scm
irrlicht/util.scm [new file with mode: 0644]
irrlicht/video.scm

index 9a009ef2cd13f8d5cd3fde000533f10e228a3d1c..928a6c8e51cf362b2506c430cf2825b623f8479c 100644 (file)
@@ -24,6 +24,7 @@
   #:use-module ((irrlicht bindings) #:prefix ffi:)
   #:use-module ((irrlicht bindings core) #:prefix ffi-core:)
   #:use-module ((irrlicht bindings video) #:prefix ffi-video:)
+  #:use-module (irrlicht util)
   #:export (create-device
             get-cursor-control
             get-file-system
@@ -52,9 +53,9 @@
                        ('count ffi-video:EDT_COUNT)))
         (wsize (make-c-struct ffi-core:dimension2d window-size)))
     (let ((device (ffi:create-device driver wsize bits
-                                     (if fullscreen 1 0)
-                                     (if stencilbuffer 1 0)
-                                     (if vsync 1 0))))
+                                     (bool->integer fullscreen)
+                                     (bool->integer stencilbuffer)
+                                     (bool->integer vsync))))
       (if (null-pointer? device) #f device))))
 
 (define (get-cursor-control device)
   (ffi:get-scene-manager device))
 
 (define (is-window-active? device)
-  (if (> (ffi:is-window-active device) 0) #t #f))
+  (integer->bool (ffi:is-window-active device)))
 
 (define (set-window-caption! device text)
   (ffi:set-window-caption device (string->pointer text)))
 
 (define (device-run? device)
-  (if (> (ffi:run device) 0) #t #f))
+  (integer->bool (ffi:run device)))
 
 (define (device-drop! device)
-  (if (> (ffi:drop device) 0) #t #f))
+  (integer->bool (ffi:drop device)))
index 641cf4715a46ef90e761b81a53a86da1a8e1c838..09102694c5f6b1621ece4a5c3d3274ac52c17059 100644 (file)
@@ -23,6 +23,7 @@
   #:use-module (system foreign)
   #:use-module ((irrlicht bindings core) #:prefix ffi-core:)
   #:use-module ((irrlicht bindings gui) #:prefix ffi-gui:)
+  #:use-module (irrlicht util)
   #:export (add-static-text!
             gui-draw-all
             set-visible-cursor!))
   (ffi-gui:add-static-text gui-env
                            (string->pointer text)
                            (make-c-struct ffi-core:rect rectangle)
-                           (if border 1 0)
-                           (if word-wrap 1 0)
+                           (bool->integer border)
+                           (bool->integer word-wrap)
                            parent
                            id
-                           (if fill-background 1 0)))
+                           (bool->integer fill-background)))
 
 (define (gui-draw-all gui-env)
   (ffi-gui:draw-all gui-env))
@@ -49,4 +50,4 @@
 (define (set-visible-cursor! cursor-control visible)
   (ffi-gui:set-visible-cursor
    cursor-control
-   (if visible 1 0)))
+   (bool->integer visible)))
index 13288d58ea0049aa4dcf02a82248c850252c8874..9aaf34cdd08043998555bb09d1eb86a23796efd0 100644 (file)
@@ -22,6 +22,7 @@
   #:use-module (ice-9 match)
   #:use-module (system foreign)
   #:use-module ((irrlicht bindings io) #:prefix ffi-io:)
+  #:use-module (irrlicht util)
   #:export (add-file-archive!))
 
 (define* (add-file-archive! file-system filename
@@ -42,8 +43,8 @@
                      ('unknown ffi-io:EFAT_UNKNOWN))))
     (ffi-io:add-file-archive file-system
                              (string->pointer filename)
-                             (if ignore-case 1 0)
-                             (if ignore-paths 1 0)
+                             (bool->integer ignore-case)
+                             (bool->integer ignore-paths)
                              type
                              (string->pointer password)
                              ret-archive)))
index 8c622efec9c19512e6479a7f1651357bc2a3d5b0..264a4bd9883fce2d46d5a70257216ede6820736b 100644 (file)
@@ -24,6 +24,7 @@
   #:use-module ((irrlicht bindings core) #:prefix ffi-core:)
   #:use-module ((irrlicht bindings scene) #:prefix ffi-scene:)
   #:use-module ((irrlicht bindings video) #:prefix ffi-video:)
+  #:use-module (irrlicht util)
   #:export (add-animated-mesh-scene-node
             add-camera-scene-node
             add-camera-scene-node-fps!
@@ -51,7 +52,7 @@
                (make-c-struct ffi-core:vector3df position)
                (make-c-struct ffi-core:vector3df rotation)
                (make-c-struct ffi-core:vector3df scale)
-               (if also-add-if-mesh-pointer-zero 1 0))))
+               (bool->integer also-add-if-mesh-pointer-zero))))
     (if (null-pointer? node) #f node)))
 
 (define* (add-camera-scene-node scene-manager
@@ -67,7 +68,7 @@
                  (make-c-struct ffi-core:vector3df position)
                  (make-c-struct ffi-core:vector3df lookat)
                  id
-                 (if make-active 1 0))))
+                 (bool->integer make-active))))
     (if (null-pointer? camera) #f camera)))
 
 (define* (add-camera-scene-node-fps! scene-manager
    id
    key-map-array
    key-map-size
-   (if no-vertical-movement 1 0)
+   (bool->integer no-vertical-movement)
    jump-speed
-   (if invert-mouse 1 0)
-   (if make-active 1 0)))
+   (bool->integer invert-mouse)
+   (bool->integer make-active)))
 
 (define* (add-octree-scene-node-am scene-manager mesh
                                    #:key
    parent
    id
    minimal-polys-per-node
-   (if also-add-if-mesh-pointer-zero 1 0)))
+   (bool->integer also-add-if-mesh-pointer-zero)))
 
 (define (get-mesh scene-manager filename)
   (let ((mesh (ffi-scene:get-mesh scene-manager (string->pointer filename))))
     (ffi-scene:set-material-flag-am
      node
      material-flag
-     (if newvalue 1 0))))
+     (bool->integer newvalue))))
 
 (define (set-material-texture-am! node texture-layer texture)
   (ffi-scene:set-material-texture-am node texture-layer texture))
diff --git a/irrlicht/util.scm b/irrlicht/util.scm
new file mode 100644 (file)
index 0000000..8c5b9e4
--- /dev/null
@@ -0,0 +1,29 @@
+;;; guile-irrlicht --- FFI bindings for Irrlicht Engine
+;;; Copyright (C) 2019 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/>.
+
+
+(define-module (irrlicht util)
+  #:export (bool->integer
+            integer->bool))
+
+(define (bool->integer var)
+  (if var 1 0))
+
+(define (integer->bool var)
+  (if (= var 0) #f #t))
index e113815ad3501fa5ecc0b284affcee1976562248..000373ddb28229e2508694c56ab67fbe0a4c3db5 100644 (file)
@@ -22,6 +22,7 @@
   #:use-module (system foreign)
   #:use-module ((irrlicht bindings core) #:prefix ffi-core:)
   #:use-module ((irrlicht bindings video) #:prefix ffi-video:)
+  #:use-module (irrlicht util)
   #:export (begin-scene
             end-scene
             get-fps
@@ -36,8 +37,8 @@
                       (video-data %null-pointer)
                       (source-rect '()))
   (ffi-video:begin-scene driver
-                         (if back-buffer 1 0)
-                         (if z-buffer 1 0)
+                         (bool->integer back-buffer)
+                         (bool->integer z-buffer)
                          (make-c-struct ffi-video:scolor color)
                          video-data
                          (if (null? source-rect)