ruby-opengl 0.50.0 → 0.60.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
|