ruby-glfw 0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. data/README +1 -0
  2. data/README.API +73 -0
  3. data/Rakefile +120 -0
  4. data/examples/boing.rb +519 -0
  5. data/examples/gears.rb +327 -0
  6. data/examples/keytest.rb +117 -0
  7. data/examples/listmodes.rb +20 -0
  8. data/examples/mipmaps.rb +104 -0
  9. data/examples/mipmaps.tga +0 -0
  10. data/examples/particles.rb +837 -0
  11. data/examples/pong3d.rb +741 -0
  12. data/examples/pong3d_field.tga +0 -0
  13. data/examples/pong3d_instr.tga +0 -0
  14. data/examples/pong3d_menu.tga +0 -0
  15. data/examples/pong3d_title.tga +0 -0
  16. data/examples/pong3d_winner1.tga +0 -0
  17. data/examples/pong3d_winner2.tga +0 -0
  18. data/examples/splitview.rb +432 -0
  19. data/examples/triangle.rb +89 -0
  20. data/examples/wave.rb +294 -0
  21. data/ext/glfw/glfw.c +1094 -0
  22. data/ext/glfw/mkrf_conf.rb +70 -0
  23. data/glfw-src/Makefile +220 -0
  24. data/glfw-src/compile.ami +61 -0
  25. data/glfw-src/compile.bat +217 -0
  26. data/glfw-src/compile.sh +607 -0
  27. data/glfw-src/docs/Makefile +57 -0
  28. data/glfw-src/docs/Reference.pdf +0 -0
  29. data/glfw-src/docs/UsersGuide.pdf +0 -0
  30. data/glfw-src/docs/cleanup.bat +22 -0
  31. data/glfw-src/docs/glfwdoc.sty +80 -0
  32. data/glfw-src/docs/glfwrm.tex +3034 -0
  33. data/glfw-src/docs/glfwug.tex +2024 -0
  34. data/glfw-src/docs/readme.txt +80 -0
  35. data/glfw-src/examples/Makefile.amigaos.gcc +70 -0
  36. data/glfw-src/examples/Makefile.amigaos.vbcc +70 -0
  37. data/glfw-src/examples/Makefile.dos.djgpp +71 -0
  38. data/glfw-src/examples/Makefile.macosx.gcc +96 -0
  39. data/glfw-src/examples/Makefile.win32.bcc +75 -0
  40. data/glfw-src/examples/Makefile.win32.cross-mgw +79 -0
  41. data/glfw-src/examples/Makefile.win32.cygwin +79 -0
  42. data/glfw-src/examples/Makefile.win32.lcc +74 -0
  43. data/glfw-src/examples/Makefile.win32.mgw +75 -0
  44. data/glfw-src/examples/Makefile.win32.msvc +74 -0
  45. data/glfw-src/examples/Makefile.win32.ow +74 -0
  46. data/glfw-src/examples/Makefile.win32.pellesc +74 -0
  47. data/glfw-src/examples/Makefile.x11.in +54 -0
  48. data/glfw-src/examples/boing.c +606 -0
  49. data/glfw-src/examples/bundle.sh +46 -0
  50. data/glfw-src/examples/gears.c +382 -0
  51. data/glfw-src/examples/keytest.c +264 -0
  52. data/glfw-src/examples/listmodes.c +48 -0
  53. data/glfw-src/examples/mipmaps.c +126 -0
  54. data/glfw-src/examples/mipmaps.tga +0 -0
  55. data/glfw-src/examples/mtbench.c +301 -0
  56. data/glfw-src/examples/mthello.c +48 -0
  57. data/glfw-src/examples/particles.c +1148 -0
  58. data/glfw-src/examples/pong3d.c +839 -0
  59. data/glfw-src/examples/pong3d_field.tga +0 -0
  60. data/glfw-src/examples/pong3d_instr.tga +0 -0
  61. data/glfw-src/examples/pong3d_menu.tga +0 -0
  62. data/glfw-src/examples/pong3d_title.tga +0 -0
  63. data/glfw-src/examples/pong3d_winner1.tga +0 -0
  64. data/glfw-src/examples/pong3d_winner2.tga +0 -0
  65. data/glfw-src/examples/splitview.c +506 -0
  66. data/glfw-src/examples/triangle.c +108 -0
  67. data/glfw-src/examples/wave.c +397 -0
  68. data/glfw-src/images/opengl.gif +0 -0
  69. data/glfw-src/images/osicert.gif +0 -0
  70. data/glfw-src/include/GL/glfw.h +486 -0
  71. data/glfw-src/lib/amigaos/Makefile.amigaos.gcc +128 -0
  72. data/glfw-src/lib/amigaos/Makefile.amigaos.vbcc +128 -0
  73. data/glfw-src/lib/amigaos/SDI_compiler.h +94 -0
  74. data/glfw-src/lib/amigaos/amigaos_enable.c +51 -0
  75. data/glfw-src/lib/amigaos/amigaos_fullscreen.c +319 -0
  76. data/glfw-src/lib/amigaos/amigaos_glext.c +61 -0
  77. data/glfw-src/lib/amigaos/amigaos_init.c +284 -0
  78. data/glfw-src/lib/amigaos/amigaos_joystick.c +359 -0
  79. data/glfw-src/lib/amigaos/amigaos_thread.c +494 -0
  80. data/glfw-src/lib/amigaos/amigaos_time.c +206 -0
  81. data/glfw-src/lib/amigaos/amigaos_window.c +830 -0
  82. data/glfw-src/lib/amigaos/platform.h +337 -0
  83. data/glfw-src/lib/dos/Makefile.dos.djgpp +146 -0
  84. data/glfw-src/lib/dos/dos_enable.c +51 -0
  85. data/glfw-src/lib/dos/dos_events.c +173 -0
  86. data/glfw-src/lib/dos/dos_fullscreen.c +101 -0
  87. data/glfw-src/lib/dos/dos_glext.c +59 -0
  88. data/glfw-src/lib/dos/dos_init.c +105 -0
  89. data/glfw-src/lib/dos/dos_irq.s +246 -0
  90. data/glfw-src/lib/dos/dos_joystick.c +94 -0
  91. data/glfw-src/lib/dos/dos_keyboard.c +694 -0
  92. data/glfw-src/lib/dos/dos_mouse.c +337 -0
  93. data/glfw-src/lib/dos/dos_thread.c +267 -0
  94. data/glfw-src/lib/dos/dos_time.c +309 -0
  95. data/glfw-src/lib/dos/dos_window.c +563 -0
  96. data/glfw-src/lib/dos/platform.h +341 -0
  97. data/glfw-src/lib/enable.c +295 -0
  98. data/glfw-src/lib/fullscreen.c +95 -0
  99. data/glfw-src/lib/glext.c +201 -0
  100. data/glfw-src/lib/image.c +629 -0
  101. data/glfw-src/lib/init.c +108 -0
  102. data/glfw-src/lib/input.c +280 -0
  103. data/glfw-src/lib/internal.h +210 -0
  104. data/glfw-src/lib/joystick.c +101 -0
  105. data/glfw-src/lib/macosx/Makefile.macosx.gcc +172 -0
  106. data/glfw-src/lib/macosx/Makefile.macosx.gcc.universal +166 -0
  107. data/glfw-src/lib/macosx/libglfw.pc.in +11 -0
  108. data/glfw-src/lib/macosx/macosx_enable.c +42 -0
  109. data/glfw-src/lib/macosx/macosx_fullscreen.c +126 -0
  110. data/glfw-src/lib/macosx/macosx_glext.c +52 -0
  111. data/glfw-src/lib/macosx/macosx_init.c +194 -0
  112. data/glfw-src/lib/macosx/macosx_joystick.c +50 -0
  113. data/glfw-src/lib/macosx/macosx_thread.c +414 -0
  114. data/glfw-src/lib/macosx/macosx_time.c +112 -0
  115. data/glfw-src/lib/macosx/macosx_window.c +1279 -0
  116. data/glfw-src/lib/macosx/platform.h +349 -0
  117. data/glfw-src/lib/stream.c +194 -0
  118. data/glfw-src/lib/tga.c +405 -0
  119. data/glfw-src/lib/thread.c +340 -0
  120. data/glfw-src/lib/time.c +83 -0
  121. data/glfw-src/lib/win32/Makefile.win32.bcc +265 -0
  122. data/glfw-src/lib/win32/Makefile.win32.cross-mgw +274 -0
  123. data/glfw-src/lib/win32/Makefile.win32.cygwin +279 -0
  124. data/glfw-src/lib/win32/Makefile.win32.lcc +246 -0
  125. data/glfw-src/lib/win32/Makefile.win32.mgw +243 -0
  126. data/glfw-src/lib/win32/Makefile.win32.msvc +242 -0
  127. data/glfw-src/lib/win32/Makefile.win32.ow +242 -0
  128. data/glfw-src/lib/win32/Makefile.win32.pellesc +242 -0
  129. data/glfw-src/lib/win32/glfwdll.def +67 -0
  130. data/glfw-src/lib/win32/glfwdll_mgw1.def +67 -0
  131. data/glfw-src/lib/win32/glfwdll_mgw2.def +67 -0
  132. data/glfw-src/lib/win32/glfwdll_pellesc.def +65 -0
  133. data/glfw-src/lib/win32/libglfw.pc.in +11 -0
  134. data/glfw-src/lib/win32/platform.h +474 -0
  135. data/glfw-src/lib/win32/win32_dllmain.c +60 -0
  136. data/glfw-src/lib/win32/win32_enable.c +155 -0
  137. data/glfw-src/lib/win32/win32_fullscreen.c +317 -0
  138. data/glfw-src/lib/win32/win32_glext.c +85 -0
  139. data/glfw-src/lib/win32/win32_init.c +356 -0
  140. data/glfw-src/lib/win32/win32_joystick.c +234 -0
  141. data/glfw-src/lib/win32/win32_thread.c +511 -0
  142. data/glfw-src/lib/win32/win32_time.c +146 -0
  143. data/glfw-src/lib/win32/win32_window.c +1714 -0
  144. data/glfw-src/lib/window.c +727 -0
  145. data/glfw-src/lib/x11/Makefile.x11.in +243 -0
  146. data/glfw-src/lib/x11/platform.h +415 -0
  147. data/glfw-src/lib/x11/x11_enable.c +51 -0
  148. data/glfw-src/lib/x11/x11_fullscreen.c +524 -0
  149. data/glfw-src/lib/x11/x11_glext.c +69 -0
  150. data/glfw-src/lib/x11/x11_init.c +275 -0
  151. data/glfw-src/lib/x11/x11_joystick.c +371 -0
  152. data/glfw-src/lib/x11/x11_keysym2unicode.c +902 -0
  153. data/glfw-src/lib/x11/x11_thread.c +507 -0
  154. data/glfw-src/lib/x11/x11_time.c +154 -0
  155. data/glfw-src/lib/x11/x11_window.c +1746 -0
  156. data/glfw-src/license.txt +21 -0
  157. data/glfw-src/readme.html +927 -0
  158. data/glfw-src/support/d/examples/Makefile +59 -0
  159. data/glfw-src/support/d/examples/boing.d +610 -0
  160. data/glfw-src/support/d/examples/gears.d +379 -0
  161. data/glfw-src/support/d/examples/keytest.d +272 -0
  162. data/glfw-src/support/d/examples/listmodes.d +48 -0
  163. data/glfw-src/support/d/examples/mipmaps.d +126 -0
  164. data/glfw-src/support/d/examples/mtbench.d +304 -0
  165. data/glfw-src/support/d/examples/mthello.d +54 -0
  166. data/glfw-src/support/d/examples/particles.d +1150 -0
  167. data/glfw-src/support/d/examples/pong3d.d +840 -0
  168. data/glfw-src/support/d/examples/splitview.d +486 -0
  169. data/glfw-src/support/d/examples/triangle.d +108 -0
  170. data/glfw-src/support/d/examples/wave.d +400 -0
  171. data/glfw-src/support/d/imports/gl.d +4539 -0
  172. data/glfw-src/support/d/imports/glfw.d +349 -0
  173. data/glfw-src/support/d/imports/glu.d +328 -0
  174. data/glfw-src/support/d/lib/glfwdll.def +64 -0
  175. data/glfw-src/support/d/lib/glu32.def +56 -0
  176. data/glfw-src/support/d/lib/makefile +12 -0
  177. data/glfw-src/support/d/lib/opengl32.def +372 -0
  178. data/glfw-src/support/d/readme.html +83 -0
  179. data/glfw-src/support/delphi/examples/Triangle.dpr +105 -0
  180. data/glfw-src/support/delphi/lib/glfw.pas +437 -0
  181. data/glfw-src/support/delphi/readme.html +97 -0
  182. data/glfw-src/support/lua/examples/gears.lua +383 -0
  183. data/glfw-src/support/lua/examples/test1.lua +68 -0
  184. data/glfw-src/support/lua/readme.html +128 -0
  185. data/glfw-src/support/lua/src/luaglfw.c +1179 -0
  186. data/glfw-src/support/lua/src/luaglfw.h +48 -0
  187. data/glfw-src/support/lua/src/runlua.c +82 -0
  188. data/glfw-src/support/masm/examples/fpc.mac +47 -0
  189. data/glfw-src/support/masm/examples/makeit.bat +66 -0
  190. data/glfw-src/support/masm/examples/triangle.asm +232 -0
  191. data/glfw-src/support/masm/include/glfw.inc +326 -0
  192. data/glfw-src/support/masm/include/glu32.inc +55 -0
  193. data/glfw-src/support/masm/include/opengl32.inc +372 -0
  194. data/glfw-src/support/masm/lib/glfwdll.lib +0 -0
  195. data/glfw-src/support/masm/readme.html +170 -0
  196. data/glfw-src/support/msvc80/GLFW.sln +26 -0
  197. data/glfw-src/support/msvc80/GLFW.vcproj +257 -0
  198. data/glfw-src/support/msvc80/GLFWDLL.vcproj +287 -0
  199. data/glfw-src/support/visualbasic/bindings/glfw.bas +320 -0
  200. data/glfw-src/support/visualbasic/bindings/glu32.bas +284 -0
  201. data/glfw-src/support/visualbasic/bindings/opengl32.bas +999 -0
  202. data/glfw-src/support/visualbasic/examples/Triangle.bas +101 -0
  203. data/glfw-src/support/visualbasic/readme.html +164 -0
  204. data/website/index.html +84 -0
  205. data/website/style.css +110 -0
  206. metadata +301 -0
