ruby-opengl 0.60.1 → 0.61.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (127) hide show
  1. metadata +36 -186
  2. data/Rakefile +0 -168
  3. data/doc/build_install.txt +0 -122
  4. data/doc/extensions.txt +0 -556
  5. data/doc/extensions.txt.in +0 -348
  6. data/doc/history.txt +0 -66
  7. data/doc/requirements_and_design.txt +0 -117
  8. data/doc/roadmap.txt +0 -28
  9. data/doc/scientific_use.txt +0 -35
  10. data/doc/supplies/page_template.html +0 -71
  11. data/doc/thanks.txt +0 -29
  12. data/doc/tutorial.txt +0 -469
  13. data/examples/NeHe/nehe_lesson02.rb +0 -117
  14. data/examples/NeHe/nehe_lesson03.rb +0 -122
  15. data/examples/NeHe/nehe_lesson04.rb +0 -133
  16. data/examples/NeHe/nehe_lesson05.rb +0 -186
  17. data/examples/NeHe/nehe_lesson36.rb +0 -303
  18. data/examples/OrangeBook/3Dlabs-License.txt +0 -33
  19. data/examples/OrangeBook/brick.frag +0 -36
  20. data/examples/OrangeBook/brick.rb +0 -376
  21. data/examples/OrangeBook/brick.vert +0 -41
  22. data/examples/OrangeBook/particle.frag +0 -17
  23. data/examples/OrangeBook/particle.rb +0 -406
  24. data/examples/OrangeBook/particle.vert +0 -38
  25. data/examples/README +0 -16
  26. data/examples/RedBook/aapoly.rb +0 -142
  27. data/examples/RedBook/aargb.rb +0 -119
  28. data/examples/RedBook/accanti.rb +0 -162
  29. data/examples/RedBook/accpersp.rb +0 -215
  30. data/examples/RedBook/alpha.rb +0 -123
  31. data/examples/RedBook/alpha3D.rb +0 -158
  32. data/examples/RedBook/bezcurve.rb +0 -105
  33. data/examples/RedBook/bezmesh.rb +0 -137
  34. data/examples/RedBook/checker.rb +0 -124
  35. data/examples/RedBook/clip.rb +0 -95
  36. data/examples/RedBook/colormat.rb +0 -135
  37. data/examples/RedBook/cube.rb +0 -69
  38. data/examples/RedBook/depthcue.rb +0 -99
  39. data/examples/RedBook/dof.rb +0 -205
  40. data/examples/RedBook/double.rb +0 -105
  41. data/examples/RedBook/drawf.rb +0 -91
  42. data/examples/RedBook/feedback.rb +0 -145
  43. data/examples/RedBook/fog.rb +0 -167
  44. data/examples/RedBook/font.rb +0 -151
  45. data/examples/RedBook/hello.rb +0 -79
  46. data/examples/RedBook/image.rb +0 -137
  47. data/examples/RedBook/jitter.rb +0 -207
  48. data/examples/RedBook/lines.rb +0 -128
  49. data/examples/RedBook/list.rb +0 -111
  50. data/examples/RedBook/material.rb +0 -275
  51. data/examples/RedBook/mipmap.rb +0 -156
  52. data/examples/RedBook/model.rb +0 -113
  53. data/examples/RedBook/movelight.rb +0 -132
  54. data/examples/RedBook/pickdepth.rb +0 -179
  55. data/examples/RedBook/planet.rb +0 -108
  56. data/examples/RedBook/quadric.rb +0 -158
  57. data/examples/RedBook/robot.rb +0 -115
  58. data/examples/RedBook/select.rb +0 -196
  59. data/examples/RedBook/smooth.rb +0 -95
  60. data/examples/RedBook/stencil.rb +0 -163
  61. data/examples/RedBook/stroke.rb +0 -167
  62. data/examples/RedBook/surface.rb +0 -166
  63. data/examples/RedBook/teaambient.rb +0 -132
  64. data/examples/RedBook/teapots.rb +0 -182
  65. data/examples/RedBook/tess.rb +0 -183
  66. data/examples/RedBook/texbind.rb +0 -147
  67. data/examples/RedBook/texgen.rb +0 -169
  68. data/examples/RedBook/texturesurf.rb +0 -128
  69. data/examples/RedBook/varray.rb +0 -159
  70. data/examples/RedBook/wrap.rb +0 -148
  71. data/examples/misc/OGLBench.rb +0 -337
  72. data/examples/misc/anisotropic.rb +0 -194
  73. data/examples/misc/fbo_test.rb +0 -356
  74. data/examples/misc/font-glut.rb +0 -46
  75. data/examples/misc/glfwtest.rb +0 -30
  76. data/examples/misc/plane.rb +0 -161
  77. data/examples/misc/readpixel.rb +0 -65
  78. data/examples/misc/sdltest.rb +0 -34
  79. data/examples/misc/trislam.rb +0 -828
  80. data/ext/common/common.h +0 -423
  81. data/ext/common/conv.h +0 -244
  82. data/ext/common/funcdef.h +0 -280
  83. data/ext/common/gl-enums.h +0 -10031
  84. data/ext/common/gl-error.h +0 -23
  85. data/ext/common/gl-types.h +0 -61
  86. data/ext/common/glu-enums.h +0 -463
  87. data/ext/gl/gl-1.0-1.1.c +0 -2817
  88. data/ext/gl/gl-1.2.c +0 -814
  89. data/ext/gl/gl-1.3.c +0 -444
  90. data/ext/gl/gl-1.4.c +0 -349
  91. data/ext/gl/gl-1.5.c +0 -225
  92. data/ext/gl/gl-2.0.c +0 -657
  93. data/ext/gl/gl-2.1.c +0 -57
  94. data/ext/gl/gl-enums.c +0 -3354
  95. data/ext/gl/gl-error.c +0 -104
  96. data/ext/gl/gl-ext-3dfx.c +0 -27
  97. data/ext/gl/gl-ext-arb.c +0 -866
  98. data/ext/gl/gl-ext-ati.c +0 -41
  99. data/ext/gl/gl-ext-ext.c +0 -890
  100. data/ext/gl/gl-ext-gremedy.c +0 -41
  101. data/ext/gl/gl-ext-nv.c +0 -679
  102. data/ext/gl/gl.c +0 -214
  103. data/ext/gl/mkrf_conf.rb +0 -34
  104. data/ext/glu/glu-enums.c +0 -164
  105. data/ext/glu/glu.c +0 -1530
  106. data/ext/glu/mkrf_conf.rb +0 -35
  107. data/ext/glut/glut.c +0 -1623
  108. data/ext/glut/mkrf_conf.rb +0 -37
  109. data/lib/opengl.rb +0 -84
  110. data/test/README +0 -10
  111. data/test/tc_common.rb +0 -98
  112. data/test/tc_ext_arb.rb +0 -467
  113. data/test/tc_ext_ati.rb +0 -33
  114. data/test/tc_ext_ext.rb +0 -551
  115. data/test/tc_ext_gremedy.rb +0 -36
  116. data/test/tc_ext_nv.rb +0 -357
  117. data/test/tc_func_10_11.rb +0 -1281
  118. data/test/tc_func_12.rb +0 -186
  119. data/test/tc_func_13.rb +0 -229
  120. data/test/tc_func_14.rb +0 -197
  121. data/test/tc_func_15.rb +0 -270
  122. data/test/tc_func_20.rb +0 -346
  123. data/test/tc_func_21.rb +0 -541
  124. data/test/tc_glu.rb +0 -310
  125. data/test/tc_include_gl.rb +0 -35
  126. data/test/tc_misc.rb +0 -54
  127. data/test/tc_require_gl.rb +0 -34
