ruby-opengl 0.33.0 → 0.40.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +42 -15
- data/doc/build_install.txt +70 -25
- data/doc/history.txt +4 -0
- data/doc/requirements_and_design.txt +2 -3
- data/doc/roadmap.txt +15 -2
- data/doc/screenshots.txt +23 -0
- data/doc/supplies/page_template.html +2 -1
- data/doc/thanks.txt +3 -0
- data/doc/tutorial.txt +5 -3
- data/examples/README +57 -7
- data/examples/legacy/COPYRIGHT +8 -0
- data/examples/{aaindex.rb → legacy/aaindex.rb} +6 -5
- data/examples/legacy/aapoly.rb +153 -0
- data/examples/legacy/aargb.rb +139 -0
- data/examples/legacy/accanti.rb +159 -0
- data/examples/legacy/accpersp.rb +216 -0
- data/examples/legacy/alpha.rb +133 -0
- data/examples/legacy/alpha3D.rb +165 -0
- data/examples/legacy/bezcurve.rb +107 -0
- data/examples/legacy/bezmesh.rb +131 -0
- data/examples/legacy/checker.rb +121 -0
- data/examples/legacy/clip.rb +104 -0
- data/examples/legacy/colormat.rb +145 -0
- data/examples/legacy/cube.rb +73 -0
- data/examples/legacy/depthcue.rb +101 -0
- data/examples/legacy/dof.rb +212 -0
- data/examples/legacy/double.rb +104 -0
- data/examples/legacy/drawf.rb +98 -0
- data/examples/legacy/feedback.rb +152 -0
- data/examples/legacy/fog.rb +172 -0
- data/examples/legacy/font-glut.rb +41 -0
- data/examples/legacy/font.rb +158 -0
- data/examples/legacy/hello.rb +75 -0
- data/examples/legacy/image.rb +145 -0
- data/examples/legacy/jitter.rb +209 -0
- data/examples/legacy/lines.rb +135 -0
- data/examples/legacy/list.rb +120 -0
- data/examples/legacy/material.rb +290 -0
- data/examples/legacy/mipmap.rb +159 -0
- data/examples/legacy/model.rb +119 -0
- data/examples/legacy/movelight.rb +140 -0
- data/examples/legacy/pickdepth.rb +180 -0
- data/examples/legacy/planet.rb +112 -0
- data/examples/legacy/quadric.rb +180 -0
- data/examples/legacy/readpixel.rb +59 -0
- data/examples/legacy/robot.rb +120 -0
- data/examples/legacy/select.rb +207 -0
- data/examples/{smooth_prev.rb → legacy/smooth.rb} +3 -2
- data/examples/legacy/stencil.rb +154 -0
- data/examples/legacy/stroke.rb +170 -0
- data/examples/legacy/surface.rb +170 -0
- data/examples/legacy/teaambient.rb +132 -0
- data/examples/legacy/teapots.rb +188 -0
- data/examples/legacy/tess.rb +222 -0
- data/examples/legacy/texbind.rb +157 -0
- data/examples/legacy/texgen.rb +171 -0
- data/examples/legacy/texturesurf.rb +128 -0
- data/examples/legacy/varray.rb +167 -0
- data/examples/legacy/wrap.rb +158 -0
- data/examples/nehe_lesson02.rb +117 -0
- data/examples/nehe_lesson03.rb +122 -0
- data/examples/nehe_lesson04.rb +133 -0
- data/examples/nehe_lesson05.rb +186 -0
- data/examples/plane.rb +1 -1
- data/examples/smooth.rb +4 -2
- data/examples/test.rb +3 -2
- data/ext/common/{rbogl.c → common.h} +99 -32
- data/ext/common/gl-enums.h +39 -1
- data/ext/gl/gl-1.0-1.1.c +350 -305
- data/ext/gl/gl-1.2.c +933 -38
- data/ext/gl/gl-1.3.c +725 -0
- data/ext/gl/gl-1.4.c +647 -0
- data/ext/gl/gl-1.5.c +362 -0
- data/ext/gl/gl-2.0.c +1632 -0
- data/ext/gl/gl-2.1.c +154 -0
- data/ext/gl/gl-enums.c +1 -2
- data/ext/gl/gl.c +58 -2
- data/ext/gl/mkrf_conf.rb +4 -1
- data/ext/glu/glu.c +5 -4
- data/ext/glu/mkrf_conf.rb +4 -1
- data/ext/glut/glut.c +7 -1
- data/ext/glut/mkrf_conf.rb +5 -0
- data/lib/gl_prev.rb +4 -3
- data/lib/glu_prev.rb +4 -3
- data/lib/glut_prev.rb +3 -3
- data/{examples/all_tests.rb → lib/opengl.rb} +9 -12
- data/test/README +5 -18
- data/test/tc_common.rb +79 -0
- data/test/tc_func_10_11.rb +1255 -0
- data/test/tc_func_12.rb +186 -0
- data/test/tc_func_13.rb +203 -0
- data/test/tc_func_14.rb +197 -0
- data/test/tc_func_15.rb +82 -0
- data/test/tc_func_20.rb +320 -0
- data/test/tc_func_21.rb +67 -0
- data/test/tc_include_gl.rb +1 -1
- data/test/{tc_opengl_namespace.rb → tc_misc.rb} +20 -20
- data/test/tc_require_gl.rb +1 -1
- metadata +99 -27
- data/ext/common/Rakefile +0 -39
- data/ext/common/rbogl.h +0 -52
- data/test/runtests.sh +0 -7
- data/test/tc_gl_vertex.rb +0 -180
data/test/tc_include_gl.rb
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
if __FILE__ == $0
|
17
17
|
# If we are being called from the command line, e.g., ruby foo.rb, then
|
18
18
|
# fixup the load path so we can find the OpenGL extension libs
|
19
|
-
$: << File.join(File.dirname(__FILE__), '..', '
|
19
|
+
$: << File.join(File.dirname(__FILE__), '..', 'lib')
|
20
20
|
end
|
21
21
|
|
22
22
|
require 'test/unit'
|
@@ -1,5 +1,5 @@
|
|
1
|
-
|
2
|
-
# Copyright (C)
|
1
|
+
#
|
2
|
+
# Copyright (C) 2007 Jan Dvorak <jan.dvorak@kraxnet.cz>
|
3
3
|
#
|
4
4
|
# This program is distributed under the terms of the MIT license.
|
5
5
|
# See the included MIT-LICENSE file for the terms of this license.
|
@@ -11,30 +11,30 @@
|
|
11
11
|
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
12
12
|
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
13
13
|
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
14
|
-
|
14
|
+
#
|
15
15
|
|
16
16
|
if __FILE__ == $0
|
17
17
|
# If we are being called from the command line, e.g., ruby foo.rb, then
|
18
18
|
# fixup the load path so we can find the OpenGL extension libs
|
19
|
-
$: << File.join(File.dirname(__FILE__), '..', '
|
19
|
+
$: << File.join(File.dirname(__FILE__), '..', 'lib')
|
20
20
|
end
|
21
21
|
|
22
22
|
require 'test/unit'
|
23
|
-
require '
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
class OpenglTest < Test::Unit::TestCase
|
23
|
+
require 'gl'
|
24
|
+
require 'glut'
|
25
|
+
include Gl
|
26
|
+
include Glut
|
28
27
|
|
29
|
-
|
30
|
-
|
31
|
-
|
28
|
+
class Test_misc < Test::Unit::TestCase
|
29
|
+
def setup
|
30
|
+
return if $glut_initialized
|
31
|
+
glut_init()
|
32
|
+
$glut_initialized = true
|
33
|
+
end
|
32
34
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
end
|
40
|
-
end
|
35
|
+
def test_isavailable
|
36
|
+
assert_equal(is_available?("glTexImage3D"),true)
|
37
|
+
assert_equal(is_available?("GL_ARB_multitexture"),true)
|
38
|
+
assert_equal(is_available?("GL_NON_EXISTENT"),false)
|
39
|
+
end
|
40
|
+
end
|
data/test/tc_require_gl.rb
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
if __FILE__ == $0
|
17
17
|
# If we are being called from the command line, e.g., ruby foo.rb, then
|
18
18
|
# fixup the load path so we can find the OpenGL extension libs
|
19
|
-
$: << File.join(File.dirname(__FILE__), '..', '
|
19
|
+
$: << File.join(File.dirname(__FILE__), '..', 'lib')
|
20
20
|
end
|
21
21
|
|
22
22
|
require 'test/unit'
|
metadata
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.9.
|
2
|
+
rubygems_version: 0.9.2
|
3
3
|
specification_version: 1
|
4
4
|
name: ruby-opengl
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.
|
7
|
-
date: 2007-
|
6
|
+
version: 0.40.0
|
7
|
+
date: 2007-07-18 00:00:00 +09:00
|
8
8
|
summary: OpenGL Interface for Ruby
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -27,51 +27,114 @@ signing_key:
|
|
27
27
|
cert_chain:
|
28
28
|
post_install_message:
|
29
29
|
authors:
|
30
|
-
-
|
30
|
+
- Alain Hoang
|
31
|
+
- Jan Dvorak
|
31
32
|
- Minh Thu Vo
|
32
33
|
files:
|
34
|
+
- lib/glut_prev.rb
|
33
35
|
- lib/gl_prev.rb
|
34
36
|
- lib/glu_prev.rb
|
35
|
-
- lib/
|
36
|
-
- ext/common
|
37
|
+
- lib/opengl.rb
|
37
38
|
- ext/gl
|
38
39
|
- ext/glu
|
39
40
|
- ext/glut
|
40
|
-
- ext/common
|
41
|
-
- ext/
|
42
|
-
- ext/common/rbogl.c
|
43
|
-
- ext/common/rbogl.h
|
41
|
+
- ext/common
|
42
|
+
- ext/gl/gl.c
|
44
43
|
- ext/gl/mkrf_conf.rb
|
44
|
+
- ext/gl/gl-2.0.c
|
45
45
|
- ext/gl/gl-1.2.c
|
46
|
-
- ext/gl/gl.c
|
46
|
+
- ext/gl/gl-2.1.c
|
47
|
+
- ext/gl/gl-1.3.c
|
48
|
+
- ext/gl/gl-1.4.c
|
49
|
+
- ext/gl/gl-1.5.c
|
47
50
|
- ext/gl/gl-enums.c
|
48
51
|
- ext/gl/gl-1.0-1.1.c
|
49
|
-
- ext/glu/mkrf_conf.rb
|
50
52
|
- ext/glu/glu.c
|
51
|
-
- ext/
|
53
|
+
- ext/glu/mkrf_conf.rb
|
52
54
|
- ext/glut/glut.c
|
55
|
+
- ext/glut/mkrf_conf.rb
|
56
|
+
- ext/common/gl-enums.h
|
57
|
+
- ext/common/common.h
|
53
58
|
- doc/supplies
|
54
|
-
- doc/requirements_and_design.txt
|
55
|
-
- doc/build_install.txt
|
56
|
-
- doc/history.txt
|
57
|
-
- doc/scientific_use.txt
|
58
|
-
- doc/roadmap.txt
|
59
59
|
- doc/thanks.txt
|
60
|
+
- doc/roadmap.txt
|
61
|
+
- doc/scientific_use.txt
|
62
|
+
- doc/history.txt
|
60
63
|
- doc/tutorial.txt
|
64
|
+
- doc/requirements_and_design.txt
|
65
|
+
- doc/screenshots.txt
|
66
|
+
- doc/build_install.txt
|
61
67
|
- doc/supplies/page_template.html
|
62
|
-
- examples/aaindex.rb
|
63
|
-
- examples/README
|
64
|
-
- examples/smooth_prev.rb
|
65
|
-
- examples/all_tests.rb
|
66
68
|
- examples/plane.rb
|
67
|
-
- examples/smooth.rb
|
68
69
|
- examples/test.rb
|
69
|
-
-
|
70
|
-
-
|
71
|
-
-
|
70
|
+
- examples/smooth.rb
|
71
|
+
- examples/nehe_lesson02.rb
|
72
|
+
- examples/nehe_lesson03.rb
|
73
|
+
- examples/nehe_lesson04.rb
|
74
|
+
- examples/nehe_lesson05.rb
|
75
|
+
- examples/legacy
|
76
|
+
- examples/README
|
77
|
+
- examples/legacy/aaindex.rb
|
78
|
+
- examples/legacy/COPYRIGHT
|
79
|
+
- examples/legacy/jitter.rb
|
80
|
+
- examples/legacy/lines.rb
|
81
|
+
- examples/legacy/list.rb
|
82
|
+
- examples/legacy/material.rb
|
83
|
+
- examples/legacy/mipmap.rb
|
84
|
+
- examples/legacy/model.rb
|
85
|
+
- examples/legacy/movelight.rb
|
86
|
+
- examples/legacy/pickdepth.rb
|
87
|
+
- examples/legacy/planet.rb
|
88
|
+
- examples/legacy/quadric.rb
|
89
|
+
- examples/legacy/readpixel.rb
|
90
|
+
- examples/legacy/robot.rb
|
91
|
+
- examples/legacy/select.rb
|
92
|
+
- examples/legacy/smooth.rb
|
93
|
+
- examples/legacy/stencil.rb
|
94
|
+
- examples/legacy/stroke.rb
|
95
|
+
- examples/legacy/surface.rb
|
96
|
+
- examples/legacy/teaambient.rb
|
97
|
+
- examples/legacy/teapots.rb
|
98
|
+
- examples/legacy/texbind.rb
|
99
|
+
- examples/legacy/texgen.rb
|
100
|
+
- examples/legacy/texturesurf.rb
|
101
|
+
- examples/legacy/varray.rb
|
102
|
+
- examples/legacy/wrap.rb
|
103
|
+
- examples/legacy/aapoly.rb
|
104
|
+
- examples/legacy/accanti.rb
|
105
|
+
- examples/legacy/accpersp.rb
|
106
|
+
- examples/legacy/alpha3D.rb
|
107
|
+
- examples/legacy/alpha.rb
|
108
|
+
- examples/legacy/aargb.rb
|
109
|
+
- examples/legacy/bezcurve.rb
|
110
|
+
- examples/legacy/bezmesh.rb
|
111
|
+
- examples/legacy/checker.rb
|
112
|
+
- examples/legacy/clip.rb
|
113
|
+
- examples/legacy/colormat.rb
|
114
|
+
- examples/legacy/cube.rb
|
115
|
+
- examples/legacy/depthcue.rb
|
116
|
+
- examples/legacy/dof.rb
|
117
|
+
- examples/legacy/double.rb
|
118
|
+
- examples/legacy/drawf.rb
|
119
|
+
- examples/legacy/feedback.rb
|
120
|
+
- examples/legacy/fog.rb
|
121
|
+
- examples/legacy/font-glut.rb
|
122
|
+
- examples/legacy/font.rb
|
123
|
+
- examples/legacy/hello.rb
|
124
|
+
- examples/legacy/image.rb
|
125
|
+
- examples/legacy/tess.rb
|
72
126
|
- test/tc_include_gl.rb
|
127
|
+
- test/README
|
73
128
|
- test/tc_require_gl.rb
|
74
|
-
- test/
|
129
|
+
- test/tc_common.rb
|
130
|
+
- test/tc_misc.rb
|
131
|
+
- test/tc_func_10_11.rb
|
132
|
+
- test/tc_func_20.rb
|
133
|
+
- test/tc_func_12.rb
|
134
|
+
- test/tc_func_21.rb
|
135
|
+
- test/tc_func_13.rb
|
136
|
+
- test/tc_func_14.rb
|
137
|
+
- test/tc_func_15.rb
|
75
138
|
test_files: []
|
76
139
|
|
77
140
|
rdoc_options: []
|
@@ -94,3 +157,12 @@ dependencies:
|
|
94
157
|
- !ruby/object:Gem::Version
|
95
158
|
version: 0.2.0
|
96
159
|
version:
|
160
|
+
- !ruby/object:Gem::Dependency
|
161
|
+
name: rake
|
162
|
+
version_requirement:
|
163
|
+
version_requirements: !ruby/object:Gem::Version::Requirement
|
164
|
+
requirements:
|
165
|
+
- - ">"
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
version: 0.0.0
|
168
|
+
version:
|
data/ext/common/Rakefile
DELETED
@@ -1,39 +0,0 @@
|
|
1
|
-
# -*- ruby -*-
|
2
|
-
|
3
|
-
# Copyright (C) 2006 John M. Gabriele <jmg3000@gmail.com>
|
4
|
-
#
|
5
|
-
# This program is distributed under the terms of the MIT license.
|
6
|
-
# See the included COPYRIGHT file for the terms of this license.
|
7
|
-
#
|
8
|
-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
9
|
-
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
10
|
-
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
11
|
-
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
12
|
-
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
13
|
-
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
14
|
-
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
15
|
-
|
16
|
-
# Simple Rakefile for building rbogl.c.
|
17
|
-
|
18
|
-
require 'rake/clean'
|
19
|
-
require 'rbconfig'
|
20
|
-
|
21
|
-
INCLUDES = "-I#{Config::CONFIG['archdir']}"
|
22
|
-
CFLAGS = "#{Config::CONFIG['CFLAGS']}"
|
23
|
-
|
24
|
-
case RUBY_PLATFORM
|
25
|
-
when /darwin/
|
26
|
-
INCLUDES << ' -F/System/Library/Frameworks'
|
27
|
-
end
|
28
|
-
|
29
|
-
CLEAN.include( '*.o' )
|
30
|
-
|
31
|
-
SRC = FileList[ '*.c' ]
|
32
|
-
OBJ = SRC.ext( 'o' )
|
33
|
-
|
34
|
-
task :default => OBJ
|
35
|
-
file 'rbogl.c' => [ 'rbogl.h' ]
|
36
|
-
|
37
|
-
rule '.o' => '.c' do |t|
|
38
|
-
sh "cc -c #{CFLAGS} #{INCLUDES} -o #{t.name} #{t.source}"
|
39
|
-
end
|
data/ext/common/rbogl.h
DELETED
@@ -1,52 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* Last edit by previous maintainer:
|
3
|
-
* 2000/01/06 16:37:43, kusano
|
4
|
-
*
|
5
|
-
* Copyright (C) 1999 - 2005 Yoshi <yoshi@giganet.net>
|
6
|
-
* Copyright (C) 2006 John M. Gabriele <jmg3000@gmail.com>
|
7
|
-
*
|
8
|
-
* This program is distributed under the terms of the MIT license.
|
9
|
-
* See the included MIT-LICENSE file for the terms of this license.
|
10
|
-
*
|
11
|
-
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
12
|
-
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
13
|
-
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
14
|
-
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
15
|
-
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
16
|
-
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
17
|
-
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
18
|
-
*/
|
19
|
-
|
20
|
-
#ifndef _RBOGL_H_
|
21
|
-
#define _RBOGL_H_
|
22
|
-
|
23
|
-
#include <ruby.h>
|
24
|
-
|
25
|
-
typedef struct RArray RArray;
|
26
|
-
|
27
|
-
extern VALUE cProc;
|
28
|
-
|
29
|
-
int ary2cint( VALUE, GLint[], int );
|
30
|
-
int ary2cuint( VALUE, GLuint[], int );
|
31
|
-
int ary2cshort( VALUE, GLshort[], int );
|
32
|
-
int ary2cushort( VALUE, GLushort[], int );
|
33
|
-
int ary2cbyte( VALUE, GLbyte[], int );
|
34
|
-
int ary2cubyte( VALUE, GLubyte[], int );
|
35
|
-
int ary2cboolean( VALUE, GLboolean[], int );
|
36
|
-
int ary2cdbl( VALUE, double[], int );
|
37
|
-
int ary2cflt( VALUE, float[], int );
|
38
|
-
void mary2ary( VALUE, VALUE );
|
39
|
-
void ary2cmat4x4dbl( VALUE, double[] );
|
40
|
-
void ary2cmat4x4flt( VALUE, float[] );
|
41
|
-
VALUE allocate_buffer_with_string( int );
|
42
|
-
|
43
|
-
#ifndef NUM2DBL
|
44
|
-
double num2double( VALUE );
|
45
|
-
#define _NO_NUM2DBL_
|
46
|
-
#define NUM2DBL(_val) num2double(_val)
|
47
|
-
#endif /* NUM2DBL */
|
48
|
-
|
49
|
-
int gltype_size(GLenum type);
|
50
|
-
int glformat_size(GLenum format);
|
51
|
-
|
52
|
-
#endif /* _RBOGL_H_ */
|
data/test/runtests.sh
DELETED
data/test/tc_gl_vertex.rb
DELETED
@@ -1,180 +0,0 @@
|
|
1
|
-
#--
|
2
|
-
# Copyright (C) 2006 Peter McLain <peter.mclain@gmail.com>
|
3
|
-
#
|
4
|
-
# This program is distributed under the terms of the MIT license.
|
5
|
-
# See the included MIT-LICENSE file for the terms of this license.
|
6
|
-
#
|
7
|
-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
8
|
-
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
9
|
-
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
10
|
-
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
11
|
-
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
12
|
-
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
13
|
-
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
14
|
-
#++
|
15
|
-
|
16
|
-
if __FILE__ == $0
|
17
|
-
# If we are being called from the command line, e.g., ruby foo.rb, then
|
18
|
-
# fixup the load path so we can find the OpenGL extension libs
|
19
|
-
$: << File.join(File.dirname(__FILE__), '..', 'ext')
|
20
|
-
end
|
21
|
-
|
22
|
-
require 'test/unit'
|
23
|
-
require 'gl'
|
24
|
-
require 'glut'
|
25
|
-
include Gl
|
26
|
-
include Glut
|
27
|
-
|
28
|
-
|
29
|
-
# Yet to test
|
30
|
-
|
31
|
-
# glVertex2dv
|
32
|
-
# glVertex2fv
|
33
|
-
# glVertex2iv
|
34
|
-
# glVertex2sv
|
35
|
-
|
36
|
-
# glVertex3dv
|
37
|
-
# glVertex3fv
|
38
|
-
# glVertex3iv
|
39
|
-
# glVertex3sv
|
40
|
-
|
41
|
-
# glVertex4dv
|
42
|
-
# glVertex4fv
|
43
|
-
# glVertex4iv
|
44
|
-
# glVertex4sv
|
45
|
-
|
46
|
-
class GlVertexTest < Test::Unit::TestCase
|
47
|
-
|
48
|
-
|
49
|
-
# Test the existence of
|
50
|
-
# glVertex2d
|
51
|
-
# glVertex2f
|
52
|
-
# glVertex2i
|
53
|
-
# glVertex2s
|
54
|
-
def test_gl_vertex2x
|
55
|
-
one_time_glut_init
|
56
|
-
# These parameters define a small box
|
57
|
-
params = [
|
58
|
-
[-1.5, -1.5],
|
59
|
-
[-1.5, 1.5],
|
60
|
-
[ 1.5, 1.5],
|
61
|
-
[ 1.5, -1.5]
|
62
|
-
]
|
63
|
-
run_with(%w( glVertex2d glVertex2f glVertex2i glVertex2s ), params)
|
64
|
-
end
|
65
|
-
|
66
|
-
# Test the existence of
|
67
|
-
# glVertex3d
|
68
|
-
# glVertex3f
|
69
|
-
# glVertex3i
|
70
|
-
# glVertex3s
|
71
|
-
def test_gl_vertex3x
|
72
|
-
one_time_glut_init
|
73
|
-
# These parameters define a small box
|
74
|
-
params = [
|
75
|
-
[-1.5, -1.5, 0],
|
76
|
-
[-1.5, 1.5, 0],
|
77
|
-
[ 1.5, 1.5, 0],
|
78
|
-
[ 1.5, -1.5, 0]
|
79
|
-
]
|
80
|
-
run_with(%w( glVertex3d glVertex3f glVertex3i glVertex3s ), params)
|
81
|
-
end
|
82
|
-
|
83
|
-
# Test the existence of
|
84
|
-
# glVertex4d
|
85
|
-
# glVertex4f
|
86
|
-
# glVertex4i
|
87
|
-
# glVertex4s
|
88
|
-
def test_gl_vertex4x
|
89
|
-
one_time_glut_init
|
90
|
-
# These parameters define a small box
|
91
|
-
params = [
|
92
|
-
[-1.5, -1.5, 0, 1],
|
93
|
-
[-1.5, 1.5, 0, 1],
|
94
|
-
[ 1.5, 1.5, 0, 1],
|
95
|
-
[ 1.5, -1.5, 0, 1]
|
96
|
-
]
|
97
|
-
run_with(%w( glVertex4d glVertex4f glVertex4i glVertex4s ), params)
|
98
|
-
end
|
99
|
-
|
100
|
-
def one_time_glut_init
|
101
|
-
puts "=== one_time_glut_init"
|
102
|
-
glutInit
|
103
|
-
glutInitWindowSize(600, 600)
|
104
|
-
end
|
105
|
-
|
106
|
-
def init
|
107
|
-
puts "=== init"
|
108
|
-
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
|
109
|
-
glMatrixMode(GL_PROJECTION)
|
110
|
-
glLoadIdentity
|
111
|
-
# Give us a 20x20x20 cube to display in centered on the origin
|
112
|
-
glOrtho(-10, 10, -10, 10, -10, 10)
|
113
|
-
end
|
114
|
-
|
115
|
-
# Run several related tests. gl_vertex_methods, is an array of method
|
116
|
-
# names that are appropriate to run against the arity of params. E.g.,
|
117
|
-
# if gl_vertex_methods was ["glVertex2f", "glVertex2d", ... ] and
|
118
|
-
# params was [ [-1.5, -1.5], [-1.5, 1.5], [ 1.5, 1.5], [ 1.5, -1.5] ],
|
119
|
-
# then calling run_with(gl_vertex_methods, params) would be equivalent
|
120
|
-
# to running the following test cases:
|
121
|
-
#
|
122
|
-
# glBegin(GL_POLYGON)
|
123
|
-
# glVertex2f(-1.5, -1.5)
|
124
|
-
# glVertex2f(-1.5, 1.5)
|
125
|
-
# glVertex2f( 1.5, 1.5)
|
126
|
-
# glVertex2f( 1.5, -1.5)
|
127
|
-
# glEnd
|
128
|
-
# ...
|
129
|
-
# glBegin(GL_POLYGON)
|
130
|
-
# glVertex2d(-1.5, -1.5)
|
131
|
-
# glVertex2d(-1.5, 1.5)
|
132
|
-
# glVertex2d( 1.5, 1.5)
|
133
|
-
# glVertex2d( 1.5, -1.5)
|
134
|
-
# glEnd
|
135
|
-
#
|
136
|
-
def run_with(gl_vertex_methods, params)
|
137
|
-
gl_vertex_methods.each do |mn|
|
138
|
-
display = lambda do
|
139
|
-
glColor3f( 1.0, 1.0, 1.0 )
|
140
|
-
|
141
|
-
glBegin(GL_POLYGON)
|
142
|
-
# The send(...) basically do something like:
|
143
|
-
# glVertex2d( -1.5, -1.5 )
|
144
|
-
# or
|
145
|
-
# glVertex3d( -1.5, -1.5, 0 )
|
146
|
-
# or
|
147
|
-
# glVertex4f( -1.5, -1.5, 0, 1 )
|
148
|
-
#
|
149
|
-
params.each {|p| send(mn, *p)}
|
150
|
-
glEnd
|
151
|
-
glFlush
|
152
|
-
end
|
153
|
-
|
154
|
-
keyboard = lambda do |key, x, y|
|
155
|
-
case(key)
|
156
|
-
when 27
|
157
|
-
raise StopGlutMain.new
|
158
|
-
end
|
159
|
-
end
|
160
|
-
glutCreateWindow("#{__FILE__} : #{mn}");
|
161
|
-
init
|
162
|
-
glutDisplayFunc(display);
|
163
|
-
glutKeyboardFunc(keyboard)
|
164
|
-
begin
|
165
|
-
glutMainLoop;
|
166
|
-
rescue StopGlutMain
|
167
|
-
# Ignore
|
168
|
-
end
|
169
|
-
end
|
170
|
-
end
|
171
|
-
end
|
172
|
-
|
173
|
-
class StopGlutMain < RuntimeError
|
174
|
-
# This Exception is just used to break out of the glutMainLoop.
|
175
|
-
#
|
176
|
-
# The Mac OS X version of glut has the glutCheckLoop/glutWMCloseFunc
|
177
|
-
# pair, but in general, we can't rely on something beyond the really
|
178
|
-
# old 98 version of GLUT being installed.
|
179
|
-
end
|
180
|
-
|