;;; GL ;;; ;;; Copyright (C) 2004 Philippe Brochard (hocwp@free.fr) ;;; ;;; #date#: Tue Feb 1 20:18:19 2005 ;;; ;;; The authors grant you the rights to distribute ;;; and use this software as governed by the terms ;;; of the Lisp Lesser GNU Public License ;;; (http://opensource.franz.com/preamble.html), ;;; known as the LLGPL. (in-package :GL) (export '(__FREEGLUT_EXT_H__ GLUT_ACTION_EXIT GLUT_ACTION_GLUTMAINLOOP_RETURNS GLUT_ACTION_CONTINUE_EXECUTION GLUT_CREATE_NEW_CONTEXT GLUT_USE_CURRENT_CONTEXT GLUT_ACTION_ON_WINDOW_CLOSE GLUT_WINDOW_BORDER_WIDTH GLUT_WINDOW_HEADER_HEIGHT GLUT_VERSION GLUT_RENDERING_CONTEXT glutMainLoopEvent glutLeaveMainLoop glutMouseWheelFunc glutCloseFunc glutWMCloseFunc glutMenuDestroyFunc glutSetOption glutGetWindowData glutSetWindowData glutGetMenuData glutSetMenuData glutBitmapHeight glutStrokeHeight glutBitmapString glutStrokeString glutWireRhombicDodecahedron glutSolidRhombicDodecahedron glutWireSierpinskiSponge glutSolidSierpinskiSponge glutWireCylinder glutSolidCylinder glutGetProcAddress)) ;;; DEFINE: #ifndef __FREEGLUT_EXT_H__ ;; **IGNORED**: #ifndef __FREEGLUT_EXT_H__ ;;; DEFINE: #define __FREEGLUT_EXT_H__ (defconstant __FREEGLUT_EXT_H__ NIL) ;;; COMMENT: /* * freeglut_ext.h * * The non-GLUT-compatible extensions to the freeglut library include file * * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved. * Written by Pawel W. Olszta, * Creation date: Thu Dec 2 1999 * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ ;;; DEFINE: #ifdef __cplusplus ;; **IGNORED**: #ifdef __cplusplus ;;; CODE: "C" { ;; **IGNORED**: "C" { ;;; DEFINE: #endif ;; **IGNORED**: #endif ;;; COMMENT: /* * GLUT API Extension macro definitions -- behaviour when the user clicks on an "x" to close a window */ ;;; DEFINE: #define GLUT_ACTION_EXIT 0 (defconstant GLUT_ACTION_EXIT 0) ;;; DEFINE: #define GLUT_ACTION_GLUTMAINLOOP_RETURNS 1 (defconstant GLUT_ACTION_GLUTMAINLOOP_RETURNS 1) ;;; DEFINE: #define GLUT_ACTION_CONTINUE_EXECUTION 2 (defconstant GLUT_ACTION_CONTINUE_EXECUTION 2) ;;; COMMENT: /* * Create a new rendering context when the user opens a new window? */ ;;; DEFINE: #define GLUT_CREATE_NEW_CONTEXT 0 (defconstant GLUT_CREATE_NEW_CONTEXT 0) ;;; DEFINE: #define GLUT_USE_CURRENT_CONTEXT 1 (defconstant GLUT_USE_CURRENT_CONTEXT 1) ;;; COMMENT: /* * GLUT API Extension macro definitions -- the glutGet parameters */ ;;; DEFINE: #define GLUT_ACTION_ON_WINDOW_CLOSE 0x01F9 (defconstant GLUT_ACTION_ON_WINDOW_CLOSE #x01F9) ;;; DEFINE: #define GLUT_WINDOW_BORDER_WIDTH 0x01FA (defconstant GLUT_WINDOW_BORDER_WIDTH #x01FA) ;;; DEFINE: #define GLUT_WINDOW_HEADER_HEIGHT 0x01FB (defconstant GLUT_WINDOW_HEADER_HEIGHT #x01FB) ;;; DEFINE: #define GLUT_VERSION 0x01FC (defconstant GLUT_VERSION #x01FC) ;;; DEFINE: #define GLUT_RENDERING_CONTEXT 0x01FD (defconstant GLUT_RENDERING_CONTEXT #x01FD) ;;; COMMENT: /* * Process loop function, see freeglut_main.c */ ;;; CODE: void glutMainLoopEvent( void ); (ffi:def-call-out glutMainLoopEvent (:name "glutMainLoopEvent") (:return-type NIL) (:arguments) (:language :STDC) (:library #+UNIX "libglut.so" #+WIN32 "lib/oglextd.lib")) ;;; CODE: void glutLeaveMainLoop( void ); (ffi:def-call-out glutLeaveMainLoop (:name "glutLeaveMainLoop") (:return-type NIL) (:arguments) (:language :STDC) (:library #+UNIX "libglut.so" #+WIN32 "lib/oglextd.lib")) ;;; COMMENT: /* * Window-specific callback functions, see freeglut_callbacks.c */ ;;; CODE: void glutMouseWheelFunc( void (* callback)( int, int, int, int ) ); (ffi:def-call-out glutMouseWheelFunc (:name "glutMouseWheelFunc") (:return-type NIL) (:arguments (callback (ffi:c-function (:return-type NIL) (:arguments(pG5128 ffi:int)(pG5129 ffi:int)(pG5130 ffi:int)(pG5131 ffi:int)) (:language :STDC)))) (:language :STDC) (:library #+UNIX "libglut.so" #+WIN32 "lib/oglextd.lib")) ;;; CODE: void glutCloseFunc( void (* callback)( void ) ); (ffi:def-call-out glutCloseFunc (:name "glutCloseFunc") (:return-type NIL) (:arguments (callback (ffi:c-function (:return-type NIL) (:arguments) (:language :STDC)))) (:language :STDC) (:library #+UNIX "libglut.so" #+WIN32 "lib/oglextd.lib")) ;;; CODE: void glutWMCloseFunc( void (* callback)( void ) ); (ffi:def-call-out glutWMCloseFunc (:name "glutWMCloseFunc") (:return-type NIL) (:arguments (callback (ffi:c-function (:return-type NIL) (:arguments) (:language :STDC)))) (:language :STDC) (:library #+UNIX "libglut.so" #+WIN32 "lib/oglextd.lib")) ;;; COMMENT: /* A. Donev: Also a destruction callback for menus */ ;;; CODE: void glutMenuDestroyFunc( void (* callback)( void ) ); (ffi:def-call-out glutMenuDestroyFunc (:name "glutMenuDestroyFunc") (:return-type NIL) (:arguments (callback (ffi:c-function (:return-type NIL) (:arguments) (:language :STDC)))) (:language :STDC) (:library #+UNIX "libglut.so" #+WIN32 "lib/oglextd.lib")) ;;; COMMENT: /* * State setting and retrieval functions, see freeglut_state.c */ ;;; CODE: void glutSetOption ( GLenum option_flag, int value ) ; (ffi:def-call-out glutSetOption (:name "glutSetOption") (:return-type NIL) (:arguments (option_flag GLenum) (value ffi:int)) (:language :STDC) (:library #+UNIX "libglut.so" #+WIN32 "lib/oglextd.lib")) ;;; COMMENT: /* A.Donev: User-data manipulation */ ;;; CODE: void* glutGetWindowData( void ); (ffi:def-call-out glutGetWindowData (:name "glutGetWindowData") (:return-type ffi:c-pointer) (:arguments) (:language :STDC) (:library #+UNIX "libglut.so" #+WIN32 "lib/oglextd.lib")) ;;; CODE: void glutSetWindowData(void* data); (ffi:def-call-out glutSetWindowData (:name "glutSetWindowData") (:return-type NIL) (:arguments (data ffi:c-pointer)) (:language :STDC) (:library #+UNIX "libglut.so" #+WIN32 "lib/oglextd.lib")) ;;; CODE: void* glutGetMenuData( void ); (ffi:def-call-out glutGetMenuData (:name "glutGetMenuData") (:return-type ffi:c-pointer) (:arguments) (:language :STDC) (:library #+UNIX "libglut.so" #+WIN32 "lib/oglextd.lib")) ;;; CODE: void glutSetMenuData(void* data); (ffi:def-call-out glutSetMenuData (:name "glutSetMenuData") (:return-type NIL) (:arguments (data ffi:c-pointer)) (:language :STDC) (:library #+UNIX "libglut.so" #+WIN32 "lib/oglextd.lib")) ;;; COMMENT: /* * Font stuff, see freeglut_font.c */ ;;; CODE: int glutBitmapHeight( void* font ); (ffi:def-call-out glutBitmapHeight (:name "glutBitmapHeight") (:return-type ffi:int) (:arguments (font ffi:c-pointer)) (:language :STDC) (:library #+UNIX "libglut.so" #+WIN32 "lib/oglextd.lib")) ;;; CODE: GLfloat glutStrokeHeight( void* font ); (ffi:def-call-out glutStrokeHeight (:name "glutStrokeHeight") (:return-type GLfloat) (:arguments (font ffi:c-pointer)) (:language :STDC) (:library #+UNIX "libglut.so" #+WIN32 "lib/oglextd.lib")) ;;; CODE: void glutBitmapString( void* font, unsigned char *string ); (ffi:def-call-out glutBitmapString (:name "glutBitmapString") (:return-type NIL) (:arguments (font ffi:c-pointer) (string (ffi:c-ptr ffi:uchar))) (:language :STDC) (:library #+UNIX "libglut.so" #+WIN32 "lib/oglextd.lib")) ;;; CODE: void glutStrokeString( void* font, unsigned char *string ); (ffi:def-call-out glutStrokeString (:name "glutStrokeString") (:return-type NIL) (:arguments (font ffi:c-pointer) (string (ffi:c-ptr ffi:uchar))) (:language :STDC) (:library #+UNIX "libglut.so" #+WIN32 "lib/oglextd.lib")) ;;; COMMENT: /* * Geometry functions, see freeglut_geometry.c */ ;;; CODE: void glutWireRhombicDodecahedron( void ); (ffi:def-call-out glutWireRhombicDodecahedron (:name "glutWireRhombicDodecahedron") (:return-type NIL) (:arguments) (:language :STDC) (:library #+UNIX "libglut.so" #+WIN32 "lib/oglextd.lib")) ;;; CODE: void glutSolidRhombicDodecahedron( void ); (ffi:def-call-out glutSolidRhombicDodecahedron (:name "glutSolidRhombicDodecahedron") (:return-type NIL) (:arguments) (:language :STDC) (:library #+UNIX "libglut.so" #+WIN32 "lib/oglextd.lib")) ;;; CODE: void glutWireSierpinskiSponge ( int num_levels, GLdouble offset[3], GLdouble scale ) ; (ffi:def-call-out glutWireSierpinskiSponge (:name "glutWireSierpinskiSponge") (:return-type NIL) (:arguments (num_levels ffi:int) (offset[3] GLdouble) (scale GLdouble)) (:language :STDC) (:library #+UNIX "libglut.so" #+WIN32 "lib/oglextd.lib")) ;;; CODE: void glutSolidSierpinskiSponge ( int num_levels, GLdouble offset[3], GLdouble scale ) ; (ffi:def-call-out glutSolidSierpinskiSponge (:name "glutSolidSierpinskiSponge") (:return-type NIL) (:arguments (num_levels ffi:int) (offset[3] GLdouble) (scale GLdouble)) (:language :STDC) (:library #+UNIX "libglut.so" #+WIN32 "lib/oglextd.lib")) ;;; CODE: void glutWireCylinder( GLdouble radius, GLdouble height, GLint slices, GLint stacks); (ffi:def-call-out glutWireCylinder (:name "glutWireCylinder") (:return-type NIL) (:arguments (radius GLdouble) (height GLdouble) (slices GLint) (stacks GLint)) (:language :STDC) (:library #+UNIX "libglut.so" #+WIN32 "lib/oglextd.lib")) ;;; CODE: void glutSolidCylinder( GLdouble radius, GLdouble height, GLint slices, GLint stacks); (ffi:def-call-out glutSolidCylinder (:name "glutSolidCylinder") (:return-type NIL) (:arguments (radius GLdouble) (height GLdouble) (slices GLint) (stacks GLint)) (:language :STDC) (:library #+UNIX "libglut.so" #+WIN32 "lib/oglextd.lib")) ;;; COMMENT: /* * Extension functions, see freeglut_ext.c */ ;;; CODE: void * glutGetProcAddress( char *procName ); (ffi:def-call-out glutGetProcAddress (:name "glutGetProcAddress") (:return-type ffi:c-pointer) (:arguments (procName ffi:c-string)) (:language :STDC) (:library #+UNIX "libglut.so" #+WIN32 "lib/oglextd.lib")) ;;; DEFINE: #ifdef __cplusplus ;; **IGNORED**: #ifdef __cplusplus ;;; CODE: } ;; **IGNORED**: } ;;; DEFINE: #endif ;; **IGNORED**: #endif ;;; COMMENT: /*** END OF FILE ***/ ;;; COMMENT: /* __FREEGLUT_EXT_H__ */ ;;; DEFINE: #endif ;; **IGNORED**: #endif