ruby-opengl 0.50.0 → 0.60.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +15 -11
- data/doc/build_install.txt +10 -6
- data/doc/extensions.txt.in +348 -0
- data/doc/history.txt +4 -0
- data/doc/roadmap.txt +4 -6
- data/doc/scientific_use.txt +7 -0
- data/doc/supplies/page_template.html +2 -1
- data/doc/thanks.txt +5 -0
- data/doc/tutorial.txt +431 -121
- data/examples/NeHe/nehe_lesson02.rb +1 -1
- data/examples/NeHe/nehe_lesson03.rb +1 -1
- data/examples/NeHe/nehe_lesson04.rb +1 -1
- data/examples/NeHe/nehe_lesson05.rb +1 -1
- data/examples/NeHe/nehe_lesson36.rb +1 -1
- data/examples/OrangeBook/brick.rb +3 -15
- data/examples/OrangeBook/particle.rb +2 -20
- data/examples/RedBook/aapoly.rb +1 -1
- data/examples/RedBook/aargb.rb +2 -2
- data/examples/RedBook/accanti.rb +1 -1
- data/examples/RedBook/accpersp.rb +1 -1
- data/examples/RedBook/alpha.rb +2 -2
- data/examples/RedBook/alpha3D.rb +1 -1
- data/examples/RedBook/bezcurve.rb +1 -1
- data/examples/RedBook/bezmesh.rb +1 -1
- data/examples/RedBook/checker.rb +1 -1
- data/examples/RedBook/clip.rb +1 -1
- data/examples/RedBook/colormat.rb +1 -1
- data/examples/RedBook/cube.rb +1 -1
- data/examples/RedBook/depthcue.rb +1 -1
- data/examples/RedBook/dof.rb +1 -1
- data/examples/RedBook/double.rb +1 -1
- data/examples/RedBook/drawf.rb +1 -1
- data/examples/RedBook/feedback.rb +1 -1
- data/examples/RedBook/fog.rb +1 -1
- data/examples/RedBook/font.rb +2 -2
- data/examples/RedBook/hello.rb +1 -1
- data/examples/RedBook/image.rb +4 -4
- data/examples/RedBook/lines.rb +1 -1
- data/examples/RedBook/list.rb +1 -1
- data/examples/RedBook/material.rb +1 -1
- data/examples/RedBook/mipmap.rb +1 -1
- data/examples/RedBook/model.rb +1 -1
- data/examples/RedBook/movelight.rb +1 -1
- data/examples/RedBook/pickdepth.rb +1 -1
- data/examples/RedBook/planet.rb +5 -5
- data/examples/RedBook/quadric.rb +1 -1
- data/examples/RedBook/robot.rb +5 -5
- data/examples/RedBook/select.rb +1 -1
- data/examples/RedBook/smooth.rb +1 -1
- data/examples/RedBook/stencil.rb +1 -1
- data/examples/RedBook/stroke.rb +2 -2
- data/examples/RedBook/surface.rb +1 -1
- data/examples/RedBook/teaambient.rb +1 -1
- data/examples/RedBook/teapots.rb +1 -1
- data/examples/RedBook/tess.rb +1 -1
- data/examples/RedBook/texbind.rb +1 -1
- data/examples/RedBook/texgen.rb +5 -5
- data/examples/RedBook/texturesurf.rb +1 -1
- data/examples/RedBook/varray.rb +1 -1
- data/examples/RedBook/wrap.rb +5 -5
- data/examples/misc/OGLBench.rb +337 -0
- data/examples/misc/anisotropic.rb +1 -1
- data/examples/misc/fbo_test.rb +356 -0
- data/examples/misc/font-glut.rb +1 -1
- data/examples/misc/glfwtest.rb +30 -0
- data/examples/misc/md2model.rb +15 -0
- data/examples/misc/plane.rb +1 -1
- data/examples/misc/readpixel.rb +1 -1
- data/examples/misc/sdltest.rb +34 -0
- data/examples/misc/trislam.rb +828 -0
- data/ext/common/common.h +126 -218
- data/ext/common/conv.h +244 -0
- data/ext/common/funcdef.h +280 -0
- data/ext/common/gl-error.h +23 -0
- data/ext/common/gl-types.h +14 -0
- data/ext/gl/gl-1.0-1.1.c +497 -1255
- data/ext/gl/gl-1.2.c +121 -304
- data/ext/gl/gl-1.3.c +78 -339
- data/ext/gl/gl-1.4.c +102 -164
- data/ext/gl/gl-1.5.c +42 -173
- data/ext/gl/gl-2.0.c +273 -1039
- data/ext/gl/gl-2.1.c +15 -19
- data/ext/gl/gl-enums.c +3 -2
- data/ext/gl/gl-error.c +104 -0
- data/ext/gl/gl-ext-3dfx.c +27 -0
- data/ext/gl/gl-ext-arb.c +812 -12
- data/ext/gl/gl-ext-ati.c +41 -0
- data/ext/gl/gl-ext-ext.c +791 -119
- data/ext/gl/gl-ext-gremedy.c +41 -0
- data/ext/gl/gl-ext-nv.c +679 -0
- data/ext/gl/gl.c +48 -28
- data/ext/gl/mkrf_conf.rb +13 -10
- data/ext/glu/glu-enums.c +3 -2
- data/ext/glu/glu.c +136 -41
- data/ext/glu/mkrf_conf.rb +15 -12
- data/ext/glut/glut.c +37 -80
- data/ext/glut/mkrf_conf.rb +17 -13
- data/lib/opengl.rb +29 -53
- data/test/tc_common.rb +9 -3
- data/test/tc_ext_arb.rb +397 -3
- data/test/tc_ext_ati.rb +33 -0
- data/test/tc_ext_ext.rb +479 -2
- data/test/tc_ext_gremedy.rb +36 -0
- data/test/tc_ext_nv.rb +357 -0
- data/test/tc_func_10_11.rb +93 -67
- data/test/tc_func_12.rb +11 -11
- data/test/tc_func_13.rb +38 -18
- data/test/tc_func_14.rb +2 -2
- data/test/tc_func_15.rb +10 -10
- data/test/tc_func_20.rb +20 -20
- data/test/tc_func_21.rb +53 -22
- data/test/tc_glu.rb +9 -4
- data/test/tc_misc.rb +15 -2
- metadata +22 -8
- data/doc/extensions.txt +0 -361
- data/examples/RedBook/aaindex.rb +0 -97
- data/examples/misc/smooth.rb +0 -42
- data/examples/misc/test.rb +0 -65
data/test/tc_func_12.rb
CHANGED
|
@@ -98,19 +98,19 @@ class Test_12 < Test::Unit::TestCase
|
|
|
98
98
|
assert_equal(glGetConvolutionFilter(GL_CONVOLUTION_2D, GL_RGB, GL_FLOAT),cf)
|
|
99
99
|
|
|
100
100
|
glConvolutionParameterf(GL_CONVOLUTION_1D,GL_CONVOLUTION_BORDER_MODE,GL_CONSTANT_BORDER)
|
|
101
|
-
assert_equal(glGetConvolutionParameterfv(GL_CONVOLUTION_1D,GL_CONVOLUTION_BORDER_MODE),
|
|
101
|
+
assert_equal(glGetConvolutionParameterfv(GL_CONVOLUTION_1D,GL_CONVOLUTION_BORDER_MODE),GL_CONSTANT_BORDER)
|
|
102
102
|
|
|
103
103
|
glConvolutionParameterf(GL_CONVOLUTION_1D,GL_CONVOLUTION_BORDER_MODE,GL_REPLICATE_BORDER)
|
|
104
|
-
assert_equal(glGetConvolutionParameterfv(GL_CONVOLUTION_1D,GL_CONVOLUTION_BORDER_MODE),
|
|
104
|
+
assert_equal(glGetConvolutionParameterfv(GL_CONVOLUTION_1D,GL_CONVOLUTION_BORDER_MODE),GL_REPLICATE_BORDER)
|
|
105
105
|
|
|
106
106
|
glConvolutionParameterfv(GL_CONVOLUTION_1D,GL_CONVOLUTION_BORDER_MODE,[GL_CONSTANT_BORDER])
|
|
107
|
-
assert_equal(glGetConvolutionParameterfv(GL_CONVOLUTION_1D,GL_CONVOLUTION_BORDER_MODE),
|
|
107
|
+
assert_equal(glGetConvolutionParameterfv(GL_CONVOLUTION_1D,GL_CONVOLUTION_BORDER_MODE),GL_CONSTANT_BORDER)
|
|
108
108
|
|
|
109
109
|
glConvolutionParameteri(GL_CONVOLUTION_1D,GL_CONVOLUTION_BORDER_MODE,GL_REPLICATE_BORDER)
|
|
110
|
-
assert_equal(glGetConvolutionParameteriv(GL_CONVOLUTION_1D,GL_CONVOLUTION_BORDER_MODE),
|
|
110
|
+
assert_equal(glGetConvolutionParameteriv(GL_CONVOLUTION_1D,GL_CONVOLUTION_BORDER_MODE),GL_REPLICATE_BORDER)
|
|
111
111
|
|
|
112
112
|
glConvolutionParameteriv(GL_CONVOLUTION_1D,GL_CONVOLUTION_BORDER_MODE,[GL_CONSTANT_BORDER])
|
|
113
|
-
assert_equal(glGetConvolutionParameteriv(GL_CONVOLUTION_1D,GL_CONVOLUTION_BORDER_MODE),
|
|
113
|
+
assert_equal(glGetConvolutionParameteriv(GL_CONVOLUTION_1D,GL_CONVOLUTION_BORDER_MODE),GL_CONSTANT_BORDER)
|
|
114
114
|
end
|
|
115
115
|
|
|
116
116
|
def test_separablefilter
|
|
@@ -128,9 +128,9 @@ class Test_12 < Test::Unit::TestCase
|
|
|
128
128
|
glEnable(GL_HISTOGRAM)
|
|
129
129
|
|
|
130
130
|
glHistogram(GL_HISTOGRAM,1,GL_RGB8,GL_FALSE)
|
|
131
|
-
assert_equal(glGetHistogramParameterfv(GL_HISTOGRAM,GL_HISTOGRAM_WIDTH),
|
|
132
|
-
assert_equal(glGetHistogramParameteriv(GL_HISTOGRAM,GL_HISTOGRAM_FORMAT),
|
|
133
|
-
assert_equal(glGetHistogramParameteriv(GL_HISTOGRAM,GL_HISTOGRAM_SINK),
|
|
131
|
+
assert_equal(glGetHistogramParameterfv(GL_HISTOGRAM,GL_HISTOGRAM_WIDTH),1)
|
|
132
|
+
assert_equal(glGetHistogramParameteriv(GL_HISTOGRAM,GL_HISTOGRAM_FORMAT),GL_RGB8)
|
|
133
|
+
assert_equal(glGetHistogramParameteriv(GL_HISTOGRAM,GL_HISTOGRAM_SINK),GL_FALSE)
|
|
134
134
|
|
|
135
135
|
glDrawPixels(2,1,GL_RGB,GL_FLOAT,[1,1,1,1,1,1].pack("f*"))
|
|
136
136
|
h = glGetHistogram(GL_HISTOGRAM,GL_FALSE,GL_RGB,GL_FLOAT)
|
|
@@ -148,9 +148,9 @@ class Test_12 < Test::Unit::TestCase
|
|
|
148
148
|
glEnable(GL_MINMAX)
|
|
149
149
|
|
|
150
150
|
glMinmax(GL_MINMAX,GL_RGB8,GL_FALSE)
|
|
151
|
-
assert_equal(glGetMinmaxParameteriv(GL_MINMAX,GL_MINMAX_FORMAT),
|
|
152
|
-
assert_equal(glGetMinmaxParameterfv(GL_MINMAX,GL_MINMAX_FORMAT),
|
|
153
|
-
assert_equal(
|
|
151
|
+
assert_equal(glGetMinmaxParameteriv(GL_MINMAX,GL_MINMAX_FORMAT),GL_RGB8)
|
|
152
|
+
assert_equal(glGetMinmaxParameterfv(GL_MINMAX,GL_MINMAX_FORMAT),GL_RGB8)
|
|
153
|
+
assert_equal(glGetMinmaxParameteriv(GL_MINMAX,GL_MINMAX_SINK),GL_FALSE)
|
|
154
154
|
|
|
155
155
|
glDrawPixels(2,1,GL_RGB,GL_FLOAT,[0,0,0,1,1,1].pack("f*"))
|
|
156
156
|
mm = glGetMinmax(GL_MINMAX,GL_FALSE,GL_RGB,GL_FLOAT)
|
data/test/tc_func_13.rb
CHANGED
|
@@ -28,10 +28,10 @@ class Test_13 < Test::Unit::TestCase
|
|
|
28
28
|
return if not supported?(1.3)
|
|
29
29
|
glSampleCoverage(0.0,GL_TRUE)
|
|
30
30
|
assert_equal(glGetDoublev(GL_SAMPLE_COVERAGE_VALUE),0.0)
|
|
31
|
-
assert_equal(
|
|
31
|
+
assert_equal(glGetBooleanv(GL_SAMPLE_COVERAGE_INVERT),GL_TRUE)
|
|
32
32
|
glSampleCoverage(1.0,GL_FALSE)
|
|
33
33
|
assert_equal(glGetDoublev(GL_SAMPLE_COVERAGE_VALUE),1.0)
|
|
34
|
-
assert_equal(
|
|
34
|
+
assert_equal(glGetBooleanv(GL_SAMPLE_COVERAGE_INVERT),GL_FALSE)
|
|
35
35
|
end
|
|
36
36
|
|
|
37
37
|
def test_multitexture
|
|
@@ -68,6 +68,26 @@ class Test_13 < Test::Unit::TestCase
|
|
|
68
68
|
glLoadIdentity()
|
|
69
69
|
glMultTransposeMatrixd(m_b)
|
|
70
70
|
assert_equal(glGetDoublev(GL_TRANSPOSE_MODELVIEW_MATRIX), m_b)
|
|
71
|
+
|
|
72
|
+
# 2
|
|
73
|
+
m = Matrix.rows([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])
|
|
74
|
+
glMatrixMode(GL_MODELVIEW)
|
|
75
|
+
glLoadTransposeMatrixf(m)
|
|
76
|
+
assert_equal(glGetDoublev(GL_MODELVIEW_MATRIX), m.to_a.transpose)
|
|
77
|
+
glLoadIdentity()
|
|
78
|
+
glLoadTransposeMatrixd(m)
|
|
79
|
+
assert_equal(glGetDoublev(GL_MODELVIEW_MATRIX), m.to_a.transpose)
|
|
80
|
+
glLoadIdentity()
|
|
81
|
+
glMultTransposeMatrixf(m)
|
|
82
|
+
assert_equal(glGetDoublev(GL_MODELVIEW_MATRIX), m.to_a.transpose)
|
|
83
|
+
glLoadIdentity()
|
|
84
|
+
glMultTransposeMatrixd(m)
|
|
85
|
+
assert_equal(glGetDoublev(GL_MODELVIEW_MATRIX), m.to_a.transpose)
|
|
86
|
+
|
|
87
|
+
assert_raise ArgumentError do glLoadTransposeMatrixf([1,2,3,4]) end
|
|
88
|
+
assert_raise ArgumentError do glLoadTransposeMatrixd([1,2,3,4]) end
|
|
89
|
+
assert_raise ArgumentError do glMultTransposeMatrixf([1,2,3,4]) end
|
|
90
|
+
assert_raise ArgumentError do glMultTransposeMatrixd([1,2,3,4]) end
|
|
71
91
|
end
|
|
72
92
|
|
|
73
93
|
def test_texturecompression
|
|
@@ -86,18 +106,18 @@ class Test_13 < Test::Unit::TestCase
|
|
|
86
106
|
# Note: 1D and 3D compressed textures are not supported by S3TC/DXTn, and usually not supported at all
|
|
87
107
|
|
|
88
108
|
# 1D
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
assert(err == 0 || err == GL_INVALID_ENUM || err == GL_INVALID_OPERATION)
|
|
92
|
-
if (err == 0)
|
|
109
|
+
begin
|
|
110
|
+
glCompressedTexImage1D(GL_TEXTURE_1D,0,GL_COMPRESSED_RGBA_S3TC_DXT5_EXT,4,0,16,image_1)
|
|
93
111
|
assert_equal(glGetCompressedTexImage(GL_TEXTURE_1D,0), image_1)
|
|
112
|
+
rescue Gl::Error => err
|
|
113
|
+
assert(err.id == GL_INVALID_ENUM || err.id == GL_INVALID_OPERATION)
|
|
94
114
|
end
|
|
95
115
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
assert(err == 0 || err == GL_INVALID_ENUM || err == GL_INVALID_OPERATION)
|
|
99
|
-
if (err == 0)
|
|
116
|
+
begin
|
|
117
|
+
glCompressedTexSubImage1D(GL_TEXTURE_1D,0,0,4,GL_COMPRESSED_RGBA_S3TC_DXT5_EXT,16,image_2)
|
|
100
118
|
assert_equal(glGetCompressedTexImage(GL_TEXTURE_1D,0), image_2)
|
|
119
|
+
rescue Gl::Error => err
|
|
120
|
+
assert(err.id == GL_INVALID_ENUM || err.id == GL_INVALID_OPERATION)
|
|
101
121
|
end
|
|
102
122
|
|
|
103
123
|
# 2D
|
|
@@ -108,18 +128,18 @@ class Test_13 < Test::Unit::TestCase
|
|
|
108
128
|
assert_equal(glGetCompressedTexImage(GL_TEXTURE_2D,0), image_2)
|
|
109
129
|
|
|
110
130
|
# 3D
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
assert(err == 0 || err == GL_INVALID_ENUM || err == GL_INVALID_OPERATION)
|
|
114
|
-
if (err == 0)
|
|
131
|
+
begin
|
|
132
|
+
glCompressedTexImage3D(GL_TEXTURE_3D,0,GL_COMPRESSED_RGBA_S3TC_DXT5_EXT,2,2,1,0,16,image_1)
|
|
115
133
|
assert_equal(glGetCompressedTexImage(GL_TEXTURE_3D,0), image_1)
|
|
134
|
+
rescue Gl::Error => err
|
|
135
|
+
assert(err.id == GL_INVALID_ENUM || err.id == GL_INVALID_OPERATION)
|
|
116
136
|
end
|
|
117
137
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
assert(err == 0 || err == GL_INVALID_ENUM || err == GL_INVALID_OPERATION)
|
|
121
|
-
if (err == 0)
|
|
138
|
+
begin
|
|
139
|
+
glCompressedTexSubImage3D(GL_TEXTURE_3D,0, 0,0,0, 2,2,1, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, 16, image_2)
|
|
122
140
|
assert_equal(glGetCompressedTexImage(GL_TEXTURE_3D,0), image_2)
|
|
141
|
+
rescue Gl::Error => err
|
|
142
|
+
assert(err.id == GL_INVALID_ENUM || err.id == GL_INVALID_OPERATION)
|
|
123
143
|
end
|
|
124
144
|
|
|
125
145
|
glDeleteTextures(textures)
|
data/test/tc_func_14.rb
CHANGED
|
@@ -128,11 +128,11 @@ class Test_14 < Test::Unit::TestCase
|
|
|
128
128
|
assert(approx_equal(glGetDoublev(GL_CURRENT_SECONDARY_COLOR),[0.0,1.0,0.0,1.0]))
|
|
129
129
|
glSecondaryColor3d(1.0,0.0,1.0)
|
|
130
130
|
assert(approx_equal(glGetDoublev(GL_CURRENT_SECONDARY_COLOR),[1.0,0.0,1.0,1.0]))
|
|
131
|
-
glSecondaryColor3dv(0.0,1.0,0.0)
|
|
131
|
+
glSecondaryColor3dv([0.0,1.0,0.0])
|
|
132
132
|
assert(approx_equal(glGetDoublev(GL_CURRENT_SECONDARY_COLOR),[0.0,1.0,0.0,1.0]))
|
|
133
133
|
glSecondaryColor3f(1.0,0.0,1.0)
|
|
134
134
|
assert(approx_equal(glGetDoublev(GL_CURRENT_SECONDARY_COLOR),[1.0,0.0,1.0,1.0]))
|
|
135
|
-
glSecondaryColor3fv(0.0,1.0,0.0)
|
|
135
|
+
glSecondaryColor3fv([0.0,1.0,0.0])
|
|
136
136
|
assert(approx_equal(glGetDoublev(GL_CURRENT_SECONDARY_COLOR),[0.0,1.0,0.0,1.0]))
|
|
137
137
|
glSecondaryColor3i(2**31-1,0,2**31-1)
|
|
138
138
|
assert(approx_equal(glGetDoublev(GL_CURRENT_SECONDARY_COLOR),[1.0,0.0,1.0,1.0]))
|
data/test/tc_func_15.rb
CHANGED
|
@@ -30,7 +30,7 @@ class Test_15 < Test::Unit::TestCase
|
|
|
30
30
|
assert_equal(queries.size,2)
|
|
31
31
|
|
|
32
32
|
glBeginQuery(GL_SAMPLES_PASSED,queries[1])
|
|
33
|
-
assert_equal(glIsQuery(queries[1]),
|
|
33
|
+
assert_equal(glIsQuery(queries[1]),true)
|
|
34
34
|
|
|
35
35
|
glBegin(GL_TRIANGLES)
|
|
36
36
|
glVertex2i(0,0)
|
|
@@ -38,27 +38,27 @@ class Test_15 < Test::Unit::TestCase
|
|
|
38
38
|
glVertex2i(1,1)
|
|
39
39
|
glEnd()
|
|
40
40
|
|
|
41
|
-
assert_equal(glGetQueryiv(GL_SAMPLES_PASSED,GL_CURRENT_QUERY),
|
|
41
|
+
assert_equal(glGetQueryiv(GL_SAMPLES_PASSED,GL_CURRENT_QUERY),queries[1])
|
|
42
42
|
|
|
43
43
|
glEndQuery(GL_SAMPLES_PASSED)
|
|
44
44
|
|
|
45
45
|
r = glGetQueryObjectiv(queries[1],GL_QUERY_RESULT_AVAILABLE)
|
|
46
|
-
assert((r==
|
|
46
|
+
assert((r==GL_TRUE || r==GL_FALSE))
|
|
47
47
|
|
|
48
|
-
if (r==
|
|
48
|
+
if (r==GL_TRUE)
|
|
49
49
|
assert(glGetQueryObjectiv(queries[1],GL_QUERY_RESULT)[0] > 0)
|
|
50
50
|
assert(glGetQueryObjectuiv(queries[1],GL_QUERY_RESULT)[0] > 0)
|
|
51
51
|
end
|
|
52
52
|
|
|
53
53
|
glDeleteQueries(queries)
|
|
54
|
-
assert_equal(glIsQuery(queries[1]),
|
|
54
|
+
assert_equal(glIsQuery(queries[1]),false)
|
|
55
55
|
end
|
|
56
56
|
|
|
57
57
|
def test_buffers
|
|
58
58
|
return if not supported?(1.5)
|
|
59
59
|
buffers = glGenBuffers(2)
|
|
60
60
|
glBindBuffer(GL_ARRAY_BUFFER,buffers[0])
|
|
61
|
-
assert_equal(glIsBuffer(buffers[0]),
|
|
61
|
+
assert_equal(glIsBuffer(buffers[0]),true)
|
|
62
62
|
|
|
63
63
|
data = [0,1,2,3].pack("C*")
|
|
64
64
|
data2 = [4,5,6,7].pack("C*")
|
|
@@ -66,16 +66,16 @@ class Test_15 < Test::Unit::TestCase
|
|
|
66
66
|
glBufferData(GL_ARRAY_BUFFER,4,data,GL_STREAM_READ)
|
|
67
67
|
assert_equal(glGetBufferSubData(GL_ARRAY_BUFFER,0,4),data)
|
|
68
68
|
|
|
69
|
-
assert_equal(glGetBufferParameteriv(GL_ARRAY_BUFFER,GL_BUFFER_USAGE),
|
|
69
|
+
assert_equal(glGetBufferParameteriv(GL_ARRAY_BUFFER,GL_BUFFER_USAGE),GL_STREAM_READ)
|
|
70
70
|
|
|
71
71
|
glBufferSubData(GL_ARRAY_BUFFER,0,4,data2)
|
|
72
72
|
assert_equal(glGetBufferSubData(GL_ARRAY_BUFFER,0,4),data2)
|
|
73
73
|
|
|
74
74
|
assert_equal(glMapBuffer(GL_ARRAY_BUFFER,GL_READ_ONLY),data2)
|
|
75
75
|
r = glUnmapBuffer(GL_ARRAY_BUFFER)
|
|
76
|
-
assert(r ==
|
|
76
|
+
assert(r == true || r == false)
|
|
77
77
|
glDeleteBuffers(buffers)
|
|
78
|
-
assert_equal(glIsBuffer(buffers[0]),
|
|
78
|
+
assert_equal(glIsBuffer(buffers[0]),false)
|
|
79
79
|
|
|
80
80
|
# FIXME: GetBufferPointerv not yet implemented
|
|
81
81
|
end
|
|
@@ -191,7 +191,7 @@ class Test_15 < Test::Unit::TestCase
|
|
|
191
191
|
assert_equal(glGetDoublev(GL_CURRENT_NORMAL),[0,1,0])
|
|
192
192
|
assert_equal(glGetDoublev(GL_CURRENT_COLOR),[1,0,1,0])
|
|
193
193
|
assert_equal(glGetDoublev(GL_CURRENT_TEXTURE_COORDS),[1,0,1,0])
|
|
194
|
-
assert_equal(
|
|
194
|
+
assert_equal(glGetBooleanv(GL_EDGE_FLAG),GL_FALSE)
|
|
195
195
|
|
|
196
196
|
glDisable(GL_EDGE_FLAG_ARRAY)
|
|
197
197
|
glDisable(GL_TEXTURE_COORD_ARRAY)
|
data/test/tc_func_20.rb
CHANGED
|
@@ -172,10 +172,10 @@ class Test_20 < Test::Unit::TestCase
|
|
|
172
172
|
vertex_shader_source = "void main() { gl_Position = ftransform();}"
|
|
173
173
|
|
|
174
174
|
program = glCreateProgram()
|
|
175
|
-
assert_equal(glIsProgram(program),
|
|
175
|
+
assert_equal(glIsProgram(program),true)
|
|
176
176
|
|
|
177
177
|
vs = glCreateShader(GL_VERTEX_SHADER)
|
|
178
|
-
assert_equal(glIsShader(vs),
|
|
178
|
+
assert_equal(glIsShader(vs),true)
|
|
179
179
|
|
|
180
180
|
glShaderSource(vs,vertex_shader_source)
|
|
181
181
|
assert_equal(glGetShaderSource(vs),vertex_shader_source)
|
|
@@ -188,7 +188,7 @@ class Test_20 < Test::Unit::TestCase
|
|
|
188
188
|
assert_equal(vslog.class,String)
|
|
189
189
|
|
|
190
190
|
glAttachShader(program,vs)
|
|
191
|
-
assert_equal(glGetAttachedShaders(program),
|
|
191
|
+
assert_equal(glGetAttachedShaders(program),vs)
|
|
192
192
|
glDetachShader(program,vs)
|
|
193
193
|
assert_equal(glGetAttachedShaders(program),nil)
|
|
194
194
|
glAttachShader(program,vs)
|
|
@@ -208,10 +208,10 @@ class Test_20 < Test::Unit::TestCase
|
|
|
208
208
|
|
|
209
209
|
glDetachShader(program,vs)
|
|
210
210
|
glDeleteShader(vs)
|
|
211
|
-
assert_equal(glIsShader(vs),
|
|
211
|
+
assert_equal(glIsShader(vs),false)
|
|
212
212
|
|
|
213
213
|
glDeleteProgram(program)
|
|
214
|
-
assert_equal(glIsProgram(program),
|
|
214
|
+
assert_equal(glIsProgram(program),false)
|
|
215
215
|
end
|
|
216
216
|
|
|
217
217
|
def test_shaders_2
|
|
@@ -248,7 +248,7 @@ class Test_20 < Test::Unit::TestCase
|
|
|
248
248
|
|
|
249
249
|
# f
|
|
250
250
|
glUniform1f(tv1l,2.0)
|
|
251
|
-
assert_equal(glGetUniformfv(program,tv1l),
|
|
251
|
+
assert_equal(glGetUniformfv(program,tv1l),2.0)
|
|
252
252
|
glUniform2f(tv2l,2.0,2.0)
|
|
253
253
|
assert_equal(glGetUniformfv(program,tv2l),[2.0,2.0])
|
|
254
254
|
glUniform3f(tv3l,2.0,2.0,2.0)
|
|
@@ -257,7 +257,7 @@ class Test_20 < Test::Unit::TestCase
|
|
|
257
257
|
assert_equal(glGetUniformfv(program,tv4l),[2.0,2.0,2.0,2.0])
|
|
258
258
|
# i
|
|
259
259
|
glUniform1i(tv1il,3)
|
|
260
|
-
assert_equal(glGetUniformiv(program,tv1il),
|
|
260
|
+
assert_equal(glGetUniformiv(program,tv1il),3)
|
|
261
261
|
glUniform2i(tv2il,3,3)
|
|
262
262
|
assert_equal(glGetUniformiv(program,tv2il),[3,3])
|
|
263
263
|
glUniform3i(tv3il,3,3,3)
|
|
@@ -265,22 +265,22 @@ class Test_20 < Test::Unit::TestCase
|
|
|
265
265
|
glUniform4i(tv4il,3,3,3,3)
|
|
266
266
|
assert_equal(glGetUniformiv(program,tv4il),[3,3,3,3])
|
|
267
267
|
# fv
|
|
268
|
-
glUniform1fv(tv1l,
|
|
269
|
-
assert_equal(glGetUniformfv(program,tv1l),
|
|
270
|
-
glUniform2fv(tv2l,
|
|
268
|
+
glUniform1fv(tv1l,[3.0])
|
|
269
|
+
assert_equal(glGetUniformfv(program,tv1l),3.0)
|
|
270
|
+
glUniform2fv(tv2l,[3.0,3.0])
|
|
271
271
|
assert_equal(glGetUniformfv(program,tv2l),[3.0,3.0])
|
|
272
|
-
glUniform3fv(tv3l,
|
|
272
|
+
glUniform3fv(tv3l,[3.0,3.0,3.0])
|
|
273
273
|
assert_equal(glGetUniformfv(program,tv3l),[3.0,3.0,3.0])
|
|
274
|
-
glUniform4fv(tv4l,
|
|
274
|
+
glUniform4fv(tv4l,[3.0,3.0,3.0,3.0])
|
|
275
275
|
assert_equal(glGetUniformfv(program,tv4l),[3.0,3.0,3.0,3.0])
|
|
276
276
|
# iv
|
|
277
|
-
glUniform1iv(tv1il,
|
|
278
|
-
assert_equal(glGetUniformiv(program,tv1il),
|
|
279
|
-
glUniform2iv(tv2il,
|
|
277
|
+
glUniform1iv(tv1il,[2])
|
|
278
|
+
assert_equal(glGetUniformiv(program,tv1il),2)
|
|
279
|
+
glUniform2iv(tv2il,[2,2])
|
|
280
280
|
assert_equal(glGetUniformiv(program,tv2il),[2,2])
|
|
281
|
-
glUniform3iv(tv3il,
|
|
281
|
+
glUniform3iv(tv3il,[2,2,2])
|
|
282
282
|
assert_equal(glGetUniformiv(program,tv3il),[2,2,2])
|
|
283
|
-
glUniform4iv(tv4il,
|
|
283
|
+
glUniform4iv(tv4il,[2,2,2,2])
|
|
284
284
|
assert_equal(glGetUniformiv(program,tv4il),[2,2,2,2])
|
|
285
285
|
|
|
286
286
|
glDeleteShader(vs)
|
|
@@ -309,13 +309,13 @@ class Test_20 < Test::Unit::TestCase
|
|
|
309
309
|
assert((tm3l = glGetUniformLocation(program,"testmat3"))>=0)
|
|
310
310
|
assert((tm4l = glGetUniformLocation(program,"testmat4"))>=0)
|
|
311
311
|
|
|
312
|
-
glUniformMatrix2fv(tm2l,
|
|
312
|
+
glUniformMatrix2fv(tm2l, GL_TRUE, [0,1, 1,0])
|
|
313
313
|
assert_equal(glGetUniformfv(program,tm2l),[0,1,1,0])
|
|
314
314
|
|
|
315
|
-
glUniformMatrix3fv(tm3l,
|
|
315
|
+
glUniformMatrix3fv(tm3l, GL_TRUE, [0,1,0, 1,0,1, 0,1,0])
|
|
316
316
|
assert_equal(glGetUniformfv(program,tm3l),[0,1,0, 1,0,1, 0,1,0])
|
|
317
317
|
|
|
318
|
-
glUniformMatrix4fv(tm4l,
|
|
318
|
+
glUniformMatrix4fv(tm4l, GL_TRUE, [0,1,0,1, 1,0,1,0, 0,1,0,1, 1,0,1,0])
|
|
319
319
|
assert_equal(glGetUniformfv(program,tm4l),[0,1,0,1, 1,0,1,0, 0,1,0,1, 1,0,1,0])
|
|
320
320
|
end
|
|
321
321
|
|
data/test/tc_func_21.rb
CHANGED
|
@@ -49,20 +49,51 @@ class Test_21 < Test::Unit::TestCase
|
|
|
49
49
|
assert((tm34l = glGetUniformLocation(program,"testmat34"))>=0)
|
|
50
50
|
assert((tm43l = glGetUniformLocation(program,"testmat43"))>=0)
|
|
51
51
|
|
|
52
|
-
glUniformMatrix2x3fv(tm23l,
|
|
52
|
+
glUniformMatrix2x3fv(tm23l, GL_FALSE, [0,1, 1,0, 0,1])
|
|
53
53
|
assert_equal(glGetUniformfv(program,tm23l),[0,1, 1,0, 0,1])
|
|
54
|
-
glUniformMatrix3x2fv(tm32l,
|
|
54
|
+
glUniformMatrix3x2fv(tm32l, GL_FALSE, [1,0, 0,1, 1,0])
|
|
55
55
|
assert_equal(glGetUniformfv(program,tm32l),[1,0, 0,1, 1,0])
|
|
56
56
|
|
|
57
|
-
glUniformMatrix2x4fv(tm24l,
|
|
57
|
+
glUniformMatrix2x4fv(tm24l, GL_FALSE, [0,1, 1,0, 0,1, 1,0])
|
|
58
58
|
assert_equal(glGetUniformfv(program,tm24l),[0,1, 1,0, 0,1, 1,0])
|
|
59
|
-
glUniformMatrix4x2fv(tm42l,
|
|
59
|
+
glUniformMatrix4x2fv(tm42l, GL_FALSE, [1,0, 0,1, 1,0, 0,1])
|
|
60
60
|
assert_equal(glGetUniformfv(program,tm42l),[1,0, 0,1, 1,0, 0,1])
|
|
61
61
|
|
|
62
|
-
glUniformMatrix3x4fv(tm34l,
|
|
62
|
+
glUniformMatrix3x4fv(tm34l, GL_FALSE, [0,1,1, 1,0,1, 0,1,1, 1,0,1])
|
|
63
63
|
assert_equal(glGetUniformfv(program,tm34l),[0,1,1, 1,0,1, 0,1,1, 1,0,1])
|
|
64
|
-
glUniformMatrix4x3fv(tm43l,
|
|
64
|
+
glUniformMatrix4x3fv(tm43l, GL_FALSE, [1,0,0, 0,1,0, 1,0,0, 0,1,0])
|
|
65
65
|
assert_equal(glGetUniformfv(program,tm43l),[1,0,0, 0,1,0, 1,0,0, 0,1,0])
|
|
66
|
+
|
|
67
|
+
# 2
|
|
68
|
+
m = Matrix.rows([[0,1],[1,0],[0,1]])
|
|
69
|
+
glUniformMatrix2x3fv(tm23l, GL_FALSE, m)
|
|
70
|
+
assert_equal(glGetUniformfv(program,tm23l),[0,1, 1,0, 0,1])
|
|
71
|
+
m = Matrix.rows([[0,1,1],[0,0,1]])
|
|
72
|
+
glUniformMatrix3x2fv(tm32l, GL_FALSE, m)
|
|
73
|
+
assert_equal(glGetUniformfv(program,tm32l),[0,1,1, 0,0,1])
|
|
74
|
+
|
|
75
|
+
m = Matrix.rows([[0,1],[1,0],[0,1],[1,0]])
|
|
76
|
+
glUniformMatrix2x4fv(tm24l, GL_FALSE, m)
|
|
77
|
+
assert_equal(glGetUniformfv(program,tm24l),[0,1, 1,0, 0,1, 1,0])
|
|
78
|
+
m = Matrix.rows([[0,1,1,1],[0,0,1,1]])
|
|
79
|
+
glUniformMatrix4x2fv(tm42l, GL_FALSE, m)
|
|
80
|
+
assert_equal(glGetUniformfv(program,tm42l),[0,1,1,1, 0,0,1,1])
|
|
81
|
+
|
|
82
|
+
m = Matrix.rows([[0,1,0],[1,0,1],[0,1,0],[1,0,1]])
|
|
83
|
+
glUniformMatrix3x4fv(tm34l, GL_FALSE, m)
|
|
84
|
+
assert_equal(glGetUniformfv(program,tm34l),[0,1,0, 1,0,1, 0,1,0, 1,0,1])
|
|
85
|
+
|
|
86
|
+
m = Matrix.rows([[0,1,1,1],[0,0,1,1],[1,1,0,0]])
|
|
87
|
+
glUniformMatrix4x3fv(tm43l, GL_FALSE, m)
|
|
88
|
+
assert_equal(glGetUniformfv(program,tm43l),[0,1,1,1, 0,0,1,1, 1,1,0,0])
|
|
89
|
+
|
|
90
|
+
# 3
|
|
91
|
+
assert_raise ArgumentError do glUniformMatrix2x3fv(tm23l, GL_FALSE, [1,2,3,4]) end
|
|
92
|
+
assert_raise ArgumentError do glUniformMatrix3x2fv(tm32l, GL_FALSE, [1,2,3,4]) end
|
|
93
|
+
assert_raise ArgumentError do glUniformMatrix2x4fv(tm24l, GL_FALSE, [1,2,3,4]) end
|
|
94
|
+
assert_raise ArgumentError do glUniformMatrix4x2fv(tm42l, GL_FALSE, [1,2,3,4]) end
|
|
95
|
+
assert_raise ArgumentError do glUniformMatrix3x4fv(tm34l, GL_FALSE, [1,2,3,4]) end
|
|
96
|
+
assert_raise ArgumentError do glUniformMatrix4x3fv(tm43l, GL_FALSE, [1,2,3,4]) end
|
|
66
97
|
end
|
|
67
98
|
|
|
68
99
|
def test_pixelunpack_bitmap
|
|
@@ -186,19 +217,19 @@ class Test_21 < Test::Unit::TestCase
|
|
|
186
217
|
|
|
187
218
|
# 1D
|
|
188
219
|
glBindBuffer(GL_PIXEL_UNPACK_BUFFER,buffers[0])
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
assert(err == 0 || err == GL_INVALID_ENUM || err == GL_INVALID_OPERATION)
|
|
192
|
-
if (err == 0)
|
|
220
|
+
begin
|
|
221
|
+
glCompressedTexImage1D(GL_TEXTURE_1D,0,GL_COMPRESSED_RGBA_S3TC_DXT5_EXT,4,0,16,0)
|
|
193
222
|
assert_equal(glGetCompressedTexImage(GL_TEXTURE_1D,0), image_1)
|
|
223
|
+
rescue Gl::Error => err
|
|
224
|
+
assert(err.id == GL_INVALID_ENUM || err.id == GL_INVALID_OPERATION)
|
|
194
225
|
end
|
|
195
226
|
|
|
196
227
|
glBindBuffer(GL_PIXEL_UNPACK_BUFFER,buffers[1])
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
assert(err == 0 || err == GL_INVALID_ENUM || err == GL_INVALID_OPERATION)
|
|
200
|
-
if (err == 0)
|
|
228
|
+
begin
|
|
229
|
+
glCompressedTexSubImage1D(GL_TEXTURE_1D,0,0,4,GL_COMPRESSED_RGBA_S3TC_DXT5_EXT,16,0)
|
|
201
230
|
assert_equal(glGetCompressedTexImage(GL_TEXTURE_1D,0), image_2)
|
|
231
|
+
rescue Gl::Error => err
|
|
232
|
+
assert(err.id == GL_INVALID_ENUM || err.id == GL_INVALID_OPERATION)
|
|
202
233
|
end
|
|
203
234
|
|
|
204
235
|
# 2D
|
|
@@ -212,19 +243,19 @@ class Test_21 < Test::Unit::TestCase
|
|
|
212
243
|
|
|
213
244
|
# 3D
|
|
214
245
|
glBindBuffer(GL_PIXEL_UNPACK_BUFFER,buffers[0])
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
assert(err == 0 || err == GL_INVALID_ENUM || err == GL_INVALID_OPERATION)
|
|
218
|
-
if (err == 0)
|
|
246
|
+
begin
|
|
247
|
+
glCompressedTexImage3D(GL_TEXTURE_3D,0,GL_COMPRESSED_RGBA_S3TC_DXT5_EXT,2,2,1,0,16,0)
|
|
219
248
|
assert_equal(glGetCompressedTexImage(GL_TEXTURE_3D,0), image_1)
|
|
249
|
+
rescue Gl::Error => err
|
|
250
|
+
assert(err.id == GL_INVALID_ENUM || err.id == GL_INVALID_OPERATION)
|
|
220
251
|
end
|
|
221
252
|
|
|
222
253
|
glBindBuffer(GL_PIXEL_UNPACK_BUFFER,buffers[1])
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
assert(err == 0 || err == GL_INVALID_ENUM || err == GL_INVALID_OPERATION)
|
|
226
|
-
if (err == 0)
|
|
254
|
+
begin
|
|
255
|
+
glCompressedTexSubImage3D(GL_TEXTURE_3D,0, 0,0,0, 2,2,1, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, 16, 0)
|
|
227
256
|
assert_equal(glGetCompressedTexImage(GL_TEXTURE_3D,0), image_2)
|
|
257
|
+
rescue Gl::Error => err
|
|
258
|
+
assert(err.id == GL_INVALID_ENUM || err.id == GL_INVALID_OPERATION)
|
|
228
259
|
end
|
|
229
260
|
|
|
230
261
|
glDeleteBuffers(buffers)
|
data/test/tc_glu.rb
CHANGED
|
@@ -97,10 +97,12 @@ class Test_GLU < Test::Unit::TestCase
|
|
|
97
97
|
assert_equal(pos,[$window_size,$window_size,1])
|
|
98
98
|
|
|
99
99
|
mp = glGetDoublev(GL_PROJECTION_MATRIX)
|
|
100
|
-
mm = glGetDoublev(GL_MODELVIEW_MATRIX)
|
|
100
|
+
mm = Matrix.rows(glGetDoublev(GL_MODELVIEW_MATRIX))
|
|
101
101
|
view = glGetDoublev(GL_VIEWPORT)
|
|
102
102
|
pos = gluProject(1,1,1,mp,mm,view)
|
|
103
103
|
assert_equal(pos,[$window_size,$window_size,1])
|
|
104
|
+
|
|
105
|
+
assert_raise ArgumentError do pos = gluProject(1,1,1,mp,[1,2,3,4],view) end
|
|
104
106
|
end
|
|
105
107
|
|
|
106
108
|
def test_gluunproject
|
|
@@ -108,10 +110,11 @@ class Test_GLU < Test::Unit::TestCase
|
|
|
108
110
|
assert_equal(pos,[1,1,1])
|
|
109
111
|
|
|
110
112
|
mp = glGetDoublev(GL_PROJECTION_MATRIX)
|
|
111
|
-
mm = glGetDoublev(GL_MODELVIEW_MATRIX)
|
|
113
|
+
mm = Matrix.rows(glGetDoublev(GL_MODELVIEW_MATRIX))
|
|
112
114
|
view = glGetDoublev(GL_VIEWPORT)
|
|
113
115
|
pos = gluUnProject($window_size,$window_size,1,mp,mm,view)
|
|
114
116
|
assert_equal(pos,[1,1,1])
|
|
117
|
+
assert_raise ArgumentError do pos = gluUnProject($window_size,$window_size,1,mp,[1,2,3,4],view) end
|
|
115
118
|
end
|
|
116
119
|
|
|
117
120
|
def test_glupickmatrix
|
|
@@ -192,14 +195,16 @@ class Test_GLU < Test::Unit::TestCase
|
|
|
192
195
|
end
|
|
193
196
|
|
|
194
197
|
m = [[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]]
|
|
198
|
+
m2 = Matrix.rows(m)
|
|
195
199
|
|
|
196
200
|
n = gluNewNurbsRenderer()
|
|
197
201
|
gluNurbsCallback(n,GLU_ERROR,n_error)
|
|
198
202
|
gluNurbsProperty(n,GLU_SAMPLING_TOLERANCE,40)
|
|
199
203
|
assert_equal(gluGetNurbsProperty(n,GLU_SAMPLING_TOLERANCE),40)
|
|
200
204
|
|
|
201
|
-
gluLoadSamplingMatrices(n,m,
|
|
202
|
-
|
|
205
|
+
gluLoadSamplingMatrices(n,m,m2,glGetIntegerv(GL_VIEWPORT))
|
|
206
|
+
assert_raise ArgumentError do gluLoadSamplingMatrices(n,m,[1,2,3,4],glGetIntegerv(GL_VIEWPORT)) end
|
|
207
|
+
|
|
203
208
|
knots = [0,0,0,0,1,1,1,1]
|
|
204
209
|
ctlpoints_curve = [[50,50,0],[400,50,0],[400,400,0],[50,400,0]]
|
|
205
210
|
|