opengl 0.8.0 → 0.9.0
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 +0 -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/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 +87 -66
- metadata.gz.sig +2 -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/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/test/test_gl_14.rb
CHANGED
@@ -19,7 +19,6 @@ class TestGl14 < OpenGL::TestCase
|
|
19
19
|
|
20
20
|
def setup
|
21
21
|
super
|
22
|
-
|
23
22
|
supported? 1.4
|
24
23
|
end
|
25
24
|
|
@@ -27,13 +26,13 @@ class TestGl14 < OpenGL::TestCase
|
|
27
26
|
sc = [0, 1, 0, 1, 0, 1].pack("f*")
|
28
27
|
fc = [1, 0].pack("f*")
|
29
28
|
|
30
|
-
glSecondaryColorPointer(3, GL_FLOAT,
|
29
|
+
glSecondaryColorPointer(3, GL_FLOAT, 12, sc)
|
31
30
|
assert_equal 3, glGetIntegerv(GL_SECONDARY_COLOR_ARRAY_SIZE)
|
32
31
|
assert_equal GL_FLOAT, glGetIntegerv(GL_SECONDARY_COLOR_ARRAY_TYPE)
|
33
32
|
assert_equal 12, glGetIntegerv(GL_SECONDARY_COLOR_ARRAY_STRIDE)
|
34
33
|
assert_equal sc, glGetPointerv(GL_SECONDARY_COLOR_ARRAY_POINTER)
|
35
34
|
|
36
|
-
glFogCoordPointer(GL_FLOAT,
|
35
|
+
glFogCoordPointer(GL_FLOAT, 4, fc)
|
37
36
|
assert_equal GL_FLOAT, glGetIntegerv(GL_FOG_COORD_ARRAY_TYPE)
|
38
37
|
assert_equal 4, glGetIntegerv(GL_FOG_COORD_ARRAY_STRIDE)
|
39
38
|
assert_equal fc, glGetPointerv(GL_FOG_COORD_ARRAY_POINTER)
|
@@ -45,15 +44,15 @@ class TestGl14 < OpenGL::TestCase
|
|
45
44
|
glArrayElement(0)
|
46
45
|
glEnd()
|
47
46
|
|
48
|
-
assert_equal(
|
49
|
-
assert_equal(glGetDoublev(GL_CURRENT_FOG_COORD)
|
47
|
+
assert_equal([0, 1, 0, 1], glGetDoublev(GL_CURRENT_SECONDARY_COLOR))
|
48
|
+
assert_equal(1, glGetDoublev(GL_CURRENT_FOG_COORD))
|
50
49
|
|
51
50
|
glBegin(GL_TRIANGLES)
|
52
51
|
glArrayElement(1)
|
53
52
|
glEnd()
|
54
53
|
|
55
|
-
assert_equal(
|
56
|
-
assert_equal(glGetDoublev(GL_CURRENT_FOG_COORD)
|
54
|
+
assert_equal([1, 0, 1, 1], glGetDoublev(GL_CURRENT_SECONDARY_COLOR))
|
55
|
+
assert_equal(0, glGetDoublev(GL_CURRENT_FOG_COORD))
|
57
56
|
|
58
57
|
glDisableClientState(GL_SECONDARY_COLOR_ARRAY)
|
59
58
|
glDisableClientState(GL_FOG_COORD_ARRAY)
|
@@ -81,21 +80,21 @@ class TestGl14 < OpenGL::TestCase
|
|
81
80
|
|
82
81
|
def test_glblendfuncseparate
|
83
82
|
glBlendFuncSeparate(GL_SRC_COLOR, GL_SRC_COLOR, GL_SRC_COLOR, GL_SRC_COLOR)
|
84
|
-
assert_equal(glGetIntegerv(GL_BLEND_SRC_RGB)
|
85
|
-
assert_equal(glGetIntegerv(GL_BLEND_SRC_ALPHA)
|
86
|
-
assert_equal(glGetIntegerv(GL_BLEND_DST_RGB)
|
87
|
-
assert_equal(glGetIntegerv(GL_BLEND_DST_ALPHA)
|
83
|
+
assert_equal(GL_SRC_COLOR, glGetIntegerv(GL_BLEND_SRC_RGB))
|
84
|
+
assert_equal(GL_SRC_COLOR, glGetIntegerv(GL_BLEND_SRC_ALPHA))
|
85
|
+
assert_equal(GL_SRC_COLOR, glGetIntegerv(GL_BLEND_DST_RGB))
|
86
|
+
assert_equal(GL_SRC_COLOR, glGetIntegerv(GL_BLEND_DST_ALPHA))
|
88
87
|
end
|
89
88
|
|
90
89
|
def test_glpointparameter
|
91
90
|
glPointParameterf(GL_POINT_SIZE_MIN, 2.0)
|
92
|
-
assert_equal(glGetDoublev(GL_POINT_SIZE_MIN)
|
91
|
+
assert_equal(2.0, glGetDoublev(GL_POINT_SIZE_MIN))
|
93
92
|
|
94
93
|
glPointParameterfv(GL_POINT_DISTANCE_ATTENUATION, [0, 1, 0])
|
95
94
|
assert_equal([0, 1, 0], glGetDoublev(GL_POINT_DISTANCE_ATTENUATION))
|
96
95
|
|
97
96
|
glPointParameteri(GL_POINT_SIZE_MAX, 4)
|
98
|
-
assert_equal(glGetDoublev(GL_POINT_SIZE_MAX)
|
97
|
+
assert_equal(4, glGetDoublev(GL_POINT_SIZE_MAX))
|
99
98
|
|
100
99
|
glPointParameteriv(GL_POINT_DISTANCE_ATTENUATION, [1, 0, 1])
|
101
100
|
assert_equal([1, 0, 1], glGetDoublev(GL_POINT_DISTANCE_ATTENUATION))
|
@@ -103,14 +102,14 @@ class TestGl14 < OpenGL::TestCase
|
|
103
102
|
|
104
103
|
def test_glfogcoord
|
105
104
|
glFogCoordf(2.0)
|
106
|
-
assert_equal(glGetDoublev(GL_CURRENT_FOG_COORD)
|
105
|
+
assert_equal(2.0, glGetDoublev(GL_CURRENT_FOG_COORD))
|
107
106
|
glFogCoordfv([3.0])
|
108
|
-
assert_equal(glGetDoublev(GL_CURRENT_FOG_COORD)
|
107
|
+
assert_equal(3.0, glGetDoublev(GL_CURRENT_FOG_COORD))
|
109
108
|
|
110
109
|
glFogCoordd(2.0)
|
111
|
-
assert_equal(glGetDoublev(GL_CURRENT_FOG_COORD)
|
110
|
+
assert_equal(2.0, glGetDoublev(GL_CURRENT_FOG_COORD))
|
112
111
|
glFogCoorddv([3.0])
|
113
|
-
assert_equal(glGetDoublev(GL_CURRENT_FOG_COORD)
|
112
|
+
assert_equal(3.0, glGetDoublev(GL_CURRENT_FOG_COORD))
|
114
113
|
end
|
115
114
|
|
116
115
|
def test_glsecondarycolor
|
@@ -216,6 +215,4 @@ class TestGl14 < OpenGL::TestCase
|
|
216
215
|
glWindowPos3sv [3, 2, 1]
|
217
216
|
assert_each_in_delta [3, 2, 1, 1], glGetDoublev(GL_CURRENT_RASTER_POSITION)
|
218
217
|
end
|
219
|
-
|
220
218
|
end
|
221
|
-
|
data/test/test_gl_15.rb
CHANGED
@@ -19,7 +19,6 @@ class TestGl15 < OpenGL::TestCase
|
|
19
19
|
|
20
20
|
def setup
|
21
21
|
super
|
22
|
-
|
23
22
|
supported? 1.5
|
24
23
|
end
|
25
24
|
|
@@ -72,7 +71,7 @@ class TestGl15 < OpenGL::TestCase
|
|
72
71
|
r = glUnmapBuffer(GL_ARRAY_BUFFER)
|
73
72
|
assert(r == true || r == false)
|
74
73
|
|
75
|
-
glDeleteBuffers(buffers)
|
74
|
+
glDeleteBuffers(buffers)
|
76
75
|
refute glIsBuffer(buffers[0])
|
77
76
|
|
78
77
|
# FIXME: GetBufferPointerv not yet implemented
|
@@ -251,10 +250,9 @@ class TestGl15 < OpenGL::TestCase
|
|
251
250
|
glMultiDrawElements(GL_TRIANGLES, GL_UNSIGNED_BYTE, [3, 3], [0, 3])
|
252
251
|
|
253
252
|
count = glRenderMode(GL_RENDER)
|
254
|
-
assert_equal 2 * (3 * 3 + 2)
|
253
|
+
assert_equal count, 2 * (3 * 3 + 2)
|
255
254
|
|
256
255
|
glDisableClientState(GL_VERTEX_ARRAY)
|
257
256
|
glDeleteBuffers(buffers)
|
258
257
|
end
|
259
|
-
|
260
258
|
end
|
data/test/test_gl_20.rb
CHANGED
@@ -19,48 +19,47 @@ class TestGl20 < OpenGL::TestCase
|
|
19
19
|
|
20
20
|
def setup
|
21
21
|
super
|
22
|
-
|
23
22
|
supported? 2.0
|
24
23
|
end
|
25
24
|
|
26
25
|
def test_glblendequationseparate
|
27
26
|
glBlendEquationSeparate(GL_MIN, GL_MAX)
|
28
|
-
assert_equal(glGetIntegerv(GL_BLEND_EQUATION_RGB)
|
29
|
-
assert_equal(glGetIntegerv(GL_BLEND_EQUATION_ALPHA)
|
27
|
+
assert_equal(GL_MIN, glGetIntegerv(GL_BLEND_EQUATION_RGB))
|
28
|
+
assert_equal(GL_MAX, glGetIntegerv(GL_BLEND_EQUATION_ALPHA))
|
30
29
|
glBlendEquationSeparate(GL_MAX, GL_MIN)
|
31
|
-
assert_equal(glGetIntegerv(GL_BLEND_EQUATION_RGB)
|
32
|
-
assert_equal(glGetIntegerv(GL_BLEND_EQUATION_ALPHA)
|
30
|
+
assert_equal(GL_MAX, glGetIntegerv(GL_BLEND_EQUATION_RGB))
|
31
|
+
assert_equal(GL_MIN, glGetIntegerv(GL_BLEND_EQUATION_ALPHA))
|
33
32
|
end
|
34
33
|
|
35
34
|
def test_stencilops
|
36
35
|
glStencilOpSeparate(GL_FRONT, GL_ZERO, GL_INCR, GL_DECR)
|
37
|
-
assert_equal(glGetIntegerv(GL_STENCIL_FAIL)
|
38
|
-
assert_equal(glGetIntegerv(GL_STENCIL_PASS_DEPTH_FAIL)
|
39
|
-
assert_equal(glGetIntegerv(GL_STENCIL_PASS_DEPTH_PASS)
|
36
|
+
assert_equal(GL_ZERO, glGetIntegerv(GL_STENCIL_FAIL))
|
37
|
+
assert_equal(GL_INCR, glGetIntegerv(GL_STENCIL_PASS_DEPTH_FAIL))
|
38
|
+
assert_equal(GL_DECR, glGetIntegerv(GL_STENCIL_PASS_DEPTH_PASS))
|
40
39
|
glStencilOpSeparate(GL_FRONT, GL_INCR, GL_DECR, GL_ZERO)
|
41
|
-
assert_equal(glGetIntegerv(GL_STENCIL_FAIL)
|
42
|
-
assert_equal(glGetIntegerv(GL_STENCIL_PASS_DEPTH_FAIL)
|
43
|
-
assert_equal(glGetIntegerv(GL_STENCIL_PASS_DEPTH_PASS)
|
40
|
+
assert_equal(GL_INCR, glGetIntegerv(GL_STENCIL_FAIL))
|
41
|
+
assert_equal(GL_DECR, glGetIntegerv(GL_STENCIL_PASS_DEPTH_FAIL))
|
42
|
+
assert_equal(GL_ZERO, glGetIntegerv(GL_STENCIL_PASS_DEPTH_PASS))
|
44
43
|
|
45
44
|
glStencilFuncSeparate(GL_FRONT, GL_LEQUAL, 1, 0)
|
46
|
-
assert_equal(glGetIntegerv(GL_STENCIL_FUNC)
|
47
|
-
assert_equal(glGetIntegerv(GL_STENCIL_REF)
|
48
|
-
assert_equal(glGetIntegerv(GL_STENCIL_VALUE_MASK)
|
45
|
+
assert_equal(GL_LEQUAL, glGetIntegerv(GL_STENCIL_FUNC))
|
46
|
+
assert_equal(1, glGetIntegerv(GL_STENCIL_REF))
|
47
|
+
assert_equal(0, glGetIntegerv(GL_STENCIL_VALUE_MASK))
|
49
48
|
glStencilFuncSeparate(GL_FRONT, GL_GEQUAL, 0, 1)
|
50
|
-
assert_equal(glGetIntegerv(GL_STENCIL_FUNC)
|
51
|
-
assert_equal(glGetIntegerv(GL_STENCIL_REF)
|
52
|
-
assert_equal(glGetIntegerv(GL_STENCIL_VALUE_MASK)
|
49
|
+
assert_equal(GL_GEQUAL, glGetIntegerv(GL_STENCIL_FUNC))
|
50
|
+
assert_equal(0, glGetIntegerv(GL_STENCIL_REF))
|
51
|
+
assert_equal(1, glGetIntegerv(GL_STENCIL_VALUE_MASK))
|
53
52
|
|
54
53
|
glStencilMaskSeparate(GL_FRONT, 1)
|
55
|
-
assert_equal(glGetIntegerv( GL_STENCIL_WRITEMASK)
|
54
|
+
assert_equal(1, glGetIntegerv( GL_STENCIL_WRITEMASK))
|
56
55
|
glStencilMaskSeparate(GL_FRONT, 0)
|
57
|
-
assert_equal(glGetIntegerv(GL_STENCIL_WRITEMASK)
|
56
|
+
assert_equal(0, glGetIntegerv(GL_STENCIL_WRITEMASK))
|
58
57
|
end
|
59
58
|
|
60
59
|
def test_gldrawbuf
|
61
60
|
glDrawBuffers([GL_FRONT_LEFT, GL_BACK_LEFT])
|
62
|
-
assert_equal(glGetIntegerv(GL_DRAW_BUFFER0)
|
63
|
-
assert_equal(glGetIntegerv(GL_DRAW_BUFFER1)
|
61
|
+
assert_equal(GL_FRONT_LEFT, glGetIntegerv(GL_DRAW_BUFFER0))
|
62
|
+
assert_equal(GL_BACK_LEFT, glGetIntegerv(GL_DRAW_BUFFER1))
|
64
63
|
end
|
65
64
|
|
66
65
|
def test_glvertexattrib
|
@@ -230,15 +229,9 @@ uniform ivec3 testivec3;
|
|
230
229
|
uniform ivec4 testivec4;
|
231
230
|
|
232
231
|
void main() {
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
testvec4;
|
237
|
-
testivec1;
|
238
|
-
testivec2;
|
239
|
-
testivec3;
|
240
|
-
testivec4;
|
241
|
-
gl_Position = ftransform();
|
232
|
+
gl_Position = ftransform() *
|
233
|
+
testvec1 * testvec2[0] * testvec3[0] * testvec4[0] *
|
234
|
+
float(testivec1) * float(testivec2[0]) * float(testivec3[0]) * float(testivec4[0]);
|
242
235
|
}
|
243
236
|
SHADER
|
244
237
|
|
@@ -265,47 +258,47 @@ void main() {
|
|
265
258
|
glUseProgram program
|
266
259
|
|
267
260
|
test = glGetAttribLocation program, "test"
|
268
|
-
assert_equal
|
261
|
+
assert_equal(-1, test)
|
269
262
|
|
270
263
|
tv1l = glGetUniformLocation program, "testvec1"
|
271
|
-
refute_equal
|
264
|
+
refute_equal(-1, tv1l, "testvec1 missing!")
|
272
265
|
|
273
266
|
tv2l = glGetUniformLocation program, "testvec2"
|
274
|
-
refute_equal
|
267
|
+
refute_equal(-1, tv2l, "testvec2 missing!")
|
275
268
|
|
276
269
|
tv3l = glGetUniformLocation program, "testvec3"
|
277
|
-
refute_equal
|
270
|
+
refute_equal(-1, tv3l, "testvec3 missing!")
|
278
271
|
|
279
272
|
tv4l = glGetUniformLocation program, "testvec4"
|
280
|
-
refute_equal
|
273
|
+
refute_equal(-1, tv4l, "testvec4 missing!")
|
281
274
|
|
282
275
|
tv1il = glGetUniformLocation program, "testivec1"
|
283
|
-
refute_equal
|
276
|
+
refute_equal(-1, tv1il, "testivec1 missing!")
|
284
277
|
|
285
278
|
tv2il = glGetUniformLocation program, "testivec2"
|
286
|
-
refute_equal
|
279
|
+
refute_equal(-1, tv2il, "testivec2 missing!")
|
287
280
|
|
288
281
|
tv3il = glGetUniformLocation program, "testivec3"
|
289
|
-
refute_equal
|
282
|
+
refute_equal(-1, tv3il, "testivec3 missing!")
|
290
283
|
|
291
284
|
tv4il = glGetUniformLocation program, "testivec4"
|
292
|
-
refute_equal
|
285
|
+
refute_equal(-1, tv4il, "testivec4 missing!")
|
293
286
|
|
294
287
|
assert_equal [1, GL_FLOAT_VEC4, "gl_Vertex"], glGetActiveAttrib(program, 0)
|
295
288
|
assert_equal [1, GL_INT, "testivec1"], glGetActiveUniform(program, tv1il)
|
296
289
|
|
297
290
|
# f
|
298
291
|
glUniform1f(tv1l, 2.0)
|
299
|
-
assert_equal(glGetUniformfv(program, tv1l)
|
292
|
+
assert_equal(2.0, glGetUniformfv(program, tv1l))
|
300
293
|
glUniform2f(tv2l, 2.0, 2.0)
|
301
294
|
assert_equal([2.0, 2.0], glGetUniformfv(program, tv2l))
|
302
295
|
glUniform3f(tv3l, 2.0, 2.0, 2.0)
|
303
296
|
assert_equal([2.0, 2.0, 2.0], glGetUniformfv(program, tv3l))
|
304
297
|
glUniform4f(tv4l, 2.0, 2.0, 2.0, 2.0)
|
305
298
|
assert_equal([2.0, 2.0, 2.0, 2.0], glGetUniformfv(program, tv4l))
|
306
|
-
# i
|
299
|
+
# i
|
307
300
|
glUniform1i(tv1il, 3)
|
308
|
-
assert_equal(glGetUniformiv(program, tv1il)
|
301
|
+
assert_equal(3, glGetUniformiv(program, tv1il))
|
309
302
|
glUniform2i(tv2il, 3, 3)
|
310
303
|
assert_equal([3, 3], glGetUniformiv(program, tv2il))
|
311
304
|
glUniform3i(tv3il, 3, 3, 3)
|
@@ -314,7 +307,7 @@ void main() {
|
|
314
307
|
assert_equal([3, 3, 3, 3], glGetUniformiv(program, tv4il))
|
315
308
|
# fv
|
316
309
|
glUniform1fv(tv1l, [3.0])
|
317
|
-
assert_equal(glGetUniformfv(program, tv1l)
|
310
|
+
assert_equal(3.0, glGetUniformfv(program, tv1l))
|
318
311
|
glUniform2fv(tv2l, [3.0, 3.0])
|
319
312
|
assert_equal([3.0, 3.0], glGetUniformfv(program, tv2l))
|
320
313
|
glUniform3fv(tv3l, [3.0, 3.0, 3.0])
|
@@ -323,7 +316,7 @@ void main() {
|
|
323
316
|
assert_equal([3.0, 3.0, 3.0, 3.0], glGetUniformfv(program, tv4l))
|
324
317
|
# iv
|
325
318
|
glUniform1iv(tv1il, [2])
|
326
|
-
assert_equal(glGetUniformiv(program, tv1il)
|
319
|
+
assert_equal(2, glGetUniformiv(program, tv1il))
|
327
320
|
glUniform2iv(tv2il, [2, 2])
|
328
321
|
assert_equal([2, 2], glGetUniformiv(program, tv2il))
|
329
322
|
glUniform3iv(tv3il, [2, 2, 2])
|
@@ -344,10 +337,7 @@ uniform mat3 testmat3;
|
|
344
337
|
uniform mat4 testmat4;
|
345
338
|
|
346
339
|
void main() {
|
347
|
-
testmat2;
|
348
|
-
testmat3;
|
349
|
-
testmat4;
|
350
|
-
gl_Position = ftransform();
|
340
|
+
gl_Position = ftransform() * testmat2[0][0] * testmat3[0][0] * testmat4[0][0];
|
351
341
|
}
|
352
342
|
SHADER
|
353
343
|
|
@@ -383,22 +373,21 @@ void main() {
|
|
383
373
|
uniforms[uniform.last] = i
|
384
374
|
end
|
385
375
|
|
386
|
-
glUniformMatrix2fv(uniforms['testmat2'], GL_TRUE, [0, 1,
|
376
|
+
glUniformMatrix2fv(uniforms['testmat2'], GL_TRUE, [0, 1, 2, 3])
|
387
377
|
|
388
|
-
assert_each_in_delta([0,
|
378
|
+
assert_each_in_delta([0, 2, 1, 3],
|
389
379
|
glGetUniformfv(program, uniforms['testmat2']))
|
390
380
|
|
391
|
-
skip "glUniformMatrix3fv complains but I don't know why"
|
392
381
|
glUniformMatrix3fv(uniforms['testmat3'], GL_TRUE,
|
393
|
-
[
|
382
|
+
[0, 1, 2, 3, 4, 5, 6, 7, 8])
|
394
383
|
|
395
|
-
assert_each_in_delta([
|
384
|
+
assert_each_in_delta([0, 3, 6, 1, 4, 7, 2, 5, 8],
|
396
385
|
glGetUniformfv(program, uniforms['testmat3']))
|
397
386
|
|
398
387
|
glUniformMatrix4fv(uniforms['testmat4'], GL_TRUE,
|
399
|
-
[0, 1,
|
388
|
+
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])
|
400
389
|
|
401
|
-
assert_each_in_delta([0,
|
390
|
+
assert_each_in_delta([0, 4, 8, 12, 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15],
|
402
391
|
glGetUniformfv(program, uniforms['testmat4']))
|
403
392
|
ensure
|
404
393
|
glDeleteProgram program
|
@@ -413,7 +402,7 @@ void main() {
|
|
413
402
|
glBufferData(GL_ARRAY_BUFFER, 8*4, vaa, GL_DYNAMIC_DRAW)
|
414
403
|
|
415
404
|
glVertexAttribPointer(1, 4, GL_FLOAT, GL_FALSE, 0, 0)
|
416
|
-
assert_equal(glGetVertexAttribPointerv(1)
|
405
|
+
assert_equal(0, glGetVertexAttribPointerv(1))
|
417
406
|
|
418
407
|
glEnableVertexAttribArray(1)
|
419
408
|
|
@@ -425,6 +414,4 @@ void main() {
|
|
425
414
|
glDisableVertexAttribArray(1)
|
426
415
|
glDeleteBuffers(buffers)
|
427
416
|
end
|
428
|
-
|
429
417
|
end
|
430
|
-
|
data/test/test_gl_21.rb
CHANGED
@@ -19,7 +19,6 @@ class TestGl21 < OpenGL::TestCase
|
|
19
19
|
|
20
20
|
def setup
|
21
21
|
super
|
22
|
-
|
23
22
|
supported? 2.1
|
24
23
|
end
|
25
24
|
|
@@ -48,25 +47,25 @@ void main() {
|
|
48
47
|
glShaderSource(vs, vertex_shader_source)
|
49
48
|
glCompileShader(vs)
|
50
49
|
|
51
|
-
assert_equal(glGetShaderiv(vs, GL_COMPILE_STATUS)
|
50
|
+
assert_equal(GL_TRUE, glGetShaderiv(vs, GL_COMPILE_STATUS))
|
52
51
|
glAttachShader(program, vs)
|
53
52
|
|
54
|
-
glLinkProgram(program)
|
55
|
-
assert_equal(glGetProgramiv(program, GL_LINK_STATUS)
|
53
|
+
glLinkProgram(program)
|
54
|
+
assert_equal(GL_TRUE, glGetProgramiv(program, GL_LINK_STATUS))
|
56
55
|
glUseProgram(program)
|
57
56
|
|
58
57
|
tm23l = glGetUniformLocation(program, "testmat23")
|
59
|
-
refute_equal
|
58
|
+
refute_equal(-1, tm23l, "testmat23 missing!")
|
60
59
|
tm32l = glGetUniformLocation(program, "testmat32")
|
61
|
-
refute_equal
|
60
|
+
refute_equal(-1, tm32l, "testmat32 missing!")
|
62
61
|
tm24l = glGetUniformLocation(program, "testmat24")
|
63
|
-
refute_equal
|
62
|
+
refute_equal(-1, tm24l, "testmat24 missing!")
|
64
63
|
tm42l = glGetUniformLocation(program, "testmat42")
|
65
|
-
refute_equal
|
64
|
+
refute_equal(-1, tm42l, "testmat42 missing!")
|
66
65
|
tm34l = glGetUniformLocation(program, "testmat34")
|
67
|
-
refute_equal
|
66
|
+
refute_equal(-1, tm34l, "testmat34 missing!")
|
68
67
|
tm43l = glGetUniformLocation(program, "testmat43")
|
69
|
-
refute_equal
|
68
|
+
refute_equal(-1, tm43l, "testmat43 missing!")
|
70
69
|
|
71
70
|
refute_equal(-1, glGetUniformLocation(program, "testmat23"),
|
72
71
|
"testmat23 missing!")
|
@@ -81,50 +80,49 @@ void main() {
|
|
81
80
|
refute_equal(-1, glGetUniformLocation(program, "testmat43"),
|
82
81
|
"testmat43 missing!")
|
83
82
|
|
84
|
-
uniforms = Hash.new
|
83
|
+
uniforms = Hash.new { |_, k| raise "invalid uniform #{k}" }
|
85
84
|
(0...glGetProgramiv(program, GL_ACTIVE_UNIFORMS)).each do |i|
|
86
85
|
uniform = glGetActiveUniform program, i
|
87
86
|
uniforms[uniform.last] = i
|
88
87
|
end
|
89
88
|
|
90
|
-
skip "glUniformMatrix2x3fv complains but I don't know why"
|
91
89
|
glUniformMatrix2x3fv(uniforms["testmat23"], GL_FALSE, [0, 1, 1, 0, 0, 1])
|
92
|
-
assert_equal(
|
90
|
+
assert_equal([0, 1, 1, 0, 0, 1], glGetUniformfv(program, uniforms["testmat23"]))
|
93
91
|
glUniformMatrix3x2fv(uniforms["testmat32"], GL_FALSE, [1, 0, 0, 1, 1, 0])
|
94
|
-
assert_equal(
|
92
|
+
assert_equal([1, 0, 0, 1, 1, 0], glGetUniformfv(program, uniforms["testmat32"]))
|
95
93
|
|
96
94
|
glUniformMatrix2x4fv(uniforms["testmat24"], GL_FALSE, [0, 1, 1, 0, 0, 1, 1, 0])
|
97
|
-
assert_equal(
|
95
|
+
assert_equal([0, 1, 1, 0, 0, 1, 1, 0], glGetUniformfv(program, uniforms["testmat24"]))
|
98
96
|
glUniformMatrix4x2fv(uniforms["testmat42"], GL_FALSE, [1, 0, 0, 1, 1, 0, 0, 1])
|
99
|
-
assert_equal(
|
97
|
+
assert_equal([1, 0, 0, 1, 1, 0, 0, 1], glGetUniformfv(program, uniforms["testmat42"]))
|
100
98
|
|
101
99
|
glUniformMatrix3x4fv(uniforms["testmat34"], GL_FALSE, [0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1])
|
102
|
-
assert_equal(
|
100
|
+
assert_equal([0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1], glGetUniformfv(program, uniforms["testmat34"]))
|
103
101
|
glUniformMatrix4x3fv(uniforms["testmat43"], GL_FALSE, [1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0])
|
104
|
-
assert_equal(
|
102
|
+
assert_equal([1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0], glGetUniformfv(program, uniforms["testmat43"]))
|
105
103
|
|
106
104
|
# 2
|
107
105
|
m = Matrix.rows([[0, 1], [1, 0], [0, 1]])
|
108
106
|
glUniformMatrix2x3fv(uniforms["testmat23"], GL_FALSE, m)
|
109
|
-
assert_equal(
|
107
|
+
assert_equal([0, 1, 1, 0, 0, 1], glGetUniformfv(program, uniforms["testmat23"]))
|
110
108
|
m = Matrix.rows([[0, 1, 1], [0, 0, 1]])
|
111
109
|
glUniformMatrix3x2fv(uniforms["testmat32"], GL_FALSE, m)
|
112
|
-
assert_equal(
|
110
|
+
assert_equal([0, 1, 1, 0, 0, 1], glGetUniformfv(program, uniforms["testmat32"]))
|
113
111
|
|
114
112
|
m = Matrix.rows([[0, 1], [1, 0], [0, 1], [1, 0]])
|
115
113
|
glUniformMatrix2x4fv(uniforms["testmat24"], GL_FALSE, m)
|
116
|
-
assert_equal(
|
114
|
+
assert_equal([0, 1, 1, 0, 0, 1, 1, 0], glGetUniformfv(program, uniforms["testmat24"]))
|
117
115
|
m = Matrix.rows([[0, 1, 1, 1], [0, 0, 1, 1]])
|
118
116
|
glUniformMatrix4x2fv(uniforms["testmat42"], GL_FALSE, m)
|
119
|
-
assert_equal(
|
117
|
+
assert_equal([0, 1, 1, 1, 0, 0, 1, 1], glGetUniformfv(program, uniforms["testmat42"]))
|
120
118
|
|
121
119
|
m = Matrix.rows([[0, 1, 0], [1, 0, 1], [0, 1, 0], [1, 0, 1]])
|
122
120
|
glUniformMatrix3x4fv(uniforms["testmat34"], GL_FALSE, m)
|
123
|
-
assert_equal(
|
121
|
+
assert_equal([0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1], glGetUniformfv(program, uniforms["testmat34"]))
|
124
122
|
|
125
123
|
m = Matrix.rows([[0, 1, 1, 1], [0, 0, 1, 1], [1, 1, 0, 0]])
|
126
124
|
glUniformMatrix4x3fv(uniforms["testmat43"], GL_FALSE, m)
|
127
|
-
assert_equal(
|
125
|
+
assert_equal([0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0], glGetUniformfv(program, uniforms["testmat43"]))
|
128
126
|
|
129
127
|
# 3
|
130
128
|
assert_raises ArgumentError do glUniformMatrix2x3fv(uniforms["testmat23"], GL_FALSE, [1, 2, 3, 4]) end
|
@@ -136,6 +134,7 @@ void main() {
|
|
136
134
|
end
|
137
135
|
|
138
136
|
def test_pixelunpack_bitmap
|
137
|
+
skip("Segfaults on Mesa until upstream fixes it")
|
139
138
|
glOrtho(0, WINDOW_SIZE, 0, WINDOW_SIZE, 0, -1)
|
140
139
|
|
141
140
|
bitmap = [ 0x55 ] * 8 # 64 bits (8x8 bitmap), stipple pattern
|
@@ -148,47 +147,7 @@ void main() {
|
|
148
147
|
|
149
148
|
glBitmap(8, 8, 0, 0, 0, 0, 0)
|
150
149
|
data = glReadPixels(0, 0, 8, 8, GL_RED, GL_UNSIGNED_BYTE)
|
151
|
-
assert_equal(
|
152
|
-
|
153
|
-
glDeleteBuffers(buffers)
|
154
|
-
end
|
155
|
-
|
156
|
-
def test_pixelunpack_color_convolution
|
157
|
-
ct = ([0]*3+[1]*3+[0]*3+[1]*3).pack("f*")
|
158
|
-
ct2 = ([1]*3+[0]*3+[1]*3+[0]*3).pack("f*")
|
159
|
-
|
160
|
-
buffers = glGenBuffers(2)
|
161
|
-
glBindBuffer(GL_PIXEL_UNPACK_BUFFER, buffers[0])
|
162
|
-
glBufferData(GL_PIXEL_UNPACK_BUFFER, 4*3*4, ct, GL_DYNAMIC_DRAW)
|
163
|
-
|
164
|
-
glBindBuffer(GL_PIXEL_UNPACK_BUFFER, buffers[1])
|
165
|
-
glBufferData(GL_PIXEL_UNPACK_BUFFER, 4*3*4, ct2, GL_DYNAMIC_DRAW)
|
166
|
-
|
167
|
-
glBindBuffer(GL_PIXEL_UNPACK_BUFFER, buffers[0])
|
168
|
-
glColorTable(GL_COLOR_TABLE, GL_RGB8, 4, GL_RGB, GL_FLOAT, 0)
|
169
|
-
assert_equal(glGetColorTable(GL_COLOR_TABLE, GL_RGB, GL_FLOAT), ct)
|
170
|
-
glConvolutionFilter1D(GL_CONVOLUTION_1D, GL_RGB8, 4, GL_RGB, GL_FLOAT, 0)
|
171
|
-
assert_equal(glGetConvolutionFilter(GL_CONVOLUTION_1D, GL_RGB, GL_FLOAT), ct)
|
172
|
-
|
173
|
-
glBindBuffer(GL_PIXEL_UNPACK_BUFFER, buffers[1])
|
174
|
-
glColorSubTable(GL_COLOR_TABLE, 0, 4, GL_RGB, GL_FLOAT, 0)
|
175
|
-
assert_equal(glGetColorTable(GL_COLOR_TABLE, GL_RGB, GL_FLOAT), ct2)
|
176
|
-
glConvolutionFilter2D(GL_CONVOLUTION_2D, GL_RGB8, 2, 2, GL_RGB, GL_FLOAT, 0)
|
177
|
-
assert_equal(glGetConvolutionFilter(GL_CONVOLUTION_2D, GL_RGB, GL_FLOAT), ct2)
|
178
|
-
|
179
|
-
glDeleteBuffers(buffers)
|
180
|
-
end
|
181
|
-
|
182
|
-
def test_pixelunpack_separable
|
183
|
-
sf_a = ([0]*3+[1]*3).pack("f*")
|
184
|
-
sf_b = ([1]*3+[0]*3).pack("f*")
|
185
|
-
|
186
|
-
buffers = glGenBuffers(1)
|
187
|
-
glBindBuffer(GL_PIXEL_UNPACK_BUFFER, buffers[0])
|
188
|
-
glBufferData(GL_PIXEL_UNPACK_BUFFER, 2*3*4 *2, sf_a + sf_b, GL_DYNAMIC_DRAW)
|
189
|
-
|
190
|
-
glSeparableFilter2D(GL_SEPARABLE_2D, GL_RGB8, 2, 2, GL_RGB, GL_FLOAT, 0, 2*3*4)
|
191
|
-
assert_equal(glGetSeparableFilter(GL_SEPARABLE_2D, GL_RGB, GL_FLOAT), [sf_a, sf_b])
|
150
|
+
assert_equal([0, 255] * 32, data.unpack("C*"))
|
192
151
|
|
193
152
|
glDeleteBuffers(buffers)
|
194
153
|
end
|
@@ -206,7 +165,7 @@ void main() {
|
|
206
165
|
glDrawPixels(4, 4, GL_RGB, GL_FLOAT, 0)
|
207
166
|
|
208
167
|
data = glReadPixels(0, 0, 4, 4, GL_RGB, GL_FLOAT)
|
209
|
-
assert_equal(
|
168
|
+
assert_equal(image, data)
|
210
169
|
|
211
170
|
glDeleteBuffers(buffers)
|
212
171
|
end
|
@@ -218,7 +177,7 @@ void main() {
|
|
218
177
|
glBufferData(GL_PIXEL_UNPACK_BUFFER, 128, stipple, GL_DYNAMIC_DRAW)
|
219
178
|
|
220
179
|
glPolygonStipple(0)
|
221
|
-
assert_equal(glGetPolygonStipple()
|
180
|
+
assert_equal(stipple, glGetPolygonStipple())
|
222
181
|
glDeleteBuffers(buffers)
|
223
182
|
end
|
224
183
|
|
@@ -247,7 +206,7 @@ void main() {
|
|
247
206
|
glBindBuffer(GL_PIXEL_UNPACK_BUFFER, buffers[0])
|
248
207
|
begin
|
249
208
|
glCompressedTexImage1D(GL_TEXTURE_1D, 0, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, 4, 0, 16, 0)
|
250
|
-
assert_equal(glGetCompressedTexImage(GL_TEXTURE_1D, 0)
|
209
|
+
assert_equal(image_1, glGetCompressedTexImage(GL_TEXTURE_1D, 0))
|
251
210
|
rescue Gl::Error => err
|
252
211
|
assert(err.id == GL_INVALID_ENUM || err.id == GL_INVALID_OPERATION)
|
253
212
|
end
|
@@ -255,7 +214,7 @@ void main() {
|
|
255
214
|
glBindBuffer(GL_PIXEL_UNPACK_BUFFER, buffers[1])
|
256
215
|
begin
|
257
216
|
glCompressedTexSubImage1D(GL_TEXTURE_1D, 0, 0, 4, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, 16, 0)
|
258
|
-
assert_equal(glGetCompressedTexImage(GL_TEXTURE_1D, 0)
|
217
|
+
assert_equal(image_2, glGetCompressedTexImage(GL_TEXTURE_1D, 0))
|
259
218
|
rescue Gl::Error => err
|
260
219
|
assert(err.id == GL_INVALID_ENUM || err.id == GL_INVALID_OPERATION)
|
261
220
|
end
|
@@ -263,17 +222,17 @@ void main() {
|
|
263
222
|
# 2D
|
264
223
|
glBindBuffer(GL_PIXEL_UNPACK_BUFFER, buffers[0])
|
265
224
|
glCompressedTexImage2D(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, 2, 2, 0, 16, 0)
|
266
|
-
assert_equal(glGetCompressedTexImage(GL_TEXTURE_2D, 0)
|
225
|
+
assert_equal(image_1, glGetCompressedTexImage(GL_TEXTURE_2D, 0))
|
267
226
|
|
268
227
|
glBindBuffer(GL_PIXEL_UNPACK_BUFFER, buffers[1])
|
269
228
|
glCompressedTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 2, 2, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, 16, 0)
|
270
|
-
assert_equal(glGetCompressedTexImage(GL_TEXTURE_2D, 0)
|
229
|
+
assert_equal(image_2, glGetCompressedTexImage(GL_TEXTURE_2D, 0))
|
271
230
|
|
272
231
|
# 3D
|
273
232
|
glBindBuffer(GL_PIXEL_UNPACK_BUFFER, buffers[0])
|
274
233
|
begin
|
275
234
|
glCompressedTexImage3D(GL_TEXTURE_3D, 0, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, 2, 2, 1, 0, 16, 0)
|
276
|
-
assert_equal(glGetCompressedTexImage(GL_TEXTURE_3D, 0)
|
235
|
+
assert_equal(image_1, glGetCompressedTexImage(GL_TEXTURE_3D, 0))
|
277
236
|
rescue Gl::Error => err
|
278
237
|
assert(err.id == GL_INVALID_ENUM || err.id == GL_INVALID_OPERATION)
|
279
238
|
end
|
@@ -281,7 +240,7 @@ void main() {
|
|
281
240
|
glBindBuffer(GL_PIXEL_UNPACK_BUFFER, buffers[1])
|
282
241
|
begin
|
283
242
|
glCompressedTexSubImage3D(GL_TEXTURE_3D, 0, 0, 0, 0, 2, 2, 1, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, 16, 0)
|
284
|
-
assert_equal(glGetCompressedTexImage(GL_TEXTURE_3D, 0)
|
243
|
+
assert_equal(image_2, glGetCompressedTexImage(GL_TEXTURE_3D, 0))
|
285
244
|
rescue Gl::Error => err
|
286
245
|
assert(err.id == GL_INVALID_ENUM || err.id == GL_INVALID_OPERATION)
|
287
246
|
end
|
@@ -306,22 +265,22 @@ void main() {
|
|
306
265
|
|
307
266
|
glBindBuffer(GL_PIXEL_UNPACK_BUFFER, buffers[0])
|
308
267
|
glTexImage3D(GL_TEXTURE_3D, 0, GL_RGB8, 2, 2, 4, 0, GL_RGB, GL_FLOAT, 0)
|
309
|
-
assert_equal(glGetTexImage(GL_TEXTURE_3D, 0, GL_RGB, GL_FLOAT)
|
268
|
+
assert_equal(image_1, glGetTexImage(GL_TEXTURE_3D, 0, GL_RGB, GL_FLOAT))
|
310
269
|
|
311
270
|
glBindBuffer(GL_PIXEL_UNPACK_BUFFER, buffers[1])
|
312
271
|
glTexSubImage3D(GL_TEXTURE_3D, 0, 0, 0, 0, 2, 2, 4, GL_RGB, GL_FLOAT, 0)
|
313
|
-
assert_equal(glGetTexImage(GL_TEXTURE_3D, 0, GL_RGB, GL_FLOAT)
|
272
|
+
assert_equal(image_2, glGetTexImage(GL_TEXTURE_3D, 0, GL_RGB, GL_FLOAT))
|
314
273
|
|
315
274
|
# 2D
|
316
275
|
glBindTexture(GL_TEXTURE_2D, textures[1])
|
317
276
|
|
318
277
|
glBindBuffer(GL_PIXEL_UNPACK_BUFFER, buffers[0])
|
319
278
|
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB8, 4, 4, 0, GL_RGB, GL_FLOAT, 0)
|
320
|
-
assert_equal(glGetTexImage(GL_TEXTURE_2D, 0, GL_RGB, GL_FLOAT)
|
279
|
+
assert_equal(image_1, glGetTexImage(GL_TEXTURE_2D, 0, GL_RGB, GL_FLOAT))
|
321
280
|
|
322
281
|
glBindBuffer(GL_PIXEL_UNPACK_BUFFER, buffers[1])
|
323
282
|
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 4, 4, GL_RGB, GL_FLOAT, 0)
|
324
|
-
assert_equal(glGetTexImage(GL_TEXTURE_2D, 0, GL_RGB, GL_FLOAT)
|
283
|
+
assert_equal(image_2, glGetTexImage(GL_TEXTURE_2D, 0, GL_RGB, GL_FLOAT))
|
325
284
|
|
326
285
|
# 1D
|
327
286
|
glBindTexture(GL_TEXTURE_1D, textures[2])
|
@@ -329,11 +288,11 @@ void main() {
|
|
329
288
|
glBindBuffer(GL_PIXEL_UNPACK_BUFFER, buffers[0])
|
330
289
|
|
331
290
|
glTexImage1D(GL_TEXTURE_1D, 0, GL_RGB8, 16, 0, GL_RGB, GL_FLOAT, 0)
|
332
|
-
assert_equal(glGetTexImage(GL_TEXTURE_1D, 0, GL_RGB, GL_FLOAT)
|
291
|
+
assert_equal(image_1, glGetTexImage(GL_TEXTURE_1D, 0, GL_RGB, GL_FLOAT))
|
333
292
|
|
334
293
|
glBindBuffer(GL_PIXEL_UNPACK_BUFFER, buffers[1])
|
335
294
|
glTexSubImage1D(GL_TEXTURE_1D, 0, 0, 16, GL_RGB, GL_FLOAT, 0)
|
336
|
-
assert_equal(glGetTexImage(GL_TEXTURE_1D, 0, GL_RGB, GL_FLOAT)
|
295
|
+
assert_equal(image_2, glGetTexImage(GL_TEXTURE_1D, 0, GL_RGB, GL_FLOAT))
|
337
296
|
|
338
297
|
glDeleteBuffers(buffers)
|
339
298
|
glDeleteTextures(textures)
|
@@ -349,13 +308,13 @@ void main() {
|
|
349
308
|
glBufferData(GL_PIXEL_UNPACK_BUFFER, 4*4+4*4+4*2, data_1+data_2+data_3, GL_DYNAMIC_DRAW)
|
350
309
|
|
351
310
|
glPixelMapfv(GL_PIXEL_MAP_I_TO_I, 4, 0)
|
352
|
-
assert_equal(
|
311
|
+
assert_equal([1, 2, 3, 4], glGetPixelMapfv(GL_PIXEL_MAP_I_TO_I))
|
353
312
|
|
354
313
|
glPixelMapuiv(GL_PIXEL_MAP_I_TO_I, 4, 4*4)
|
355
|
-
assert_equal(
|
314
|
+
assert_equal([5, 6, 7, 8], glGetPixelMapuiv(GL_PIXEL_MAP_I_TO_I))
|
356
315
|
|
357
316
|
glPixelMapusv(GL_PIXEL_MAP_I_TO_I, 4, 4*4+4*4)
|
358
|
-
assert_equal(
|
317
|
+
assert_equal([9, 10, 11, 12], glGetPixelMapusv(GL_PIXEL_MAP_I_TO_I))
|
359
318
|
|
360
319
|
glDeleteBuffers(buffers)
|
361
320
|
end
|
@@ -373,7 +332,7 @@ void main() {
|
|
373
332
|
glReadPixels(0, 0, 4, 4, GL_RGB, GL_FLOAT, 0)
|
374
333
|
|
375
334
|
data = glMapBuffer(GL_PIXEL_PACK_BUFFER_ARB, GL_READ_ONLY)
|
376
|
-
assert_equal(
|
335
|
+
assert_equal(image, data)
|
377
336
|
glUnmapBuffer(GL_PIXEL_PACK_BUFFER_ARB)
|
378
337
|
|
379
338
|
glDeleteBuffers(buffers)
|
@@ -384,7 +343,7 @@ void main() {
|
|
384
343
|
glBindBuffer(GL_PIXEL_PACK_BUFFER, buffers[0])
|
385
344
|
glBufferData(GL_PIXEL_PACK_BUFFER_ARB, 4*4, nil, GL_STREAM_READ)
|
386
345
|
|
387
|
-
# fv
|
346
|
+
# fv
|
388
347
|
glPixelMapfv(GL_PIXEL_MAP_I_TO_I, [1, 2, 3, 4])
|
389
348
|
glGetPixelMapfv(GL_PIXEL_MAP_I_TO_I, 0)
|
390
349
|
|
@@ -400,7 +359,7 @@ void main() {
|
|
400
359
|
assert_equal([5, 6, 7, 8].pack("I*"), data)
|
401
360
|
glUnmapBuffer(GL_PIXEL_PACK_BUFFER_ARB)
|
402
361
|
|
403
|
-
# usv
|
362
|
+
# usv
|
404
363
|
glBufferData(GL_PIXEL_PACK_BUFFER_ARB, 4*2, nil, GL_STREAM_READ)
|
405
364
|
|
406
365
|
glPixelMapusv(GL_PIXEL_MAP_I_TO_I, [9, 10, 11, 12])
|
@@ -430,80 +389,6 @@ void main() {
|
|
430
389
|
glDeleteBuffers(buffers)
|
431
390
|
end
|
432
391
|
|
433
|
-
def test_pixelpack_separablefilter
|
434
|
-
sf_a = ([0]*3+[1]*3).pack("f*")
|
435
|
-
sf_b = ([1]*3+[0]*3).pack("f*")
|
436
|
-
|
437
|
-
buffers = glGenBuffers(1)
|
438
|
-
glBindBuffer(GL_PIXEL_PACK_BUFFER, buffers[0])
|
439
|
-
glBufferData(GL_PIXEL_PACK_BUFFER_ARB, 6*4 + 6*4, nil, GL_STREAM_READ)
|
440
|
-
|
441
|
-
glSeparableFilter2D(GL_SEPARABLE_2D, GL_RGB8, 2, 2, GL_RGB, GL_FLOAT, sf_a, sf_b)
|
442
|
-
glGetSeparableFilter(GL_SEPARABLE_2D, GL_RGB, GL_FLOAT, 0, 6*4, 0)
|
443
|
-
|
444
|
-
data = glMapBuffer(GL_PIXEL_PACK_BUFFER_ARB, GL_READ_ONLY)
|
445
|
-
assert_equal(data, sf_a + sf_b)
|
446
|
-
glUnmapBuffer(GL_PIXEL_PACK_BUFFER_ARB)
|
447
|
-
|
448
|
-
glDeleteBuffers(buffers)
|
449
|
-
end
|
450
|
-
|
451
|
-
def test_pixelpack_convolutionfilter
|
452
|
-
cf = ([0]*3+[1]*3+[0]*3+[1]*3).pack("f*")
|
453
|
-
|
454
|
-
buffers = glGenBuffers(1)
|
455
|
-
glBindBuffer(GL_PIXEL_PACK_BUFFER, buffers[0])
|
456
|
-
glBufferData(GL_PIXEL_PACK_BUFFER_ARB, 3*4*4, nil, GL_STREAM_READ)
|
457
|
-
|
458
|
-
glConvolutionFilter1D(GL_CONVOLUTION_1D, GL_RGB8, 4, GL_RGB, GL_FLOAT, cf)
|
459
|
-
|
460
|
-
glGetConvolutionFilter(GL_CONVOLUTION_1D, GL_RGB, GL_FLOAT, 0)
|
461
|
-
data = glMapBuffer(GL_PIXEL_PACK_BUFFER_ARB, GL_READ_ONLY)
|
462
|
-
assert_equal(data, cf)
|
463
|
-
glUnmapBuffer(GL_PIXEL_PACK_BUFFER_ARB)
|
464
|
-
|
465
|
-
glDeleteBuffers(buffers)
|
466
|
-
end
|
467
|
-
|
468
|
-
def test_pixelpack_histogram
|
469
|
-
glEnable(GL_HISTOGRAM)
|
470
|
-
|
471
|
-
glHistogram(GL_HISTOGRAM, 1, GL_RGB8, GL_FALSE)
|
472
|
-
|
473
|
-
buffers = glGenBuffers(1)
|
474
|
-
glBindBuffer(GL_PIXEL_PACK_BUFFER, buffers[0])
|
475
|
-
glBufferData(GL_PIXEL_PACK_BUFFER_ARB, 3*4, nil, GL_STREAM_READ)
|
476
|
-
|
477
|
-
glDrawPixels(2, 1, GL_RGB, GL_FLOAT, [1, 1, 1, 1, 1, 1].pack("f*"))
|
478
|
-
glGetHistogram(GL_HISTOGRAM, GL_FALSE, GL_RGB, GL_FLOAT, 0)
|
479
|
-
|
480
|
-
data = glMapBuffer(GL_PIXEL_PACK_BUFFER_ARB, GL_READ_ONLY)
|
481
|
-
assert_equal(data.unpack("f*"), [2, 2, 2])
|
482
|
-
glUnmapBuffer(GL_PIXEL_PACK_BUFFER_ARB)
|
483
|
-
|
484
|
-
glDeleteBuffers(buffers)
|
485
|
-
glDisable(GL_HISTOGRAM)
|
486
|
-
end
|
487
|
-
|
488
|
-
def test_pixelpack_minmax
|
489
|
-
glEnable(GL_MINMAX)
|
490
|
-
|
491
|
-
glMinmax(GL_MINMAX, GL_RGB8, GL_FALSE)
|
492
|
-
|
493
|
-
buffers = glGenBuffers(1)
|
494
|
-
glBindBuffer(GL_PIXEL_PACK_BUFFER, buffers[0])
|
495
|
-
glBufferData(GL_PIXEL_PACK_BUFFER_ARB, 6*4, nil, GL_STREAM_READ)
|
496
|
-
|
497
|
-
glDrawPixels(2, 1, GL_RGB, GL_FLOAT, [0, 0, 0, 1, 1, 1].pack("f*"))
|
498
|
-
glGetMinmax(GL_MINMAX, GL_FALSE, GL_RGB, GL_FLOAT, 0)
|
499
|
-
data = glMapBuffer(GL_PIXEL_PACK_BUFFER_ARB, GL_READ_ONLY)
|
500
|
-
assert_equal(data.unpack("f*"), [0, 0, 0, 1, 1, 1])
|
501
|
-
glUnmapBuffer(GL_PIXEL_PACK_BUFFER_ARB)
|
502
|
-
|
503
|
-
glDeleteBuffers(buffers)
|
504
|
-
glDisable(GL_MINMAX)
|
505
|
-
end
|
506
|
-
|
507
392
|
def test_pixelpack_teximage
|
508
393
|
textures = glGenTextures(1)
|
509
394
|
glBindTexture(GL_TEXTURE_2D, textures[0])
|
@@ -518,7 +403,7 @@ void main() {
|
|
518
403
|
glGetTexImage(GL_TEXTURE_2D, 0, GL_RGB, GL_FLOAT, 0)
|
519
404
|
|
520
405
|
data = glMapBuffer(GL_PIXEL_PACK_BUFFER_ARB, GL_READ_ONLY)
|
521
|
-
assert_equal(
|
406
|
+
assert_equal(image, data)
|
522
407
|
glUnmapBuffer(GL_PIXEL_PACK_BUFFER_ARB)
|
523
408
|
|
524
409
|
glDeleteBuffers(buffers)
|
@@ -542,12 +427,10 @@ void main() {
|
|
542
427
|
glGetCompressedTexImage(GL_TEXTURE_2D, 0, 0)
|
543
428
|
|
544
429
|
data = glMapBuffer(GL_PIXEL_PACK_BUFFER_ARB, GL_READ_ONLY)
|
545
|
-
assert_equal(
|
430
|
+
assert_equal(image, data)
|
546
431
|
glUnmapBuffer(GL_PIXEL_PACK_BUFFER_ARB)
|
547
432
|
|
548
433
|
glDeleteBuffers(buffers)
|
549
434
|
glDeleteTextures(textures)
|
550
435
|
end
|
551
|
-
|
552
436
|
end
|
553
|
-
|