@@ -0,0 +1,337 @@
1
+ //========================================================================
2
+ // GLFW - An OpenGL framework
3
+ // File: platform.h
4
+ // Platforms: AmigaOS, MorphOS
5
+ // API version: 2.6
6
+ // WWW: http://glfw.sourceforge.net
7
+ //------------------------------------------------------------------------
8
+ // Copyright (c) 2002-2006 Camilla Berglund
9
+ //
10
+ // This software is provided 'as-is', without any express or implied
11
+ // warranty. In no event will the authors be held liable for any damages
12
+ // arising from the use of this software.
13
+ //
14
+ // Permission is granted to anyone to use this software for any purpose,
15
+ // including commercial applications, and to alter it and redistribute it
16
+ // freely, subject to the following restrictions:
17
+ //
18
+ // 1. The origin of this software must not be misrepresented; you must not
19
+ // claim that you wrote the original software. If you use this software
20
+ // in a product, an acknowledgment in the product documentation would
21
+ // be appreciated but is not required.
22
+ //
23
+ // 2. Altered source versions must be plainly marked as such, and must not
24
+ // be misrepresented as being the original software.
25
+ //
26
+ // 3. This notice may not be removed or altered from any source
27
+ // distribution.
28
+ //
29
+ //========================================================================
30
+
31
+ #ifndef _platform_h_
32
+ #define _platform_h_
33
+
34
+ // First of all: a file that hides compiler specific stuff
35
+ #include "SDI_compiler.h"
36
+
37
+
38
+ // This is the AmigaOS version of GLFW
39
+ #define _GLFW_AMIGAOS
40
+
41
+ // Are we compiling for MorphOS?
42
+ #if defined(__MORPHOS__) || defined(MORPHOS)
43
+ #define _GLFW_MORPHOS
44
+ #endif
45
+
46
+ // Mesa/OpenGL flavour (we only support StormMesa at the moment)
47
+ #if !defined(_GLFW_STORMMESA)
48
+ #define _GLFW_STORMMESA
49
+ #endif
50
+
51
+
52
+
53
+ // Include files
54
+ #include <exec/exec.h>
55
+ #include <dos/dos.h>
56
+ #include <dos/dostags.h>
57
+ #include <dos/dosextens.h>
58
+ #include <intuition/intuition.h>
59
+ #include <graphics/displayinfo.h>
60
+ #include <graphics/rastport.h>
61
+ #include <devices/timer.h>
62
+ #include <devices/keymap.h>
63
+ #include <devices/input.h>
64
+ #include <devices/inputevent.h>
65
+ #include <devices/gameport.h>
66
+
67
+ #include <proto/exec.h>
68
+ #include <proto/dos.h>
69
+ #include <proto/intuition.h>
70
+ #include <proto/graphics.h>
71
+ #include <proto/timer.h>
72
+ #include <proto/keymap.h>
73
+ #include <proto/utility.h>
74
+
75
+ #include <clib/alib_protos.h>
76
+
77
+
78
+ // Amiga Mesa/OpenGL implementation dependent include
79
+ #ifdef _GLFW_STORMMESA
80
+ #include <GL/Amigamesa.h>
81
+ #endif
82
+
83
+ // MorphOS support
84
+ #ifdef _GLFW_MORPHOS
85
+ #include <emul/emulinterface.h>
86
+ #endif
87
+
88
+ // GLFW+GL+GLU defines
89
+ #ifdef __GNUC__
90
+ #include "../../include/GL/glfw.h"
91
+ #else
92
+ #include "//include/GL/glfw.h"
93
+ #endif
94
+
95
+
96
+ // Stack size for each thread (in bytes)
97
+ #define _GLFW_TASK_STACK_SIZE 50000
98
+
99
+
100
+ //========================================================================
101
+ // Global variables (GLFW internals)
102
+ //========================================================================
103
+
104
+ //------------------------------------------------------------------------
105
+ // Shared libraries
106
+ //------------------------------------------------------------------------
107
+
108
+ #if defined( _init_c_ )
109
+ struct GfxBase * GfxBase;
110
+ struct IntuitionBase * IntuitionBase;
111
+ struct Library * KeymapBase;
112
+ struct UtilityBase * UtilityBase;
113
+ struct Device * TimerBase;
114
+ #endif
115
+
116
+
117
+ //------------------------------------------------------------------------
118
+ // Window structure
119
+ //------------------------------------------------------------------------
120
+ typedef struct _GLFWwin_struct _GLFWwin;
121
+
122
+ struct _GLFWwin_struct {
123
+
124
+ // ========= PLATFORM INDEPENDENT MANDATORY PART =========================
125
+
126
+ // User callback functions
127
+ GLFWwindowsizefun WindowSizeCallback;
128
+ GLFWwindowclosefun WindowCloseCallback;
129
+ GLFWwindowrefreshfun WindowRefreshCallback;
130
+ GLFWmousebuttonfun MouseButtonCallback;
131
+ GLFWmouseposfun MousePosCallback;
132
+ GLFWmousewheelfun MouseWheelCallback;
133
+ GLFWkeyfun KeyCallback;
134
+ GLFWcharfun CharCallback;
135
+
136
+ // User selected window settings
137
+ int Fullscreen; // Fullscreen flag
138
+ int MouseLock; // Mouse-lock flag
139
+ int AutoPollEvents; // Auto polling flag
140
+ int SysKeysDisabled; // System keys disabled flag
141
+ int WindowNoResize; // Resize- and maximize gadgets disabled flag
142
+
143
+ // Window status & parameters
144
+ int Opened; // Flag telling if window is opened or not
145
+ int Active; // Application active flag
146
+ int Iconified; // Window iconified flag
147
+ int Width, Height; // Window width and heigth
148
+ int Accelerated; // GL_TRUE if window is HW accelerated
149
+ int RedBits;
150
+ int GreenBits;
151
+ int BlueBits;
152
+ int AlphaBits;
153
+ int DepthBits;
154
+ int StencilBits;
155
+ int AccumRedBits;
156
+ int AccumGreenBits;
157
+ int AccumBlueBits;
158
+ int AccumAlphaBits;
159
+ int AuxBuffers;
160
+ int Stereo;
161
+ int RefreshRate; // Vertical monitor refresh rate
162
+
163
+ // Extensions & OpenGL version
164
+ int Has_GL_SGIS_generate_mipmap;
165
+ int Has_GL_ARB_texture_non_power_of_two;
166
+ int GLVerMajor,GLVerMinor;
167
+
168
+
169
+ // ========= PLATFORM SPECIFIC PART ======================================
170
+
171
+ // Platform specific window resources
172
+ struct Screen *Screen; // Screen handle
173
+ struct Window *Window; // Window handle
174
+ ULONG ModeID; // ModeID
175
+ APTR PointerSprite; // Memory for blank pointer sprite
176
+ int PointerHidden; // Is pointer hidden?
177
+ struct MsgPort *InputMP; // Message port (pointer movement)
178
+ struct IOStdReq *InputIO; // I/O request (pointer movement)
179
+
180
+ // Mesa/OpenGL flavour specific
181
+ #ifdef _GLFW_STORMMESA
182
+ struct amigamesa_context *Context; // GL context handle
183
+ #endif
184
+
185
+ // Platform specific extensions
186
+
187
+ // Various platform specific internal variables
188
+
189
+ };
190
+
191
+ GLFWGLOBAL _GLFWwin _glfwWin;
192
+
193
+
194
+ //------------------------------------------------------------------------
195
+ // User input status (most of this should go in _GLFWwin)
196
+ //------------------------------------------------------------------------
197
+ GLFWGLOBAL struct {
198
+
199
+ // ========= PLATFORM INDEPENDENT MANDATORY PART =========================
200
+
201
+ // Mouse status
202
+ int MousePosX, MousePosY;
203
+ int WheelPos;
204
+ char MouseButton[ GLFW_MOUSE_BUTTON_LAST+1 ];
205
+
206
+ // Keyboard status
207
+ char Key[ GLFW_KEY_LAST+1 ];
208
+ int LastChar;
209
+
210
+ // User selected settings
211
+ int StickyKeys;
212
+ int StickyMouseButtons;
213
+ int KeyRepeat;
214
+
215
+
216
+ // ========= PLATFORM SPECIFIC PART ======================================
217
+
218
+ // Platform specific internal variables
219
+ int MouseMoved, OldMouseX, OldMouseY;
220
+
221
+ } _glfwInput;
222
+
223
+
224
+ //------------------------------------------------------------------------
225
+ // Timer status
226
+ //------------------------------------------------------------------------
227
+ GLFWGLOBAL struct {
228
+ struct MsgPort *TimerMP;
229
+ struct timerequest *TimerIO;
230
+ double Resolution;
231
+ long long t0;
232
+ } _glfwTimer;
233
+
234
+
235
+ //------------------------------------------------------------------------
236
+ // Thread record (one for each thread)
237
+ //------------------------------------------------------------------------
238
+ typedef struct _GLFWthread_struct _GLFWthread;
239
+
240
+ struct _GLFWthread_struct {
241
+
242
+ // ========= PLATFORM INDEPENDENT MANDATORY PART =========================
243
+
244
+ // Pointer to previous and next threads in linked list
245
+ _GLFWthread *Previous, *Next;
246
+
247
+ // GLFW user side thread information
248
+ GLFWthread ID;
249
+
250
+ // ========= PLATFORM SPECIFIC PART ======================================
251
+
252
+ // System side thread information
253
+ GLFWthreadfun Function;
254
+ void *Arg;
255
+ struct Process *AmiProc;
256
+ struct Task *AmiTask;
257
+
258
+ // "Wait for" object. Can be a thread, condition variable or NULL.
259
+ void *WaitFor;
260
+ int WaitSig;
261
+
262
+ // MorphOS support
263
+ #ifdef _GLFW_MORPHOS
264
+ struct EmulLibEntry mosEmulLibEntry;
265
+ #endif
266
+ };
267
+
268
+
269
+ //------------------------------------------------------------------------
270
+ // General thread information
271
+ //------------------------------------------------------------------------
272
+ GLFWGLOBAL struct {
273
+
274
+ // ========= PLATFORM INDEPENDENT MANDATORY PART =========================
275
+
276
+ // Next thread ID to use (increments for every created thread)
277
+ GLFWthread NextID;
278
+
279
+ // First thread in linked list (always the main thread)
280
+ _GLFWthread First;
281
+
282
+ // ========= PLATFORM SPECIFIC PART ======================================
283
+
284
+ // Critical section lock
285
+ struct SignalSemaphore CriticalSection;
286
+
287
+ // Next condition variable ID (decrements for every created cond)
288
+ unsigned int NextCondID;
289
+
290
+ } _glfwThrd;
291
+
292
+
293
+ //------------------------------------------------------------------------
294
+ // Joystick information & state
295
+ //------------------------------------------------------------------------
296
+ GLFWGLOBAL struct {
297
+ int Present;
298
+ int GameDeviceOpen;
299
+ struct IOStdReq *GameIO;
300
+ struct MsgPort *GameMP;
301
+ struct InputEvent GameEvent;
302
+ float Axis[ 2 ];
303
+ unsigned char Button[ 2 ];
304
+ } _glfwJoy;
305
+
306
+
307
+ //========================================================================
308
+ // Macros for encapsulating critical code sections (i.e. making parts
309
+ // of GLFW thread safe)
310
+ //========================================================================
311
+
312
+ // Thread list management
313
+ #define ENTER_THREAD_CRITICAL_SECTION ObtainSemaphore( &_glfwThrd.CriticalSection );
314
+ #define LEAVE_THREAD_CRITICAL_SECTION ReleaseSemaphore( &_glfwThrd.CriticalSection );
315
+
316
+
317
+ //========================================================================
318
+ // Prototypes for platform specific internal functions
319
+ //========================================================================
320
+
321
+ // Time
322
+ int _glfwInitTimer( void );
323
+ void _glfwTerminateTimer( void );
324
+
325
+ // Fullscreen
326
+ int _glfwOpenScreen( int *width, int *height, int *r, int *g, int *b,
327
+ int refresh );
328
+ int _glfwGetClosestVideoMode( int *w, int *h, int *r, int *g, int *b,
329
+ int refresh );
330
+ void _glfwGetModeIDInfo( ULONG ModeID, int *w, int *h, int *r, int *g,
331
+ int *b, int *refresh );
332
+ // Joystick
333
+ void _glfwInitJoysticks( void );
334
+ void _glfwTerminateJoysticks( void );
335
+
336
+
337
+ #endif // _platform_h_
@@ -0,0 +1,146 @@
1
+ ##########################################################################
2
+ # Makefile for GLFW on DOS using DJGPP.
3
+ #-------------------------------------------------------------------------
4
+ # To compile GLFW using this makefile, run:
5
+ # make -f Makefile.dos.djgpp
6
+ # NOTE: You need long filename support (e.g. compile under Windows9x or
7
+ # use a LFN driver such as DOSLFN)
8
+ ##########################################################################
9
+
10
+ ##########################################################################
11
+ # Default: Build static library version of GLFW
12
+ ##########################################################################
13
+ default: libglfw.a
14
+
15
+
16
+ ##########################################################################
17
+ # GLFW version
18
+ ##########################################################################
19
+ VERMAJOR = 2
20
+ VERMINOR = 4
21
+
22
+
23
+ ##########################################################################
24
+ # Compiler settings
25
+ ##########################################################################
26
+ CC = gcc
27
+ CFLAGS = -c -I. -I.. -Wall -Os
28
+
29
+ # Some modules should be optimized for speed (e.g. image decoding)
30
+ CFLAGS_SPEED = -c -I. -I.. -Wall -O3 -ffast-math
31
+
32
+
33
+ ##########################################################################
34
+ # Library builder settings
35
+ ##########################################################################
36
+ MKLIB = ar
37
+ LIBFLAGS = -rcs
38
+
39
+
40
+ ##########################################################################
41
+ # Object files which are part of the GLFW library
42
+ ##########################################################################
43
+ OBJS = \
44
+ enable.o \
45
+ fullscreen.o \
46
+ glext.o \
47
+ image.o \
48
+ init.o \
49
+ input.o \
50
+ joystick.o \
51
+ tga.o \
52
+ thread.o \
53
+ time.o \
54
+ window.o \
55
+ dos_enable.o \
56
+ dos_events.o \
57
+ dos_fullscreen.o \
58
+ dos_glext.o \
59
+ dos_init.o \
60
+ dos_irq.o \
61
+ dos_joystick.o \
62
+ dos_keyboard.o \
63
+ dos_mouse.o \
64
+ dos_thread.o \
65
+ dos_time.o \
66
+ dos_window.o
67
+
68
+
69
+ ##########################################################################
70
+ # Rule for building library
71
+ ##########################################################################
72
+ libglfw.a: $(OBJS)
73
+ $(MKLIB) $(LIBFLAGS) $@ $(OBJS)
74
+
75
+
76
+ ##########################################################################
77
+ # Rules for building library object files
78
+ ##########################################################################
79
+ enable.o: ..\\enable.c ..\\internal.h platform.h
80
+ $(CC) $(CFLAGS) -o $@ ..\\enable.c
81
+
82
+ fullscreen.o: ..\\fullscreen.c ..\\internal.h platform.h
83
+ $(CC) $(CFLAGS) -o $@ ..\\fullscreen.c
84
+
85
+ glext.o: ..\\glext.c ..\\internal.h platform.h
86
+ $(CC) $(CFLAGS) -o $@ ..\\glext.c
87
+
88
+ image.o: ..\\image.c ..\\internal.h platform.h
89
+ $(CC) $(CFLAGS_SPEED) -o $@ ..\\image.c
90
+
91
+ init.o: ..\\init.c ..\\internal.h platform.h
92
+ $(CC) $(CFLAGS) -o $@ ..\\init.c
93
+
94
+ input.o: ..\\input.c ..\\internal.h platform.h
95
+ $(CC) $(CFLAGS) -o $@ ..\\input.c
96
+
97
+ joystick.o: ..\\joystick.c ..\\internal.h platform.h
98
+ $(CC) $(CFLAGS) -o $@ ..\\joystick.c
99
+
100
+ tga.o: ..\\tga.c ..\\internal.h platform.h
101
+ $(CC) $(CFLAGS_SPEED) -o $@ ..\\tga.c
102
+
103
+ thread.o: ..\\thread.c ..\\internal.h platform.h
104
+ $(CC) $(CFLAGS) -o $@ ..\\thread.c
105
+
106
+ time.o: ..\\time.c ..\\internal.h platform.h
107
+ $(CC) $(CFLAGS) -o $@ ..\\time.c
108
+
109
+ window.o: ..\\window.c ..\\internal.h platform.h
110
+ $(CC) $(CFLAGS) -o $@ ..\\window.c
111
+
112
+ dos_enable.o: dos_enable.c ..\\internal.h platform.h
113
+ $(CC) $(CFLAGS) -o $@ dos_enable.c
114
+
115
+ dos_events.o: dos_events.c ..\\internal.h platform.h
116
+ $(CC) $(CFLAGS) -o $@ dos_events.c
117
+
118
+ dos_fullscreen.o: dos_fullscreen.c ..\\internal.h platform.h
119
+ $(CC) $(CFLAGS) -o $@ dos_fullscreen.c
120
+
121
+ dos_glext.o: dos_glext.c ..\\internal.h platform.h
122
+ $(CC) $(CFLAGS) -o $@ dos_glext.c
123
+
124
+ dos_init.o: dos_init.c ..\\internal.h platform.h
125
+ $(CC) $(CFLAGS) -o $@ dos_init.c
126
+
127
+ dos_irq.o: dos_irq.s ..\\internal.h platform.h
128
+ $(CC) $(CFLAGS) -x assembler-with-cpp -o $@ dos_irq.s
129
+
130
+ dos_joystick.o: dos_joystick.c ..\\internal.h platform.h
131
+ $(CC) $(CFLAGS) -o $@ dos_joystick.c
132
+
133
+ dos_keyboard.o: dos_keyboard.c ..\\internal.h platform.h
134
+ $(CC) $(CFLAGS) -o $@ dos_keyboard.c
135
+
136
+ dos_mouse.o: dos_mouse.c ..\\internal.h platform.h
137
+ $(CC) $(CFLAGS) -o $@ dos_mouse.c
138
+
139
+ dos_thread.o: dos_thread.c ..\\internal.h platform.h
140
+ $(CC) $(CFLAGS) -o $@ dos_thread.c
141
+
142
+ dos_time.o: dos_time.c ..\\internal.h platform.h
143
+ $(CC) $(CFLAGS) -o $@ dos_time.c
144
+
145
+ dos_window.o: dos_window.c ..\\internal.h platform.h
146
+ $(CC) $(CFLAGS) -o $@ dos_window.c