@@ -1,38 +0,0 @@
1
- //
2
- // Vertex shader for rendering a "confetti cannon"
3
- // via a partcle system
4
- //
5
- // Author: Randi Rost
6
- //
7
- // Copyright (c) 2003-2004: 3Dlabs, Inc.
8
- //
9
- // See 3Dlabs-License.txt for license information
10
- //
11
-
12
- uniform float Time; // updated each frame by the application
13
- uniform vec4 Background; // constant color equal to background
14
-
15
- attribute vec3 Velocity; // initial velocity
16
- attribute float StartTime; // time at which particle is activated
17
-
18
- varying vec4 Color;
19
-
20
- void main(void)
21
- {
22
- vec4 vert;
23
- float t = Time - StartTime;
24
-
25
- if (t >= 0.0)
26
- {
27
- vert = gl_Vertex + vec4 (Velocity * t, 0.0);
28
- vert.y -= 4.9 * t * t;
29
- Color = gl_Color;
30
- }
31
- else
32
- {
33
- vert = gl_Vertex; // Initial position
34
- Color = Background; // "pre-birth" color
35
- }
36
-
37
- gl_Position = gl_ModelViewProjectionMatrix * vert;
38
- }
@@ -1,16 +0,0 @@
1
- Examples
2
- ========
3
-
4
- This directory contains OpenGL examples converted to ruby from various sources.
5
- As such, they are distributed under various terms - see each file for licensing info.
6
-
7
- RedBook/
8
- Examples from OpenGL Red Book and SGI's example code in general, licensed under
9
- SGI open-source license.
10
- OrangeBook/
11
- Examples from OpenGL Orange Book (GLSL), distributed under BSD license
12
- NeHe/
13
- NeHe's opengl tutorials (http://nehe.gamedev.net), licensed under free license.
14
- Misc/
15
- Other examples. If license is not given, MIT is assumed.
16
-
@@ -1,142 +0,0 @@
1
- #
2
- # Copyright (c) 1993-1997, Silicon Graphics, Inc.
3
- # ALL RIGHTS RESERVED
4
- # Permission to use, copy, modify, and distribute this software for
5
- # any purpose and without fee is hereby granted, provided that the above
6
- # copyright notice appear in all copies and that both the copyright notice
7
- # and this permission notice appear in supporting documentation, and that
8
- # the name of Silicon Graphics, Inc. not be used in advertising
9
- # or publicity pertaining to distribution of the software without specific,
10
- # written prior permission.
11
- #
12
- # THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS"
13
- # AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE,
14
- # INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR
15
- # FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
16
- # GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
17
- # SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
18
- # KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
19
- # LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
20
- # THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
21
- # ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
22
- # ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
23
- # POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
24
- #
25
- # US Government Users Restricted Rights
26
- # Use, duplication, or disclosure by the Government is subject to
27
- # restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
28
- # (c)(1)(ii) of the Rights in Technical Data and Computer Software
29
- # clause at DFARS 252.227-7013 and/or in similar or successor
30
- # clauses in the FAR or the DOD or NASA FAR Supplement.
31
- # Unpublished-- rights reserved under the copyright laws of the
32
- # United States. Contractor/manufacturer is Silicon Graphics,
33
- # Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
34
- #
35
- # OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
36
- #
37
- # aapoly.c
38
- # This program draws filled polygons with antialiased
39
- # edges. The special GL_SRC_ALPHA_SATURATE blending
40
- # function is used.
41
- # Pressing the 't' key turns the antialiasing on and off.
42
- require 'opengl'
43
- include Gl,Glu,Glut
44
-
45
- $polySmooth = true
46
-
47
- def init
48
- glCullFace(GL_BACK)
49
- glEnable(GL_CULL_FACE)
50
- glBlendFunc(GL_SRC_ALPHA_SATURATE, GL_ONE)
51
- glClearColor(0.0, 0.0, 0.0, 0.0)
52
- end
53
-
54
- NFACE=6
55
- NVERT=8
56
- $indices = [
57
- [4, 5, 6, 7], [2, 3, 7, 6], [0, 4, 7, 3],
58
- [0, 1, 5, 4], [1, 5, 6, 2], [0, 3, 2, 1]
59
- ]
60
-
61
- def drawCube(x0, x1, y0, y1, z0, z1)
62
- v = [[],[],[],[],[],[],[],[]]
63
- c = [
64
- [0.0, 0.0, 0.0, 1.0], [1.0, 0.0, 0.0, 1.0],
65
- [0.0, 1.0, 0.0, 1.0], [1.0, 1.0, 0.0, 1.0],
66
- [0.0, 0.0, 1.0, 1.0], [1.0, 0.0, 1.0, 1.0],
67
- [0.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0]
68
- ]
69
-
70
- # indices of front, top, left, bottom, right, back faces
71
-
72
- v[0][0] = v[3][0] = v[4][0] = v[7][0] = x0
73
- v[1][0] = v[2][0] = v[5][0] = v[6][0] = x1
74
- v[0][1] = v[1][1] = v[4][1] = v[5][1] = y0
75
- v[2][1] = v[3][1] = v[6][1] = v[7][1] = y1
76
- v[0][2] = v[1][2] = v[2][2] = v[3][2] = z0
77
- v[4][2] = v[5][2] = v[6][2] = v[7][2] = z1
78
-
79
- glEnableClientState(GL_VERTEX_ARRAY)
80
- glEnableClientState(GL_COLOR_ARRAY)
81
- glVertexPointer(3, GL_FLOAT, 0, v.flatten!.pack("f*"))
82
- glColorPointer(4, GL_FLOAT, 0, c.flatten!.pack("f*"))
83
- glDrawElements(GL_QUADS, NFACE*4, GL_UNSIGNED_BYTE, $indices.flatten.pack("C*"))
84
- glDisableClientState(GL_VERTEX_ARRAY)
85
- glDisableClientState(GL_COLOR_ARRAY)
86
- end
87
-
88
- # Note: polygons must be drawn from front to back
89
- # for proper blending.
90
- display = proc do
91
- if ($polySmooth)
92
- glClear(GL_COLOR_BUFFER_BIT)
93
- glEnable(GL_BLEND)
94
- glEnable(GL_POLYGON_SMOOTH)
95
- glDisable(GL_DEPTH_TEST)
96
- else
97
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
98
- glDisable(GL_BLEND)
99
- glDisable(GL_POLYGON_SMOOTH)
100
- glEnable(GL_DEPTH_TEST)
101
- end
102
-
103
- glPushMatrix()
104
- glTranslate(0.0, 0.0, -8.0)
105
- glRotate(30.0, 1.0, 0.0, 0.0)
106
- glRotate(60.0, 0.0, 1.0, 0.0)
107
- drawCube(-0.5, 0.5, -0.5, 0.5, -0.5, 0.5)
108
- glPopMatrix()
109
- glutSwapBuffers()
110
- end
111
-
112
- reshape = proc do |w, h|
113
- glViewport(0, 0, w, h)
114
- glMatrixMode(GL_PROJECTION)
115
- glLoadIdentity()
116
- gluPerspective(30.0, w.to_f/ h.to_f, 1.0, 20.0)
117
- glMatrixMode(GL_MODELVIEW)
118
- glLoadIdentity()
119
- end
120
-
121
- keyboard = proc do |key, x, y|
122
- case (key)
123
- when ?t ,?T
124
- $polySmooth = !$polySmooth
125
- glutPostRedisplay()
126
- when ?\e
127
- exit(0) # Escape key
128
- end
129
- end
130
-
131
- # Main Loop
132
- glutInit
133
- glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_ALPHA | GLUT_DEPTH)
134
- glutInitWindowSize(500, 500)
135
- glutInitWindowPosition(100, 100)
136
- glutCreateWindow($0)
137
- init()
138
- glutReshapeFunc(reshape)
139
- glutKeyboardFunc(keyboard)
140
- glutDisplayFunc(display)
141
- glutMainLoop()
142
-
@@ -1,119 +0,0 @@
1
- #
2
- # Copyright (c) 1993-1997, Silicon Graphics, Inc.
3
- # ALL RIGHTS RESERVED
4
- # Permission to use, copy, modify, and distribute this software for
5
- # any purpose and without fee is hereby granted, provided that the above
6
- # copyright notice appear in all copies and that both the copyright notice
7
- # and this permission notice appear in supporting documentation, and that
8
- # the name of Silicon Graphics, Inc. not be used in advertising
9
- # or publicity pertaining to distribution of the software without specific,
10
- # written prior permission.
11
- #
12
- # THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS"
13
- # AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE,
14
- # INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR
15
- # FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
16
- # GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
17
- # SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
18
- # KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
19
- # LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
20
- # THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
21
- # ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
22
- # ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
23
- # POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
24
- #
25
- # US Government Users Restricted Rights
26
- # Use, duplication, or disclosure by the Government is subject to
27
- # restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
28
- # (c)(1)(ii) of the Rights in Technical Data and Computer Software
29
- # clause at DFARS 252.227-7013 and/or in similar or successor
30
- # clauses in the FAR or the DOD or NASA FAR Supplement.
31
- # Unpublished-- rights reserved under the copyright laws of the
32
- # United States. Contractor/manufacturer is Silicon Graphics,
33
- # Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
34
- #
35
- # OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
36
- #
37
- # aargb.c
38
- # This program draws shows how to draw anti-aliased lines. It draws
39
- # two diagonal lines to form an X when 'r' is typed in the window,
40
- # the lines are rotated in opposite directions.
41
- require 'opengl'
42
- require 'mathn'
43
- include Gl,Glu,Glut
44
-
45
- $rotAngle = 0.0
46
-
47
- # Initialize antialiasing for RGBA mode, including alpha
48
- # blending, hint, and line width. Print out implementation
49
- # specific info on line width granularity and width.
50
- def init
51
- glEnable(GL_LINE_SMOOTH)
52
- glEnable(GL_BLEND)
53
- glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)
54
- glHint(GL_LINE_SMOOTH_HINT, GL_DONT_CARE)
55
- glLineWidth(1.5)
56
- glClearColor(0.0, 0.0, 0.0, 0.0)
57
- end
58
-
59
- # Draw 2 diagonal lines to form an X
60
- display = Proc.new do
61
- glClear(GL_COLOR_BUFFER_BIT)
62
-
63
- glColor(0.0, 1.0, 0.0)
64
- glPushMatrix()
65
- glRotate(-$rotAngle, 0.0, 0.0, 0.1)
66
- glBegin(GL_LINES)
67
- glVertex(-0.5, 0.5)
68
- glVertex(0.5, -0.5)
69
- glEnd()
70
- glPopMatrix()
71
-
72
- glColor(0.0, 0.0, 1.0)
73
- glPushMatrix()
74
- glRotate($rotAngle, 0.0, 0.0, 0.1)
75
- glBegin(GL_LINES)
76
- glVertex(0.5, 0.5)
77
- glVertex(-0.5, -0.5)
78
- glEnd()
79
- glPopMatrix()
80
- glutSwapBuffers()
81
- end
82
-
83
- reshape = Proc.new do |w, h|
84
- glViewport(0, 0, w, h)
85
- glMatrixMode(GL_PROJECTION)
86
- glLoadIdentity()
87
- if (w <= h)
88
- gluOrtho2D(-1.0, 1.0, -1.0*h/w, 1.0*h/w)
89
- else
90
- gluOrtho2D(-1.0*w/h, 1.0*w/h, -1.0, 1.0)
91
- end
92
- glMatrixMode(GL_MODELVIEW)
93
- glLoadIdentity()
94
- end
95
-
96
- keyboard = Proc.new do |key, x, y|
97
- case (key)
98
- when ?r,?R
99
- $rotAngle = $rotAngle + 20.0
100
- $rotAngle = 0.0 if ($rotAngle >= 360.0)
101
- glutPostRedisplay()
102
- when ?\e # Escape Key
103
- exit(0)
104
- end
105
- end
106
-
107
- # Main Loop
108
- # Open window with initial window size, title bar,
109
- # RGBA display mode, and handle input events.
110
- glutInit
111
- glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB)
112
- glutInitWindowSize(500, 500)
113
- glutInitWindowPosition(100, 100)
114
- glutCreateWindow($0)
115
- init()
116
- glutReshapeFunc(reshape)
117
- glutKeyboardFunc(keyboard)
118
- glutDisplayFunc(display)
119
- glutMainLoop()
@@ -1,162 +0,0 @@
1
- #
2
- # Copyright (c) Mark J. Kilgard, 1994.
3
- #
4
- # (c) Copyright 1993, Silicon Graphics, Inc.
5
- # ALL RIGHTS RESERVED
6
- # Permission to use, copy, modify, and distribute this software for
7
- # any purpose and without fee is hereby granted, provided that the above
8
- # copyright notice appear in all copies and that both the copyright notice
9
- # and this permission notice appear in supporting documentation, and that
10
- # the name of Silicon Graphics, Inc. not be used in advertising
11
- # or publicity pertaining to distribution of the software without specific,
12
- # written prior permission.
13
- #
14
- # THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS"
15
- # AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE,
16
- # INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR
17
- # FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
18
- # GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
19
- # SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
20
- # KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
21
- # LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
22
- # THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
23
- # ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
24
- # ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
25
- # POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
26
- #
27
- # US Government Users Restricted Rights
28
- # Use, duplication, or disclosure by the Government is subject to
29
- # restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
30
- # (c)(1)(ii) of the Rights in Technical Data and Computer Software
31
- # clause at DFARS 252.227-7013 and/or in similar or successor
32
- # clauses in the FAR or the DOD or NASA FAR Supplement.
33
- # Unpublished-- rights reserved under the copyright laws of the
34
- # United States. Contractor/manufacturer is Silicon Graphics,
35
- # Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
36
- #
37
- # OpenGL(TM) is a trademark of Silicon Graphics, Inc.
38
- #
39
- # accanti.c
40
-
41
- require 'opengl'
42
- require 'jitter'
43
- include Gl,Glu,Glut
44
-
45
- # Initialize lighting and other values.
46
- def myinit
47
- mat_ambient = [ 1.0, 1.0, 1.0, 1.0 ]
48
- mat_specular = [ 1.0, 1.0, 1.0, 1.0 ]
49
- light_position = [ 0.0, 0.0, 10.0, 1.0 ]
50
- lm_ambient = [ 0.2, 0.2, 0.2, 1.0 ]
51
-
52
- glMaterial(GL_FRONT, GL_AMBIENT, mat_ambient)
53
- glMaterial(GL_FRONT, GL_SPECULAR, mat_specular)
54
- glMaterial(GL_FRONT, GL_SHININESS, 50.0)
55
- glLight(GL_LIGHT0, GL_POSITION, light_position)
56
- glLightModel(GL_LIGHT_MODEL_AMBIENT, lm_ambient)
57
-
58
- glEnable(GL_LIGHTING)
59
- glEnable(GL_LIGHT0)
60
- glDepthFunc(GL_LESS)
61
- glEnable(GL_DEPTH_TEST)
62
- glShadeModel(GL_FLAT)
63
-
64
- glClearColor(0.0, 0.0, 0.0, 0.0)
65
- glClearAccum(0.0, 0.0, 0.0, 0.0)
66
- end
67
-
68
- def displayObjects
69
- torus_diffuse = [ 0.7, 0.7, 0.0, 1.0 ]
70
- cube_diffuse = [ 0.0, 0.7, 0.7, 1.0 ]
71
- sphere_diffuse = [ 0.7, 0.0, 0.7, 1.0 ]
72
- octa_diffuse = [ 0.7, 0.4, 0.4, 1.0 ]
73
-
74
- glPushMatrix()
75
- glRotate(30.0, 1.0, 0.0, 0.0)
76
-
77
- glPushMatrix()
78
- glTranslate(-0.80, 0.35, 0.0)
79
- glRotate(100.0, 1.0, 0.0, 0.0)
80
- glMaterial(GL_FRONT, GL_DIFFUSE, torus_diffuse)
81
- glutSolidTorus(0.275, 0.85, 16, 16)
82
- glPopMatrix()
83
-
84
- glPushMatrix()
85
- glTranslate(-0.75, -0.50, 0.0)
86
- glRotate(45.0, 0.0, 0.0, 1.0)
87
- glRotate(45.0, 1.0, 0.0, 0.0)
88
- glMaterial(GL_FRONT, GL_DIFFUSE, cube_diffuse)
89
- glutSolidCube(1.5)
90
- glPopMatrix()
91
-
92
- glPushMatrix()
93
- glTranslate(0.75, 0.60, 0.0)
94
- glRotate(30.0, 1.0, 0.0, 0.0)
95
- glMaterial(GL_FRONT, GL_DIFFUSE, sphere_diffuse)
96
- glutSolidSphere(1.0, 16, 16)
97
- glPopMatrix()
98
-
99
- glPushMatrix()
100
- glTranslate(0.70, -0.90, 0.25)
101
- glMaterial(GL_FRONT, GL_DIFFUSE, octa_diffuse)
102
- glutSolidOctahedron()
103
- glPopMatrix()
104
-
105
- glPopMatrix()
106
- end
107
-
108
- ACSIZE=8
109
-
110
- myDisplay = proc do
111
- viewport = glGetDoublev(GL_VIEWPORT)
112
-
113
- glClear(GL_ACCUM_BUFFER_BIT)
114
- for jitter in 0...ACSIZE
115
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
116
- glPushMatrix()
117
- # Note that 4.5 is the distance in world space between
118
- # left and right and bottom and top.
119
- # This formula converts fractional pixel movement to
120
- # world coordinates.
121
- glTranslate($j8[jitter][0]*4.5/viewport[2], $j8[jitter][1]*4.5/viewport[3], 0.0)
122
- displayObjects()
123
- glPopMatrix()
124
- glAccum(GL_ACCUM, 1.0/ACSIZE)
125
- end
126
- glAccum(GL_RETURN, 1.0)
127
- glutSwapBuffers()
128
- end
129
-
130
- myReshape = proc do |w, h|
131
- glViewport(0, 0, w, h)
132
- glMatrixMode(GL_PROJECTION)
133
- glLoadIdentity()
134
- if (w <= h)
135
- glOrtho(-2.25, 2.25, -2.25*h/w, 2.25*h/w, -10.0, 10.0)
136
- else
137
- glOrtho(-2.25*w/h, 2.25*w/h, -2.25, 2.25, -10.0, 10.0)
138
- end
139
- glMatrixMode(GL_MODELVIEW)
140
- end
141
-
142
- keyboard = Proc.new do |key, x, y|
143
- case (key)
144
- when ?\e
145
- exit(0);
146
- end
147
- end
148
-
149
- # Main Loop
150
- # Open window with initial window size, title bar,
151
- # RGBA display mode, and handle input events.
152
- #
153
- glutInit()
154
- glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_ACCUM | GLUT_DEPTH)
155
- glutInitWindowSize(500, 500)
156
- glutInitWindowPosition(100, 100)
157
- glutCreateWindow($0)
158
- myinit()
159
- glutReshapeFunc(myReshape)
160
- glutDisplayFunc(myDisplay)
161
- glutKeyboardFunc(keyboard)
162
- glutMainLoop()