opengl 0.8.0-x86-mingw32 → 0.9.0-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- checksums.yaml.gz.sig +1 -0
- data.tar.gz.sig +2 -0
- data/.gitignore +2 -1
- data/.travis.yml +19 -0
- data/History.rdoc +26 -0
- data/Manifest.txt +3 -23
- data/README.rdoc +43 -37
- data/Rakefile +6 -62
- data/examples/NeHe/nehe_lesson02.rb +3 -2
- data/examples/NeHe/nehe_lesson03.rb +3 -2
- data/examples/NeHe/nehe_lesson04.rb +3 -1
- data/examples/NeHe/nehe_lesson05.rb +4 -1
- data/examples/NeHe/nehe_lesson06.rb +9 -6
- data/examples/NeHe/nehe_lesson07.rb +9 -6
- data/examples/NeHe/nehe_lesson08.rb +9 -6
- data/examples/NeHe/nehe_lesson09.rb +10 -6
- data/examples/NeHe/nehe_lesson11.rb +9 -6
- data/examples/NeHe/nehe_lesson12.rb +9 -6
- data/examples/NeHe/nehe_lesson16.rb +50 -47
- data/examples/NeHe/nehe_lesson19.rb +10 -7
- data/examples/NeHe/nehe_lesson36.rb +234 -229
- data/examples/OrangeBook/brick.rb +227 -225
- data/examples/OrangeBook/particle.rb +233 -231
- data/examples/RedBook/aapoly.rb +71 -70
- data/examples/RedBook/aargb.rb +54 -52
- data/examples/RedBook/accanti.rb +96 -94
- data/examples/RedBook/accpersp.rb +106 -104
- data/examples/RedBook/alpha.rb +54 -52
- data/examples/RedBook/alpha3D.rb +90 -88
- data/examples/RedBook/bezcurve.rb +48 -46
- data/examples/RedBook/bezmesh.rb +71 -69
- data/examples/RedBook/checker.rb +57 -55
- data/examples/RedBook/clip.rb +41 -39
- data/examples/RedBook/colormat.rb +72 -70
- data/examples/RedBook/cube.rb +39 -37
- data/examples/RedBook/depthcue.rb +37 -35
- data/examples/RedBook/dof.rb +110 -109
- data/examples/RedBook/double.rb +40 -38
- data/examples/RedBook/drawf.rb +30 -28
- data/examples/RedBook/feedback.rb +79 -77
- data/examples/RedBook/fog.rb +90 -89
- data/examples/RedBook/font.rb +78 -76
- data/examples/RedBook/hello.rb +29 -27
- data/examples/RedBook/image.rb +57 -55
- data/examples/RedBook/jitter.rb +131 -131
- data/examples/RedBook/light.rb +2 -1
- data/examples/RedBook/lines.rb +70 -68
- data/examples/RedBook/list.rb +48 -46
- data/examples/RedBook/material.rb +200 -199
- data/examples/RedBook/mipmap.rb +84 -82
- data/examples/RedBook/model.rb +55 -53
- data/examples/RedBook/movelight.rb +52 -50
- data/examples/RedBook/pickdepth.rb +103 -101
- data/examples/RedBook/planet.rb +46 -44
- data/examples/RedBook/quadric.rb +97 -95
- data/examples/RedBook/robot.rb +55 -53
- data/examples/RedBook/select.rb +118 -116
- data/examples/RedBook/smooth.rb +35 -33
- data/examples/RedBook/stencil.rb +96 -94
- data/examples/RedBook/stroke.rb +75 -73
- data/examples/RedBook/surface.rb +93 -91
- data/examples/RedBook/teaambient.rb +71 -69
- data/examples/RedBook/teapots.rb +105 -103
- data/examples/RedBook/tess.rb +96 -94
- data/examples/RedBook/texbind.rb +79 -77
- data/examples/RedBook/texgen.rb +88 -86
- data/examples/RedBook/texturesurf.rb +57 -55
- data/examples/RedBook/varray.rb +85 -83
- data/examples/RedBook/wrap.rb +76 -74
- data/examples/misc/OGLBench.rb +114 -113
- data/examples/misc/anisotropic.rb +154 -152
- data/examples/misc/fbo_test.rb +37 -36
- data/examples/misc/font-glut.rb +47 -46
- data/examples/misc/glfwtest.rb +16 -16
- data/examples/misc/plane.rb +13 -13
- data/examples/misc/readpixel.rb +66 -65
- data/examples/misc/sdltest.rb +21 -19
- data/examples/misc/trislam.rb +548 -547
- data/ext/opengl/common.h +16 -38
- data/ext/opengl/conv.h +39 -41
- data/ext/opengl/extconf.rb +4 -31
- data/ext/opengl/funcdef.h +126 -124
- data/ext/opengl/gl-1.0-1.1.c +1917 -1917
- data/ext/opengl/gl-1.2.c +4 -667
- data/ext/opengl/gl-1.3.c +9 -9
- data/ext/opengl/gl-1.4.c +8 -8
- data/ext/opengl/gl-1.5.c +1 -1
- data/ext/opengl/gl-2.0.c +392 -388
- data/ext/opengl/gl-3.0.c +493 -0
- data/ext/opengl/gl-enums.c +1523 -5
- data/ext/opengl/gl-enums.h +4679 -122
- data/ext/opengl/gl-error.c +7 -7
- data/ext/opengl/gl-error.h +4 -4
- data/ext/opengl/gl-ext-arb.c +468 -464
- data/ext/opengl/gl-ext-ext.c +18 -18
- data/ext/opengl/gl-ext-nv.c +15 -15
- data/ext/opengl/gl.c +2 -0
- data/ext/opengl/gl_buffer.c +92 -92
- data/ext/opengl/opengl.c +1 -7
- data/lib/opengl.rb +23 -59
- data/lib/opengl/1.9/opengl.so +0 -0
- data/lib/opengl/2.0/opengl.so +0 -0
- data/lib/opengl/2.1/opengl.so +0 -0
- data/lib/opengl/test_case.rb +1 -2
- data/test/dummy.xorg.conf +140 -0
- data/test/test_gl.rb +18 -22
- data/test/test_gl_10_11.rb +220 -220
- data/test/test_gl_12.rb +11 -122
- data/test/test_gl_13.rb +202 -210
- data/test/test_gl_14.rb +16 -19
- data/test/test_gl_15.rb +2 -4
- data/test/test_gl_20.rb +45 -58
- data/test/test_gl_21.rb +46 -163
- data/test/test_gl_ext_arb.rb +54 -72
- data/test/test_gl_ext_ati.rb +0 -2
- data/test/test_gl_ext_ext.rb +66 -66
- data/test/test_gl_ext_gremedy.rb +8 -15
- data/test/test_gl_ext_nv.rb +109 -112
- data/test/test_opengl_buffer.rb +8 -25
- data/utils/README +0 -5
- data/utils/enumgen.rb +72 -76
- data/utils/extlistgen.rb +55 -55
- metadata +90 -67
- metadata.gz.sig +0 -0
- data/Rakefile.cross +0 -107
- data/docs/build_install.txt +0 -119
- data/docs/extensions.txt.in +0 -348
- data/docs/history.txt +0 -66
- data/docs/requirements_and_design.txt +0 -117
- data/docs/roadmap.txt +0 -28
- data/docs/scientific_use.txt +0 -35
- data/docs/supplies/page_template.html +0 -71
- data/docs/thanks.txt +0 -29
- data/docs/tutorial.txt +0 -469
- data/ext/opengl/glu-enums.c +0 -164
- data/ext/opengl/glu-enums.h +0 -463
- data/ext/opengl/glu.c +0 -1534
- data/ext/opengl/glut.c +0 -1145
- data/ext/opengl/glut_callbacks.c +0 -845
- data/lib/glu.rb +0 -1
- data/lib/glut.rb +0 -1
- data/lib/opengl/opengl.so +0 -0
- data/test/test_glu.rb +0 -309
- data/utils/mkdn2html.rb +0 -59
- data/utils/post-mkdn2html.rb +0 -91
- data/website/images/ogl.jpg +0 -0
- data/website/images/tab_bottom.gif +0 -0
- data/website/style.css +0 -198
data/lib/glu.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
require 'opengl'
|
data/lib/glut.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
require 'opengl'
|
data/lib/opengl/opengl.so
DELETED
Binary file
|
data/test/test_glu.rb
DELETED
@@ -1,309 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Copyright (C) 2007 Jan Dvorak <jan.dvorak@kraxnet.cz>
|
3
|
-
#
|
4
|
-
# This program is distributed under the terms of the MIT license.
|
5
|
-
# See the included MIT-LICENSE file for the terms of this license.
|
6
|
-
#
|
7
|
-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
8
|
-
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
9
|
-
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
10
|
-
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
11
|
-
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
12
|
-
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
13
|
-
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
14
|
-
#
|
15
|
-
|
16
|
-
require 'opengl/test_case'
|
17
|
-
|
18
|
-
class TestGlu < OpenGL::TestCase
|
19
|
-
|
20
|
-
def test_gluortho
|
21
|
-
res = [ [2.0/WINDOW_SIZE, 0, 0, 0],
|
22
|
-
[0, 2.0/WINDOW_SIZE, 0, 0],
|
23
|
-
[0, 0, -1, 0],
|
24
|
-
[-1, -1, 0, 1] ]
|
25
|
-
|
26
|
-
glMatrixMode(GL_PROJECTION)
|
27
|
-
glLoadIdentity()
|
28
|
-
gluOrtho2D(0, WINDOW_SIZE, 0, WINDOW_SIZE)
|
29
|
-
assert_equal res, glGetDoublev(GL_PROJECTION_MATRIX)
|
30
|
-
end
|
31
|
-
|
32
|
-
def test_glugetstring
|
33
|
-
refute_empty gluGetString GLU_VERSION
|
34
|
-
end
|
35
|
-
|
36
|
-
def test_gluerrorstring
|
37
|
-
refute_empty gluErrorString GL_INVALID_VALUE
|
38
|
-
end
|
39
|
-
|
40
|
-
def test_glubuild2dmipmaps
|
41
|
-
textures = glGenTextures(1)
|
42
|
-
glBindTexture(GL_TEXTURE_2D, textures[0])
|
43
|
-
|
44
|
-
image = ([0, 0, 0, 1, 1, 1] * 8).pack("f*") # 16 RGB pixels
|
45
|
-
|
46
|
-
gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGB8, 4, 4, GL_RGB, GL_FLOAT, image)
|
47
|
-
im = glGetTexImage(GL_TEXTURE_2D, 0, GL_RGB, GL_FLOAT)
|
48
|
-
|
49
|
-
assert_equal image, im
|
50
|
-
assert_equal 4*4*3, im.unpack("f*").size
|
51
|
-
|
52
|
-
im = glGetTexImage(GL_TEXTURE_2D, 1, GL_RGB, GL_FLOAT)
|
53
|
-
assert_equal 2*2*3, im.unpack("f*").size
|
54
|
-
|
55
|
-
im = glGetTexImage(GL_TEXTURE_2D, 2, GL_RGB, GL_FLOAT)
|
56
|
-
assert_equal 1*1*3, im.unpack("f*").size
|
57
|
-
|
58
|
-
glDeleteTextures(textures)
|
59
|
-
end
|
60
|
-
|
61
|
-
def test_glubuild1dmipmaps
|
62
|
-
textures = glGenTextures(1)
|
63
|
-
glBindTexture(GL_TEXTURE_1D, textures[0])
|
64
|
-
|
65
|
-
image = ([0, 0, 0, 1, 1, 1] * 2).pack("f*") # 4 RGB pixels
|
66
|
-
|
67
|
-
gluBuild1DMipmaps(GL_TEXTURE_1D, GL_RGB8, 4, GL_RGB, GL_FLOAT, image)
|
68
|
-
|
69
|
-
im = glGetTexImage(GL_TEXTURE_1D, 0, GL_RGB, GL_FLOAT)
|
70
|
-
assert_equal image, im
|
71
|
-
assert_equal 4*3, im.unpack("f*").size
|
72
|
-
im = glGetTexImage(GL_TEXTURE_1D, 1, GL_RGB, GL_FLOAT)
|
73
|
-
assert_equal 2*3, im.unpack("f*").size
|
74
|
-
im = glGetTexImage(GL_TEXTURE_1D, 2, GL_RGB, GL_FLOAT)
|
75
|
-
assert_equal 1*3, im.unpack("f*").size
|
76
|
-
|
77
|
-
glDeleteTextures(textures)
|
78
|
-
end
|
79
|
-
|
80
|
-
def test_glulookat
|
81
|
-
m = [[0, 0, 1, 0], [0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, -1, 1]]
|
82
|
-
gluLookAt(1, 0, 0, 0, 0, 0, 0, 1, 0)
|
83
|
-
assert_equal m, glGetDoublev(GL_PROJECTION_MATRIX)
|
84
|
-
end
|
85
|
-
|
86
|
-
def test_gluproject
|
87
|
-
pos = gluProject(1, 1, 1)
|
88
|
-
assert_equal [WINDOW_SIZE, WINDOW_SIZE, 1], pos
|
89
|
-
|
90
|
-
mp = glGetDoublev(GL_PROJECTION_MATRIX)
|
91
|
-
mm = Matrix.rows(glGetDoublev(GL_MODELVIEW_MATRIX))
|
92
|
-
view = glGetDoublev(GL_VIEWPORT)
|
93
|
-
pos = gluProject(1, 1, 1, mp, mm, view)
|
94
|
-
assert_equal(pos, [WINDOW_SIZE, WINDOW_SIZE, 1])
|
95
|
-
|
96
|
-
assert_raises ArgumentError do pos = gluProject(1, 1, 1, mp, [1, 2, 3, 4], view) end
|
97
|
-
end
|
98
|
-
|
99
|
-
def test_gluunproject
|
100
|
-
pos = gluUnProject(WINDOW_SIZE, WINDOW_SIZE, 1)
|
101
|
-
assert_equal(pos, [1, 1, 1])
|
102
|
-
|
103
|
-
mp = glGetDoublev(GL_PROJECTION_MATRIX)
|
104
|
-
mm = Matrix.rows(glGetDoublev(GL_MODELVIEW_MATRIX))
|
105
|
-
view = glGetDoublev(GL_VIEWPORT)
|
106
|
-
pos = gluUnProject(WINDOW_SIZE, WINDOW_SIZE, 1, mp, mm, view)
|
107
|
-
assert_equal(pos, [1, 1, 1])
|
108
|
-
assert_raises ArgumentError do pos = gluUnProject(WINDOW_SIZE, WINDOW_SIZE, 1, mp, [1, 2, 3, 4], view) end
|
109
|
-
end
|
110
|
-
|
111
|
-
def test_glupickmatrix
|
112
|
-
t = WINDOW_SIZE / 5.0
|
113
|
-
m = [[t, 0.0, 0.0, 0.0], [0.0, t, 0.0, 0.0], [0.0, 0.0, 1.0, 0.0], [t, t, 0.0, 1.0]]
|
114
|
-
glMatrixMode(GL_PROJECTION)
|
115
|
-
|
116
|
-
glLoadIdentity()
|
117
|
-
gluPickMatrix(0, 0)
|
118
|
-
assert_each_in_delta m, glGetDoublev(GL_PROJECTION_MATRIX)
|
119
|
-
|
120
|
-
glLoadIdentity()
|
121
|
-
gluPickMatrix(0, 0, 5, 5)
|
122
|
-
assert_each_in_delta m, glGetDoublev(GL_PROJECTION_MATRIX)
|
123
|
-
|
124
|
-
glLoadIdentity()
|
125
|
-
gluPickMatrix(0, 0, 5, 5, glGetDoublev(GL_VIEWPORT))
|
126
|
-
assert_each_in_delta m, glGetDoublev(GL_PROJECTION_MATRIX)
|
127
|
-
end
|
128
|
-
|
129
|
-
def test_gluperspective
|
130
|
-
m = [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -3, -1], [0, 0, -4, 0]]
|
131
|
-
gluPerspective(90, 1, 1, 2)
|
132
|
-
assert_equal m, glGetDoublev(GL_PROJECTION_MATRIX)
|
133
|
-
end
|
134
|
-
|
135
|
-
def test_gluscaleimage
|
136
|
-
image = ([0, 0, 0, 1, 1, 1] * 8).pack("f*") # 16 RGB pixels
|
137
|
-
scaled = gluScaleImage(GL_RGB, 4, 4, GL_FLOAT, image, 2, 2, GL_FLOAT)
|
138
|
-
assert_equal(scaled.unpack("f*").length, 2*2*3)
|
139
|
-
end
|
140
|
-
|
141
|
-
def test_gluquadrics
|
142
|
-
ecount = 0
|
143
|
-
error_func = lambda do |error|
|
144
|
-
ecount+=1
|
145
|
-
end
|
146
|
-
|
147
|
-
q = gluNewQuadric()
|
148
|
-
gluQuadricDrawStyle(q, GL_LINE)
|
149
|
-
gluQuadricNormals(q, GL_SMOOTH)
|
150
|
-
gluQuadricOrientation(q, GLU_OUTSIDE)
|
151
|
-
gluQuadricTexture(q, GL_FALSE)
|
152
|
-
gluQuadricCallback(q, GLU_ERROR, error_func)
|
153
|
-
|
154
|
-
buf = glFeedbackBuffer(1024, GL_3D)
|
155
|
-
glRenderMode(GL_FEEDBACK)
|
156
|
-
gluSphere(q, 1.0, 4, 3)
|
157
|
-
count = glRenderMode(GL_RENDER)
|
158
|
-
refute_equal 0, count
|
159
|
-
|
160
|
-
glRenderMode(GL_FEEDBACK)
|
161
|
-
gluCylinder(q, 1.0, 1.0, 1.0, 4, 3)
|
162
|
-
count = glRenderMode(GL_RENDER)
|
163
|
-
refute_equal 0, count
|
164
|
-
|
165
|
-
glRenderMode(GL_FEEDBACK)
|
166
|
-
gluDisk(q, 1.0, 2.0, 4, 3)
|
167
|
-
count = glRenderMode(GL_RENDER)
|
168
|
-
refute_equal 0, count
|
169
|
-
|
170
|
-
glRenderMode(GL_FEEDBACK)
|
171
|
-
gluPartialDisk(q, 1.0, 2.0, 4, 3, 0, 360)
|
172
|
-
count = glRenderMode(GL_RENDER)
|
173
|
-
refute_equal 0, count
|
174
|
-
|
175
|
-
assert_equal 0, ecount
|
176
|
-
gluSphere(q, 0.0, 0, 0)
|
177
|
-
assert_equal 1, ecount
|
178
|
-
gluDeleteQuadric(q)
|
179
|
-
end
|
180
|
-
|
181
|
-
def test_glunurbs
|
182
|
-
ecount = 0
|
183
|
-
|
184
|
-
glViewport(0, 0, WINDOW_SIZE, WINDOW_SIZE)
|
185
|
-
glMatrixMode(GL_PROJECTION)
|
186
|
-
glOrtho(0, WINDOW_SIZE, 0, WINDOW_SIZE, -1, 1)
|
187
|
-
|
188
|
-
n_error = lambda do |error|
|
189
|
-
ecount += 1
|
190
|
-
end
|
191
|
-
|
192
|
-
m = [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]
|
193
|
-
m2 = Matrix.rows(m)
|
194
|
-
|
195
|
-
n = gluNewNurbsRenderer()
|
196
|
-
gluNurbsCallback(n, GLU_ERROR, n_error)
|
197
|
-
gluNurbsProperty(n, GLU_SAMPLING_TOLERANCE, 40)
|
198
|
-
assert_equal 40, gluGetNurbsProperty(n, GLU_SAMPLING_TOLERANCE)
|
199
|
-
|
200
|
-
gluLoadSamplingMatrices(n, m, m2, glGetIntegerv(GL_VIEWPORT))
|
201
|
-
assert_raises ArgumentError do gluLoadSamplingMatrices(n, m, [1, 2, 3, 4], glGetIntegerv(GL_VIEWPORT)) end
|
202
|
-
|
203
|
-
knots = [0, 0, 0, 0, 1, 1, 1, 1]
|
204
|
-
ctlpoints_curve = [[50, 50, 0], [400, 50, 0], [400, 400, 0], [50, 400, 0]]
|
205
|
-
|
206
|
-
# generate surface control points
|
207
|
-
ctlpoints = Array.new(4).collect { Array.new(4).collect { Array.new(3, nil) } } # 4*4*3 array
|
208
|
-
0.upto(3) do |u|
|
209
|
-
0.upto(3) do |v|
|
210
|
-
ctlpoints[u][v][0]=2.0*(u-1.5)
|
211
|
-
ctlpoints[u][v][1]=2.0*(v-1.5)
|
212
|
-
|
213
|
-
if ((u==1 || u==2) && (v==1 || v==2))
|
214
|
-
ctlpoints[u][v][2]=6.0
|
215
|
-
else
|
216
|
-
ctlpoints[u][v][2]=0.0
|
217
|
-
end
|
218
|
-
end
|
219
|
-
end
|
220
|
-
|
221
|
-
buf = glFeedbackBuffer(1024*1024*8, GL_3D) # large enough buffer for tesselated surface
|
222
|
-
glRenderMode(GL_FEEDBACK)
|
223
|
-
gluBeginCurve(n)
|
224
|
-
gluNurbsCurve(n, knots, ctlpoints_curve, 4, GL_MAP1_VERTEX_3)
|
225
|
-
gluEndCurve(n)
|
226
|
-
|
227
|
-
gluBeginSurface(n)
|
228
|
-
gluNurbsSurface(n, knots, knots, ctlpoints, 4, 4, GL_MAP2_VERTEX_3)
|
229
|
-
gluEndSurface(n)
|
230
|
-
|
231
|
-
count = glRenderMode(GL_RENDER)
|
232
|
-
refute_equal 1, count
|
233
|
-
|
234
|
-
assert_equal 0, ecount
|
235
|
-
gluBeginTrim(n)
|
236
|
-
gluPwlCurve(n, [[0, 0], [1, 0], [1, 1], [0, 1], [0, 0]], GLU_MAP1_TRIM_2)
|
237
|
-
gluEndTrim(n)
|
238
|
-
|
239
|
-
gluDeleteNurbsRenderer(n)
|
240
|
-
assert_equal 1, ecount
|
241
|
-
end
|
242
|
-
|
243
|
-
def test_glutess
|
244
|
-
glViewport(0, 0, WINDOW_SIZE, WINDOW_SIZE)
|
245
|
-
glMatrixMode(GL_PROJECTION)
|
246
|
-
glOrtho(0, WINDOW_SIZE, 0, WINDOW_SIZE, -1, 1)
|
247
|
-
vcount, bcount, ecount = 0, 0, 0
|
248
|
-
|
249
|
-
cb_begin = lambda do |type|
|
250
|
-
bcount += 1
|
251
|
-
end
|
252
|
-
cb_end = lambda do
|
253
|
-
ecount += 1
|
254
|
-
end
|
255
|
-
cb_vertex = lambda do |data|
|
256
|
-
vcount += 1
|
257
|
-
end
|
258
|
-
cb_error = lambda do |error|
|
259
|
-
p gluErrorString(error)
|
260
|
-
end
|
261
|
-
|
262
|
-
t = gluNewTess()
|
263
|
-
gluTessCallback(t, GLU_TESS_BEGIN, cb_begin)
|
264
|
-
gluTessCallback(t, GLU_TESS_END, cb_end)
|
265
|
-
gluTessCallback(t, GLU_TESS_ERROR, cb_error)
|
266
|
-
gluTessCallback(t, GLU_TESS_VERTEX, cb_vertex)
|
267
|
-
gluTessProperty(t, GLU_TESS_BOUNDARY_ONLY, GL_TRUE)
|
268
|
-
assert_equal GL_TRUE, gluGetTessProperty(t, GLU_TESS_BOUNDARY_ONLY)
|
269
|
-
gluTessProperty(t, GLU_TESS_BOUNDARY_ONLY, GL_FALSE)
|
270
|
-
assert_equal GL_FALSE, gluGetTessProperty(t, GLU_TESS_BOUNDARY_ONLY)
|
271
|
-
|
272
|
-
gluTessNormal(t, 0.0, 0.0, 0.0)
|
273
|
-
|
274
|
-
rect = [[50.0, 50.0, 0.0],
|
275
|
-
[200.0, 50.0, 0.0],
|
276
|
-
[200.0, 200.0, 0.0],
|
277
|
-
[50.0, 200.0, 0.0]]
|
278
|
-
tri = [[75.0, 75.0, 0.0],
|
279
|
-
[125.0, 175.0, 0.0],
|
280
|
-
[175.0, 75.0, 0.0]]
|
281
|
-
|
282
|
-
gluTessBeginPolygon(t, nil)
|
283
|
-
gluTessBeginContour(t)
|
284
|
-
gluTessVertex(t, rect[0], rect[0])
|
285
|
-
gluTessVertex(t, rect[1], rect[1])
|
286
|
-
gluTessVertex(t, rect[2], rect[2])
|
287
|
-
gluTessVertex(t, rect[3], rect[3])
|
288
|
-
gluTessEndContour(t)
|
289
|
-
gluTessBeginContour(t)
|
290
|
-
gluTessVertex(t, tri[0], tri[0])
|
291
|
-
gluTessVertex(t, tri[1], tri[1])
|
292
|
-
gluTessVertex(t, tri[2], tri[2])
|
293
|
-
gluTessEndContour(t)
|
294
|
-
gluTessEndPolygon(t)
|
295
|
-
|
296
|
-
gluTessCallback(t, GLU_TESS_BEGIN, nil)
|
297
|
-
gluTessCallback(t, GLU_TESS_END, nil)
|
298
|
-
gluTessCallback(t, GLU_TESS_ERROR, nil)
|
299
|
-
gluTessCallback(t, GLU_TESS_VERTEX, nil)
|
300
|
-
|
301
|
-
gluDeleteTess(t)
|
302
|
-
|
303
|
-
assert_equal 1, bcount
|
304
|
-
assert_equal 1, ecount
|
305
|
-
assert_equal 9, vcount
|
306
|
-
end
|
307
|
-
|
308
|
-
end
|
309
|
-
|
data/utils/mkdn2html.rb
DELETED
@@ -1,59 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
#
|
3
|
-
# Copyright (C) 2006 John M. Gabriele <jmg3000@gmail.com>
|
4
|
-
#
|
5
|
-
# This program is distributed under the terms of the MIT license.
|
6
|
-
# See the included MIT-LICENSE file for the terms of this license.
|
7
|
-
#
|
8
|
-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
9
|
-
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
10
|
-
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
11
|
-
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
12
|
-
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
13
|
-
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
14
|
-
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
15
|
-
|
16
|
-
# Don't use -w for now -- too many warning re. the BlueCloth module.
|
17
|
-
|
18
|
-
# Converts the named text file (containing plain text marked up with Markdown
|
19
|
-
# markup) into a corresponding html file. The user must specify both filenames.
|
20
|
-
# If the outfile already exists, it will be written over.
|
21
|
-
|
22
|
-
require 'rubygems'
|
23
|
-
require 'bluecloth'
|
24
|
-
|
25
|
-
if ARGV.size != 2
|
26
|
-
puts "Error: please pass exactly two args: the name of the file"
|
27
|
-
puts "you want converted to html, and the name of the file:"
|
28
|
-
puts "mkdn2html.rb infile.txt outfile.html"
|
29
|
-
exit 1
|
30
|
-
end
|
31
|
-
|
32
|
-
infile_name = ARGV[0]
|
33
|
-
outfile_name = ARGV[1]
|
34
|
-
|
35
|
-
# Strip the last filename extension so we can use the basename in the
|
36
|
-
# title of the page.
|
37
|
-
base_filename = File.basename( infile_name, ".*" )
|
38
|
-
puts "base_filename = #{base_filename}"
|
39
|
-
if base_filename == 'README'
|
40
|
-
base_filename = 'Home'
|
41
|
-
end
|
42
|
-
puts "base_filename = #{base_filename}"
|
43
|
-
|
44
|
-
raw_markdown_text = IO.read( infile_name )
|
45
|
-
bc = BlueCloth.new( raw_markdown_text )
|
46
|
-
html_content = bc.to_html
|
47
|
-
|
48
|
-
puts "outfile is #{File.expand_path( outfile_name )}"
|
49
|
-
|
50
|
-
template_content = IO.read( './doc/supplies/page_template.html' )
|
51
|
-
template_content.sub!( /\{\{content\}\}/, html_content )
|
52
|
-
template_content.sub!( /\{\{title\}\}/, base_filename )
|
53
|
-
|
54
|
-
|
55
|
-
File.open( outfile_name, 'w' ) do |file|
|
56
|
-
file.write template_content
|
57
|
-
end
|
58
|
-
|
59
|
-
puts "Done creating plain #{base_filename} html file."
|
data/utils/post-mkdn2html.rb
DELETED
@@ -1,91 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
#
|
3
|
-
# Copyright (C) 2006 John M. Gabriele <jmg3000@gmail.com>
|
4
|
-
#
|
5
|
-
# This program is distributed under the terms of the MIT license.
|
6
|
-
# See the included MIT-LICENSE file for the terms of this license.
|
7
|
-
#
|
8
|
-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
9
|
-
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
10
|
-
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
11
|
-
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
12
|
-
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
13
|
-
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
14
|
-
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
15
|
-
|
16
|
-
|
17
|
-
# This script will modify the contents of the first html file you
|
18
|
-
# pass it, and save the modifications in the 2nd file.
|
19
|
-
#
|
20
|
-
# What it does:
|
21
|
-
#
|
22
|
-
# It looks in the first file for patterns like this:
|
23
|
-
#
|
24
|
-
# <pre><code>{{name}}\nstuff</code></pre>
|
25
|
-
#
|
26
|
-
# and replaces "stuff" with "stuff" processed to include color syntax
|
27
|
-
# highlighting, assuming it is code written in language "name".
|
28
|
-
#
|
29
|
-
# Prerequisites:
|
30
|
-
# * This script expects that you have GNU source-highlight installed.
|
31
|
-
|
32
|
-
require 'cgi'
|
33
|
-
|
34
|
-
if ARGV.size != 2
|
35
|
-
puts "Please don't trifle with me."
|
36
|
-
exit 1
|
37
|
-
end
|
38
|
-
|
39
|
-
infile_name = ARGV[0]
|
40
|
-
outfile_name = ARGV[1]
|
41
|
-
|
42
|
-
# Open the file, slurp the whole thing into one long string.
|
43
|
-
infile_content = IO.read( infile_name )
|
44
|
-
outfile_content = infile_content.clone
|
45
|
-
temp_content = infile_content.clone
|
46
|
-
|
47
|
-
# Make sure we find all of them -- there could be more than 1 in
|
48
|
-
# the given file. XXX (Just finding the first one here.)
|
49
|
-
|
50
|
-
snippet_num = 0
|
51
|
-
|
52
|
-
while true
|
53
|
-
# If we get a match, process that snippet.
|
54
|
-
if outfile_content =~ %r{<pre><code>\{\{(\w+)\}\}\n(.+?)</code></pre>}m
|
55
|
-
pre_stuff = $`
|
56
|
-
language = $1
|
57
|
-
code_to_convert = $2
|
58
|
-
post_stuff = $'
|
59
|
-
|
60
|
-
# BlueCloth already escapes html tags, so this is to avoid
|
61
|
-
# double escaping by source-highlight
|
62
|
-
# - Jan
|
63
|
-
code_to_convert = CGI::unescapeHTML(code_to_convert)
|
64
|
-
|
65
|
-
# Quick usage note on source-highlight:
|
66
|
-
#
|
67
|
-
# source-highlight -s ruby -i $filename -o $filename
|
68
|
-
#
|
69
|
-
# where, if you omit -o filename, output goes to stdout.
|
70
|
-
|
71
|
-
base_name = File.basename( outfile_name, '.*' )
|
72
|
-
File.open( "doc/#{base_name}_#{snippet_num}.snip", 'w' ) do |file|
|
73
|
-
file.write code_to_convert
|
74
|
-
end
|
75
|
-
|
76
|
-
highlighted_code =
|
77
|
-
`source-highlight -s #{language} -i doc/#{base_name}_#{snippet_num}.snip -f html`
|
78
|
-
|
79
|
-
temp_content = pre_stuff + highlighted_code + post_stuff
|
80
|
-
snippet_num += 1
|
81
|
-
outfile_content = temp_content.clone
|
82
|
-
else
|
83
|
-
break
|
84
|
-
end
|
85
|
-
end
|
86
|
-
|
87
|
-
File.open( outfile_name, 'w' ) do |file|
|
88
|
-
file.write outfile_content
|
89
|
-
end
|
90
|
-
|
91
|
-
puts "Done syntax highlighting #{snippet_num} snippets for #{infile_name}. Wrote #{outfile_name}."
|