ruby-glfw 0.9

Sign up to get free protection for your applications and to get access to all the features.
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,128 @@
1
+ ##########################################################################
2
+ # Makefile for GLFW on AmigaOS using GCC.
3
+ #-------------------------------------------------------------------------
4
+ # To compile GLFW using this makefile, run:
5
+ # make -f Makefile.amigaos.gcc
6
+ ##########################################################################
7
+
8
+ ##########################################################################
9
+ # Default: Build static library version of GLFW
10
+ ##########################################################################
11
+ default: libglfw.a
12
+
13
+
14
+ ##########################################################################
15
+ # GLFW version
16
+ ##########################################################################
17
+ VERMAJOR = 2
18
+ VERMINOR = 4
19
+
20
+
21
+ ##########################################################################
22
+ # Compiler settings
23
+ ##########################################################################
24
+ CC = gcc
25
+ CFLAGS = -c -I. -I.. -Wall -Os -m68020 -m68881
26
+
27
+ # Some modules should be optimized for speed (e.g. image decoding)
28
+ CFLAGS_SPEED = -c -I. -I.. -Wall -O3 -ffast-math -m68020 -m68881
29
+
30
+
31
+ ##########################################################################
32
+ # Library builder settings
33
+ ##########################################################################
34
+ MKLIB = ar
35
+ LIBFLAGS = -rcs
36
+
37
+
38
+ ##########################################################################
39
+ # Object files which are part of the GLFW library
40
+ ##########################################################################
41
+ OBJS = \
42
+ enable.o \
43
+ fullscreen.o \
44
+ glext.o \
45
+ image.o \
46
+ init.o \
47
+ input.o \
48
+ joystick.o \
49
+ tga.o \
50
+ thread.o \
51
+ time.o \
52
+ window.o \
53
+ amigaos_enable.o \
54
+ amigaos_fullscreen.o \
55
+ amigaos_glext.o \
56
+ amigaos_init.o \
57
+ amigaos_joystick.o \
58
+ amigaos_thread.o \
59
+ amigaos_time.o \
60
+ amigaos_window.o
61
+
62
+
63
+ ##########################################################################
64
+ # Rule for building library
65
+ ##########################################################################
66
+ libglfw.a: $(OBJS)
67
+ $(MKLIB) $(LIBFLAGS) $@ $(OBJS)
68
+
69
+
70
+ ##########################################################################
71
+ # Rules for building library object files
72
+ ##########################################################################
73
+ enable.o: ../enable.c ../internal.h platform.h
74
+ $(CC) $(CFLAGS) -o $@ ../enable.c
75
+
76
+ fullscreen.o: ../fullscreen.c ../internal.h platform.h
77
+ $(CC) $(CFLAGS) -o $@ ../fullscreen.c
78
+
79
+ glext.o: ../glext.c ../internal.h platform.h
80
+ $(CC) $(CFLAGS) -o $@ ../glext.c
81
+
82
+ image.o: ../image.c ../internal.h platform.h
83
+ $(CC) $(CFLAGS_SPEED) -o $@ ../image.c
84
+
85
+ init.o: ../init.c ../internal.h platform.h
86
+ $(CC) $(CFLAGS) -o $@ ../init.c
87
+
88
+ input.o: ../input.c ../internal.h platform.h
89
+ $(CC) $(CFLAGS) -o $@ ../input.c
90
+
91
+ joystick.o: ../joystick.c ../internal.h platform.h
92
+ $(CC) $(CFLAGS) -o $@ ../joystick.c
93
+
94
+ tga.o: ../tga.c ../internal.h platform.h
95
+ $(CC) $(CFLAGS_SPEED) -o $@ ../tga.c
96
+
97
+ thread.o: ../thread.c ../internal.h platform.h
98
+ $(CC) $(CFLAGS) -o $@ ../thread.c
99
+
100
+ time.o: ../time.c ../internal.h platform.h
101
+ $(CC) $(CFLAGS) -o $@ ../time.c
102
+
103
+ window.o: ../window.c ../internal.h platform.h
104
+ $(CC) $(CFLAGS) -o $@ ../window.c
105
+
106
+ amigaos_enable.o: amigaos_enable.c ../internal.h platform.h
107
+ $(CC) $(CFLAGS) -o $@ amigaos_enable.c
108
+
109
+ amigaos_fullscreen.o: amigaos_fullscreen.c ../internal.h platform.h
110
+ $(CC) $(CFLAGS) -o $@ amigaos_fullscreen.c
111
+
112
+ amigaos_glext.o: amigaos_glext.c ../internal.h platform.h
113
+ $(CC) $(CFLAGS) -o $@ amigaos_glext.c
114
+
115
+ amigaos_init.o: amigaos_init.c ../internal.h platform.h
116
+ $(CC) $(CFLAGS) -o $@ amigaos_init.c
117
+
118
+ amigaos_joystick.o: amigaos_joystick.c ../internal.h platform.h
119
+ $(CC) $(CFLAGS) -o $@ amigaos_joystick.c
120
+
121
+ amigaos_thread.o: amigaos_thread.c ../internal.h platform.h
122
+ $(CC) $(CFLAGS) -o $@ amigaos_thread.c
123
+
124
+ amigaos_time.o: amigaos_time.c ../internal.h platform.h
125
+ $(CC) $(CFLAGS) -o $@ amigaos_time.c
126
+
127
+ amigaos_window.o: amigaos_window.c ../internal.h platform.h
128
+ $(CC) $(CFLAGS) -o $@ amigaos_window.c
@@ -0,0 +1,128 @@
1
+ ##########################################################################
2
+ # Makefile for GLFW on AmigaOS using VBCC.
3
+ #-------------------------------------------------------------------------
4
+ # To compile GLFW using this makefile, run:
5
+ # make -f Makefile.amigaos.vbcc
6
+ ##########################################################################
7
+
8
+ ##########################################################################
9
+ # Default: Build static library version of GLFW
10
+ ##########################################################################
11
+ default: glfw.lib
12
+
13
+
14
+ ##########################################################################
15
+ # GLFW version
16
+ ##########################################################################
17
+ VERMAJOR = 2
18
+ VERMINOR = 4
19
+
20
+
21
+ ##########################################################################
22
+ # Compiler settings
23
+ ##########################################################################
24
+ CC = vc
25
+ CFLAGS = -c -I. -I/ -c99 -cpu=68020 -fpu=68881 -O1
26
+
27
+ # Some modules should be optimized for speed (e.g. image decoding)
28
+ CFLAGS_SPEED = -c -I. -I/ -c99 -cpu=68020 -fpu=68881 -O1
29
+
30
+
31
+ ##########################################################################
32
+ # Library builder settings
33
+ ##########################################################################
34
+ MKLIB = join
35
+ LIBFLAGS = as
36
+
37
+
38
+ ##########################################################################
39
+ # Object files which are part of the GLFW library
40
+ ##########################################################################
41
+ OBJS = \
42
+ enable.o \
43
+ fullscreen.o \
44
+ glext.o \
45
+ image.o \
46
+ init.o \
47
+ input.o \
48
+ joystick.o \
49
+ tga.o \
50
+ thread.o \
51
+ time.o \
52
+ window.o \
53
+ amigaos_enable.o \
54
+ amigaos_fullscreen.o \
55
+ amigaos_glext.o \
56
+ amigaos_init.o \
57
+ amigaos_joystick.o \
58
+ amigaos_thread.o \
59
+ amigaos_time.o \
60
+ amigaos_window.o
61
+
62
+
63
+ ##########################################################################
64
+ # Rule for building library
65
+ ##########################################################################
66
+ glfw.lib: $(OBJS)
67
+ $(MKLIB) $(OBJS) $(LIBFLAGS) $@
68
+
69
+
70
+ ##########################################################################
71
+ # Rules for building library object files
72
+ ##########################################################################
73
+ enable.o: /enable.c /internal.h platform.h
74
+ $(CC) $(CFLAGS) -o $@ /enable.c
75
+
76
+ fullscreen.o: /fullscreen.c /internal.h platform.h
77
+ $(CC) $(CFLAGS) -o $@ /fullscreen.c
78
+
79
+ glext.o: /glext.c /internal.h platform.h
80
+ $(CC) $(CFLAGS) -o $@ /glext.c
81
+
82
+ image.o: /image.c /internal.h platform.h
83
+ $(CC) $(CFLAGS_SPEED) -o $@ /image.c
84
+
85
+ init.o: /init.c /internal.h platform.h
86
+ $(CC) $(CFLAGS) -o $@ /init.c
87
+
88
+ input.o: /input.c /internal.h platform.h
89
+ $(CC) $(CFLAGS) -o $@ /input.c
90
+
91
+ joystick.o: /joystick.c /internal.h platform.h
92
+ $(CC) $(CFLAGS) -o $@ /joystick.c
93
+
94
+ tga.o: /tga.c /internal.h platform.h
95
+ $(CC) $(CFLAGS_SPEED) -o $@ /tga.c
96
+
97
+ thread.o: /thread.c /internal.h platform.h
98
+ $(CC) $(CFLAGS) -o $@ /thread.c
99
+
100
+ time.o: /time.c /internal.h platform.h
101
+ $(CC) $(CFLAGS) -o $@ /time.c
102
+
103
+ window.o: /window.c /internal.h platform.h
104
+ $(CC) $(CFLAGS) -o $@ /window.c
105
+
106
+ amigaos_enable.o: amigaos_enable.c /internal.h platform.h
107
+ $(CC) $(CFLAGS) -o $@ amigaos_enable.c
108
+
109
+ amigaos_fullscreen.o: amigaos_fullscreen.c /internal.h platform.h
110
+ $(CC) $(CFLAGS) -o $@ amigaos_fullscreen.c
111
+
112
+ amigaos_glext.o: amigaos_glext.c /internal.h platform.h
113
+ $(CC) $(CFLAGS) -o $@ amigaos_glext.c
114
+
115
+ amigaos_init.o: amigaos_init.c /internal.h platform.h
116
+ $(CC) $(CFLAGS) -o $@ amigaos_init.c
117
+
118
+ amigaos_joystick.o: amigaos_joystick.c /internal.h platform.h
119
+ $(CC) $(CFLAGS) -o $@ amigaos_joystick.c
120
+
121
+ amigaos_thread.o: amigaos_thread.c /internal.h platform.h
122
+ $(CC) $(CFLAGS) -o $@ amigaos_thread.c
123
+
124
+ amigaos_time.o: amigaos_time.c /internal.h platform.h
125
+ $(CC) $(CFLAGS) -o $@ amigaos_time.c
126
+
127
+ amigaos_window.o: amigaos_window.c /internal.h platform.h
128
+ $(CC) $(CFLAGS) -o $@ amigaos_window.c
@@ -0,0 +1,94 @@
1
+ #ifndef SDI_COMPILER_H
2
+ #define SDI_COMPILER_H
3
+
4
+ /* Includeheader
5
+
6
+ Name: SDI_compiler.h
7
+ Versionstring: $VER: SDI_compiler.h 1.5 (29.07.2000)
8
+ Author: SDI
9
+ Distribution: PD
10
+ Description: defines to hide compiler stuff
11
+
12
+ 1.1 25.06.98 : created from data made by Gunter Nikl
13
+ 1.2 17.11.99 : added VBCC
14
+ 1.3 29.02.00 : fixed VBCC REG define
15
+ 1.4 30.03.00 : fixed SAVEDS for VBCC
16
+ 1.5 29.07.00 : added #undef statements (needed e.g. for AmiTCP together with vbcc)
17
+ */
18
+
19
+ #ifdef ASM
20
+ #undef ASM
21
+ #endif
22
+ #ifdef REG
23
+ #undef REG
24
+ #endif
25
+ #ifdef LREG
26
+ #undef LREG
27
+ #endif
28
+ #ifdef CONST
29
+ #undef CONST
30
+ #endif
31
+ #ifdef SAVEDS
32
+ #undef SAVEDS
33
+ #endif
34
+ #ifdef INLINE
35
+ #undef INLINE
36
+ #endif
37
+ #ifdef REGARGS
38
+ #undef REGARGS
39
+ #endif
40
+ #ifdef STDARGS
41
+ #undef STDARGS
42
+ #endif
43
+
44
+ /* first "exceptions" */
45
+
46
+ #if defined(__MAXON__)
47
+ #define STDARGS
48
+ #define REGARGS
49
+ #define SAVEDS
50
+ #define INLINE inline
51
+ #elif defined(__VBCC__)
52
+ #define STDARGS
53
+ #define REGARGS
54
+ #define INLINE
55
+ #define REG(reg,arg) __reg(#reg) arg
56
+ #elif defined(__STORM__)
57
+ #define STDARGS
58
+ #define REGARGS
59
+ #define INLINE inline
60
+ #elif defined(__SASC)
61
+ #define ASM(arg) arg __asm
62
+ #elif defined(__GNUC__)
63
+ #define REG(reg,arg) arg __asm(#reg)
64
+ #define LREG(reg,arg) register REG(reg,arg)
65
+ #endif
66
+
67
+ /* then "common" ones */
68
+
69
+ #if !defined(ASM)
70
+ #define ASM(arg) arg
71
+ #endif
72
+ #if !defined(REG)
73
+ #define REG(reg,arg) register __##reg arg
74
+ #endif
75
+ #if !defined(LREG)
76
+ #define LREG(reg,arg) register arg
77
+ #endif
78
+ #if !defined(CONST)
79
+ #define CONST const
80
+ #endif
81
+ #if !defined(SAVEDS)
82
+ #define SAVEDS __saveds
83
+ #endif
84
+ #if !defined(INLINE)
85
+ #define INLINE __inline
86
+ #endif
87
+ #if !defined(REGARGS)
88
+ #define REGARGS __regargs
89
+ #endif
90
+ #if !defined(STDARGS)
91
+ #define STDARGS __stdargs
92
+ #endif
93
+
94
+ #endif /* SDI_COMPILER_H */
@@ -0,0 +1,51 @@
1
+ //========================================================================
2
+ // GLFW - An OpenGL framework
3
+ // File: amigaos_enable.c
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
+ #include "internal.h"
32
+
33
+
34
+ //************************************************************************
35
+ //**** Platform implementation functions ****
36
+ //************************************************************************
37
+
38
+ //========================================================================
39
+ // _glfwPlatformEnableSystemKeys() - Enable system keys
40
+ // _glfwPlatformDisableSystemKeys() - Disable system keys
41
+ //========================================================================
42
+
43
+ void _glfwPlatformEnableSystemKeys( void )
44
+ {
45
+ // Not supported under AmigaOS (yet)
46
+ }
47
+
48
+ void _glfwPlatformDisableSystemKeys( void )
49
+ {
50
+ // Not supported under AmigaOS (yet)
51
+ }
@@ -0,0 +1,319 @@
1
+ //========================================================================
2
+ // GLFW - An OpenGL framework
3
+ // File: amigaos_fullscreen.c
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
+ #include "internal.h"
32
+
33
+
34
+ //************************************************************************
35
+ //**** GLFW internal functions ****
36
+ //************************************************************************
37
+
38
+ //========================================================================
39
+ // _glfwBPP2RGB() - Convert BPP to RGB bits (based on "best guess")
40
+ //========================================================================
41
+
42
+ static void _glfwBPP2RGB( int bpp, int *r, int *g, int *b )
43
+ {
44
+ int delta;
45
+
46
+ // Special case: bpp = 32
47
+ if( bpp == 32 ) bpp = 24;
48
+
49
+ // Convert "bits per pixel" to red, green & blue sizes
50
+ *r = *g = *b = bpp / 3;
51
+ delta = bpp - (*r * 3);
52
+ if( delta >= 1 )
53
+ {
54
+ *g = *g + 1;
55
+ }
56
+ if( delta == 2 )
57
+ {
58
+ *r = *r + 1;
59
+ }
60
+ }
61
+
62
+
63
+ //========================================================================
64
+ // _glfwGetModeIDInfo() - Return video mode information about a ModeID
65
+ //========================================================================
66
+
67
+ void _glfwGetModeIDInfo( ULONG ModeID, int *w, int *h, int *r, int *g,
68
+ int *b, int *refresh )
69
+ {
70
+ struct DimensionInfo dimsInfo;
71
+ struct DisplayInfo dispInfo;
72
+ struct MonitorInfo monInfo;
73
+
74
+ // Get various display info
75
+ (void) GetDisplayInfoData( NULL,
76
+ (BYTE*) &dimsInfo,
77
+ sizeof(struct DimensionInfo),
78
+ DTAG_DIMS,
79
+ ModeID );
80
+ (void) GetDisplayInfoData( NULL,
81
+ (BYTE*) &dispInfo,
82
+ sizeof(struct DisplayInfo),
83
+ DTAG_DISP,
84
+ ModeID );
85
+ (void) GetDisplayInfoData( NULL,
86
+ (BYTE*) &monInfo,
87
+ sizeof(struct MonitorInfo),
88
+ DTAG_MNTR,
89
+ ModeID );
90
+
91
+ // Extract nominal width & height
92
+ if( w != NULL && h != NULL )
93
+ {
94
+ *w = (int) (dimsInfo.Nominal.MaxX - dimsInfo.Nominal.MinX) + 1;
95
+ *h = (int) (dimsInfo.Nominal.MaxY - dimsInfo.Nominal.MinY) + 1;
96
+ }
97
+
98
+ // Extract color bits
99
+ if( r != NULL && g != NULL && g != NULL )
100
+ {
101
+ *r = (int) dispInfo.RedBits;
102
+ *g = (int) dispInfo.GreenBits;
103
+ *b = (int) dispInfo.BlueBits;
104
+
105
+ // If depth < sum of RGB bits, we're probably not true color,
106
+ // which means that DisplayInfo red/green/blue bits do not refer
107
+ // to actual pixel color depth => use pixel depth info instead
108
+ if( dimsInfo.MaxDepth < (*r + *g + *b) )
109
+ {
110
+ _glfwBPP2RGB( dimsInfo.MaxDepth, r, g, b );
111
+ }
112
+ }
113
+
114
+ // Extract refresh rate
115
+ if( refresh != NULL )
116
+ {
117
+ *refresh = (int) (1.0 / ((double) monInfo.TotalRows *
118
+ (double) monInfo.TotalColorClocks *
119
+ 280.0e-9) + 0.5 );
120
+ }
121
+ }
122
+
123
+
124
+ //========================================================================
125
+ // _glfwGetClosestVideoMode()
126
+ //========================================================================
127
+
128
+ int _glfwGetClosestVideoMode( int *w, int *h, int *r, int *g, int *b,
129
+ int refresh )
130
+ {
131
+ int modeID;
132
+
133
+ // Find best mode
134
+ modeID = BestModeID(
135
+ BIDTAG_NominalWidth, *w,
136
+ BIDTAG_NominalHeight, *h,
137
+ BIDTAG_Depth, *r + *g + *b,
138
+ BIDTAG_RedBits, *r,
139
+ BIDTAG_GreenBits, *g,
140
+ BIDTAG_BlueBits, *b,
141
+ TAG_DONE, 0
142
+ );
143
+
144
+ // Did we get a proper mode?
145
+ if( !modeID )
146
+ {
147
+ return 0;
148
+ }
149
+
150
+ // Get actual display info
151
+ _glfwGetModeIDInfo( modeID, w, h, r, g, b, NULL );
152
+
153
+ return modeID;
154
+ }
155
+
156
+
157
+ //========================================================================
158
+ // _glfwOpenScreen() - Open an AmigaOS screen
159
+ //========================================================================
160
+
161
+ int _glfwOpenScreen( int *width, int *height, int *r, int *g, int *b,
162
+ int refresh )
163
+ {
164
+ int bpp, modeID;
165
+
166
+ // Calculate BPP
167
+ bpp = *r + *g + *b;
168
+
169
+ // If colorbits < 8 (e.g. 0) or >= 24, default to 24 bpp
170
+ if( bpp < 8 || bpp >= 24 )
171
+ {
172
+ *r = *g = *b = 8;
173
+ }
174
+
175
+ // Find best matching video mode
176
+ modeID = _glfwGetClosestVideoMode( width, height, r, g, b, refresh );
177
+
178
+ // Open screen
179
+ _glfwWin.Screen = OpenScreenTags(
180
+ NULL,
181
+ SA_Width, *width,
182
+ SA_Height, *height,
183
+ SA_DisplayID, modeID,
184
+ SA_Type, CUSTOMSCREEN,
185
+ SA_SysFont, 1,
186
+ SA_ShowTitle, FALSE,
187
+ TAG_DONE, 0
188
+ );
189
+
190
+ // Did we succeed?
191
+ if( !_glfwWin.Screen )
192
+ {
193
+ printf( "Failed to open Amiga screen\n" );
194
+ return GL_FALSE;
195
+ }
196
+
197
+ // Remember Mode ID
198
+ _glfwWin.ModeID = modeID;
199
+
200
+ /*
201
+ // Debugging information
202
+ printf( "Amiga Screen opened:\n" );
203
+ printf( " ModeID: 0x%08X\n", modeID );
204
+ printf( " Dimensions: %d x %d\n", *width, *height );
205
+ printf( " Color bits: %d : %d : %d\n", *r, *g, *b );
206
+ */
207
+
208
+ return GL_TRUE;
209
+ }
210
+
211
+
212
+
213
+ //************************************************************************
214
+ //**** Platform implementation functions ****
215
+ //************************************************************************
216
+
217
+ //========================================================================
218
+ // _glfwPlatformGetVideoModes() - List available video modes
219
+ //========================================================================
220
+
221
+ int _glfwPlatformGetVideoModes( GLFWvidmode *list, int maxcount )
222
+ {
223
+ ULONG modeID;
224
+ int w, h, r, g, b, bpp, m1, m2, i, j, count;
225
+
226
+ count = 0;
227
+ modeID = INVALID_ID;
228
+ do
229
+ {
230
+ // Enumarate all ModeIDs with NextDisplayInfo
231
+ modeID = NextDisplayInfo( modeID );
232
+ if( modeID != INVALID_ID )
233
+ {
234
+ // Get related video mode information
235
+ _glfwGetModeIDInfo( modeID, &w, &h, &r, &g, &b, NULL );
236
+
237
+ // Convert RGB to BPP
238
+ bpp = r + g + b;
239
+
240
+ // We only support true-color modes, which means at least 15
241
+ // bits per pixel (reasonable?) - Sorry, AGA users!
242
+ if( bpp >= 15 )
243
+ {
244
+ // Mode "code" for this mode
245
+ m1 = (bpp << 25) | (w*h);
246
+
247
+ // Insert mode in list (sorted), and avoid duplicates
248
+ for( i = 0; i < count; i ++ )
249
+ {
250
+ // Mode "code" for already listed mode
251
+ bpp = list[i].RedBits + list[i].GreenBits +
252
+ list[i].BlueBits;
253
+ m2 = (bpp << 25) | (list[i].Width * list[i].Height);
254
+ if( m1 <= m2 )
255
+ {
256
+ break;
257
+ }
258
+ }
259
+
260
+ // New entry at the end of the list?
261
+ if( i >= count )
262
+ {
263
+ list[count].Width = w;
264
+ list[count].Height = h;
265
+ list[count].RedBits = r;
266
+ list[count].GreenBits = g;
267
+ list[count].BlueBits = b;
268
+ count ++;
269
+ }
270
+ // Insert new entry in the list?
271
+ else if( m1 < m2 )
272
+ {
273
+ for( j = count; j > i; j -- )
274
+ {
275
+ list[j] = list[j-1];
276
+ }
277
+ list[i].Width = w;
278
+ list[i].Height = h;
279
+ list[i].RedBits = r;
280
+ list[i].GreenBits = g;
281
+ list[i].BlueBits = b;
282
+ count ++;
283
+ }
284
+ }
285
+ }
286
+ }
287
+ while( modeID != INVALID_ID && count < maxcount );
288
+
289
+ return count;
290
+ }
291
+
292
+
293
+ //========================================================================
294
+ // _glfwPlatformGetDesktopMode() - Get the desktop video mode
295
+ //========================================================================
296
+
297
+ void _glfwPlatformGetDesktopMode( GLFWvidmode *mode )
298
+ {
299
+ struct Screen *pubscreen;
300
+ ULONG modeID;
301
+
302
+ // Get default public screen screen handle
303
+ pubscreen = LockPubScreen( NULL );
304
+
305
+ // Get screen width and height (use actual screen size rather than
306
+ // ModeID nominal size)
307
+ mode->Width = (int) pubscreen->Width;
308
+ mode->Height = (int) pubscreen->Height;
309
+
310
+ // Get ModeID for public screen
311
+ modeID = GetVPModeID( &pubscreen->ViewPort );
312
+
313
+ // Release workbench screen
314
+ UnlockPubScreen( NULL, pubscreen );
315
+
316
+ // Get color bits information
317
+ _glfwGetModeIDInfo( modeID, NULL, NULL, &mode->RedBits,
318
+ &mode->GreenBits, &mode->BlueBits, NULL );
319
+ }