From 4d305f651400ac0b7c8145816596ebc3b07f1c2a Mon Sep 17 00:00:00 2001 From: Matthew Stickney Date: Sat, 2 Feb 2013 20:57:03 -0500 Subject: [PATCH] Define FFI functions in libgdkglext, provide dll names for windows --- gtk-ffi/gtk-gl-ext.lisp | 47 +++++++++++++++++++++++++---------------- 1 file changed, 29 insertions(+), 18 deletions(-) diff --git a/gtk-ffi/gtk-gl-ext.lisp b/gtk-ffi/gtk-gl-ext.lisp index 4bfa909..c7d6017 100644 --- a/gtk-ffi/gtk-gl-ext.lisp +++ b/gtk-ffi/gtk-gl-ext.lisp @@ -20,10 +20,19 @@ This is taken from (cffi:define-foreign-library libgtkglext (:darwin "libgtkglext-x11-1.0.dylib") (:unix (:or "libgtkglext-x11-1.0.so" "libgtkglext-x11-1.0.so.0")) + (:windows "libgtkglext-win32-1.0-0.dll") (t (:default "libgtkglext"))) (cffi:use-foreign-library libgtkglext) +(cffi:define-foreign-library libgdkglext + (:darwin "libgdkglext-x11-1.0.dylib") + (:unix (:or "libgdkglext-x11-1.0.so" "libgdkglext-x11-1.0.so.0")) + (:windows "libgdkglext-win32-1.0-0.dll") + (t (:default "libgdkglext"))) + +(cffi:use-foreign-library libgdkglext) + (cffi:defbitfield gdk-gl-config-mode (:gdk-gl-mode-rgba 0) :gdk-gl-mode-index @@ -37,26 +46,14 @@ This is taken from (cffi:defcenum gdk-gl-render-type (:gdk-gl-rgba-type #x8014) - (:gdk-gl-color-index-type #x8015)) + (:gdk-gl-color-index-type #x8015)) -(def-gtk-lib-functions :gtkglext - (gtk-gl-init :void - ((argc :pointer) - (argv :pointer))) - (gtk-gl-init-check gboolean - ((argc :pointer) - (argv :pointer))) +(def-gtk-lib-functions :gdkglext (gdk-gl-config-new-by-mode :pointer ((mode gdk-gl-config-mode))) (gdk-gl-config-new-by-mode-for-screen :pointer ((screen :pointer) (mode gdk-gl-config-mode))) - (gtk-widget-set-gl-capability gboolean - ((widget :pointer) - (glconfig :pointer) - (share-list :pointer) - (direct gboolean) - (render-type gdk-gl-render-type))) (gdk-gl-config-is-rgba gboolean ((glconfig :pointer))) (gdk-gl-config-is-double-buffered gboolean @@ -75,10 +72,6 @@ This is taken from (attrib-list :pointer))) (gdk-gl-window-destroy :void ((window :pointer))) - (gtk-widget-get-gl-context :pointer - ((widget :pointer))) - (gtk-widget-get-gl-window :pointer - ((widget :pointer))) (gdk-gl-drawable-gl-begin gboolean ((gldrawable :pointer) (glcontext :pointer))) @@ -89,6 +82,24 @@ This is taken from (gdk-gl-drawable-swap-buffers :void ((gldrawable :pointer)))) +(def-gtk-lib-functions :gtkglext + (gtk-gl-init :void + ((argc :pointer) + (argv :pointer))) + (gtk-gl-init-check gboolean + ((argc :pointer) + (argv :pointer))) + (gtk-widget-set-gl-capability gboolean + ((widget :pointer) + (glconfig :pointer) + (share-list :pointer) + (direct gboolean) + (render-type gdk-gl-render-type))) + (gtk-widget-get-gl-context :pointer + ((widget :pointer))) + (gtk-widget-get-gl-window :pointer + ((widget :pointer)))) + (defmacro with-gl-drawable (widget &rest body) (let ((context (gensym)) (drawable (gensym))) `(let ((,context (gtk-widget-get-gl-context ,widget))