sgl 0.4.0 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog +254 -234
- data/History.txt +6 -0
- data/Manifest.txt +10 -0
- data/Rakefile +27 -7
- data/examples/cocoa1-basic.rb +14 -14
- data/examples/cocoa10-transparent.rb +26 -26
- data/examples/cocoa11-application.rb +13 -13
- data/examples/cocoa2-draw.rb +23 -23
- data/examples/cocoa3-affine.rb +29 -29
- data/examples/cocoa4-font.rb +24 -24
- data/examples/cocoa5-image.rb +22 -22
- data/examples/cocoa6-sound.rb +24 -24
- data/examples/cocoa7-movie.rb +40 -40
- data/examples/cocoa8-movieoverlay.rb +42 -42
- data/examples/cocoa9-streaming.rb +40 -40
- data/examples/opengl1-basic.rb +14 -14
- data/examples/opengl11-application.rb +13 -13
- data/examples/opengl2-draw.rb +23 -23
- data/examples/opengl3-affine.rb +29 -29
- data/examples/sample1.rb +11 -11
- data/examples/sample10.rb +16 -16
- data/examples/sample11.rb +22 -22
- data/examples/sample11a.rb +33 -33
- data/examples/sample12.rb +30 -30
- data/examples/sample12a.rb +35 -35
- data/examples/sample13.rb +116 -116
- data/examples/sample15.rb +24 -24
- data/examples/sample16.rb +31 -31
- data/examples/sample16a.rb +35 -35
- data/examples/sample6.rb +18 -18
- data/examples/sample7.rb +16 -16
- data/examples/sample9.rb +20 -20
- data/examples/testgl.rb +169 -169
- data/lib/sgl/bass.rb +46 -46
- data/lib/sgl/cocoa-app.rb +43 -43
- data/lib/sgl/cocoa-color.rb +65 -65
- data/lib/sgl/cocoa-draw.rb +72 -72
- data/lib/sgl/cocoa-event.rb +229 -229
- data/lib/sgl/cocoa-media.rb +144 -144
- data/lib/sgl/cocoa-notuse.rb +493 -493
- data/lib/sgl/cocoa-window.rb +203 -203
- data/lib/sgl/cocoa.rb +8 -8
- data/lib/sgl/opengl-app.rb +38 -38
- data/lib/sgl/opengl-color.rb +44 -44
- data/lib/sgl/opengl-draw.rb +260 -260
- data/lib/sgl/opengl-event.rb +325 -325
- data/lib/sgl/opengl-modules.rb +22 -22
- data/lib/sgl/opengl-window.rb +224 -224
- data/lib/sgl/opengl.rb +7 -7
- data/lib/sgl/sgl-button.rb +135 -135
- data/lib/sgl/sgl-client.rb +21 -21
- data/lib/sgl/sgl-color.rb +68 -82
- data/lib/sgl/sgl-connect.rb +9 -9
- data/lib/sgl/sgl-server.rb +58 -58
- data/lib/sgl/sgl-spring.rb +216 -216
- data/lib/sgl/version.rb +2 -2
- data/scripts/lib-txt2html.rb +130 -0
- data/scripts/txt2html +2 -63
- data/spec/sgl_spec.rb +13 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +1 -0
- data/test/test_cocoa_app.rb +291 -291
- data/test/test_module_ruby16.rb +30 -30
- data/test/test_opengl_app.rb +147 -147
- data/test/test_opengl_basic.rb +22 -22
- data/test/test_opengl_fullscreen.rb +23 -23
- data/test/test_opengl_novice.rb +35 -35
- data/website/challenge1.html +91 -91
- data/website/challenge1.txt +3 -3
- data/website/challenge2.html +143 -144
- data/website/challenge2.txt +13 -14
- data/website/challenge3.html +66 -63
- data/website/challenge3.txt +7 -7
- data/website/cocoa.html +85 -88
- data/website/cocoa.txt +2 -4
- data/website/description.html +138 -138
- data/website/description.txt +1 -1
- data/website/exercise1.html +262 -264
- data/website/exercise1.txt +58 -53
- data/website/exercise2.html +241 -683
- data/website/exercise2.txt +11 -427
- data/website/exercise3.html +206 -0
- data/website/exercise3.txt +155 -0
- data/website/exercise4.html +198 -0
- data/website/exercise4.txt +151 -0
- data/website/exercise5.html +162 -0
- data/website/exercise5.txt +113 -0
- data/website/exhibition.html +84 -84
- data/website/howto.html +146 -134
- data/website/howto.txt +9 -0
- data/website/index.html +178 -178
- data/website/index.txt +20 -19
- data/website/sound.html +141 -141
- metadata +16 -3
data/examples/cocoa7-movie.rb
CHANGED
@@ -1,40 +1,40 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# Copyright (C) 2004-2007 Kouichirou Eto, All rights reserved.
|
3
|
-
|
4
|
-
require "sgl/cocoa"
|
5
|
-
|
6
|
-
def setup
|
7
|
-
$windowShadow = 0
|
8
|
-
window 700, 700
|
9
|
-
backgroundHSV 66, 100, 20
|
10
|
-
$movie = movie("/Applications/iDVD 3/Tutorial/Media/Background Movie.mov")
|
11
|
-
$movie.loop = 1
|
12
|
-
end
|
13
|
-
|
14
|
-
def onMouseDown(x, y)
|
15
|
-
if 100 < x && x < 120 && 100 < y && y < 120
|
16
|
-
#p x
|
17
|
-
$movie.play
|
18
|
-
end
|
19
|
-
|
20
|
-
if 150 < x && x < 170 && 100 < y && y < 120
|
21
|
-
$movie.stop
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
def display
|
26
|
-
x, y = mouseX, mouseY
|
27
|
-
backgroundHSV 66, 100, 20, y/2
|
28
|
-
|
29
|
-
$movie.rect 100, 200, 500, 500
|
30
|
-
$movie.rate = x-350
|
31
|
-
$movie.volume = y/7
|
32
|
-
|
33
|
-
colorHSV 0, 100, 100
|
34
|
-
rect 100, 100, 120, 120
|
35
|
-
|
36
|
-
colorHSV 33, 100, 100
|
37
|
-
rect 150, 100, 170, 120
|
38
|
-
end
|
39
|
-
|
40
|
-
mainloop
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# Copyright (C) 2004-2007 Kouichirou Eto, All rights reserved.
|
3
|
+
|
4
|
+
require "sgl/cocoa"
|
5
|
+
|
6
|
+
def setup
|
7
|
+
$windowShadow = 0
|
8
|
+
window 700, 700
|
9
|
+
backgroundHSV 66, 100, 20
|
10
|
+
$movie = movie("/Applications/iDVD 3/Tutorial/Media/Background Movie.mov")
|
11
|
+
$movie.loop = 1
|
12
|
+
end
|
13
|
+
|
14
|
+
def onMouseDown(x, y)
|
15
|
+
if 100 < x && x < 120 && 100 < y && y < 120
|
16
|
+
#p x
|
17
|
+
$movie.play
|
18
|
+
end
|
19
|
+
|
20
|
+
if 150 < x && x < 170 && 100 < y && y < 120
|
21
|
+
$movie.stop
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def display
|
26
|
+
x, y = mouseX, mouseY
|
27
|
+
backgroundHSV 66, 100, 20, y/2
|
28
|
+
|
29
|
+
$movie.rect 100, 200, 500, 500
|
30
|
+
$movie.rate = x-350
|
31
|
+
$movie.volume = y/7
|
32
|
+
|
33
|
+
colorHSV 0, 100, 100
|
34
|
+
rect 100, 100, 120, 120
|
35
|
+
|
36
|
+
colorHSV 33, 100, 100
|
37
|
+
rect 150, 100, 170, 120
|
38
|
+
end
|
39
|
+
|
40
|
+
mainloop
|
@@ -1,42 +1,42 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# Copyright (C) 2004-2007 Kouichirou Eto, All rights reserved.
|
3
|
-
|
4
|
-
require "sgl/cocoa"
|
5
|
-
|
6
|
-
def setup
|
7
|
-
$windowShadow = 0
|
8
|
-
# $windowBackground = 0
|
9
|
-
window 900, 700
|
10
|
-
backgroundHSV 66, 100, 20
|
11
|
-
$movie = movie("/Applications/iDVD 3/Tutorial/Media/Background Movie.mov")
|
12
|
-
$movie.loop = 1
|
13
|
-
end
|
14
|
-
|
15
|
-
def onMouseDown(x, y)
|
16
|
-
if 100 < x && x < 120 && 100 < y && y < 120
|
17
|
-
$movie.play
|
18
|
-
end
|
19
|
-
if 150 < x && x < 170 && 100 < y && y < 120
|
20
|
-
$movie.stop
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def display
|
25
|
-
x, y = mouseX, mouseY
|
26
|
-
backgroundHSV 66, 100, 20, y/2
|
27
|
-
$movie.frame 100, 200, 640, 480
|
28
|
-
$movie.rate = x-350
|
29
|
-
$movie.volume = y/7
|
30
|
-
colorHSV 0, 100, 100
|
31
|
-
rect 100, 100, 120, 120
|
32
|
-
colorHSV 33, 100, 100
|
33
|
-
rect 150, 100, 170, 120
|
34
|
-
end
|
35
|
-
|
36
|
-
def displayOverlay
|
37
|
-
x, y = mouseX, mouseY
|
38
|
-
colorHSV 66, 100, 100, 50
|
39
|
-
circle x, y, 20
|
40
|
-
end
|
41
|
-
|
42
|
-
mainloop
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# Copyright (C) 2004-2007 Kouichirou Eto, All rights reserved.
|
3
|
+
|
4
|
+
require "sgl/cocoa"
|
5
|
+
|
6
|
+
def setup
|
7
|
+
$windowShadow = 0
|
8
|
+
# $windowBackground = 0
|
9
|
+
window 900, 700
|
10
|
+
backgroundHSV 66, 100, 20
|
11
|
+
$movie = movie("/Applications/iDVD 3/Tutorial/Media/Background Movie.mov")
|
12
|
+
$movie.loop = 1
|
13
|
+
end
|
14
|
+
|
15
|
+
def onMouseDown(x, y)
|
16
|
+
if 100 < x && x < 120 && 100 < y && y < 120
|
17
|
+
$movie.play
|
18
|
+
end
|
19
|
+
if 150 < x && x < 170 && 100 < y && y < 120
|
20
|
+
$movie.stop
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def display
|
25
|
+
x, y = mouseX, mouseY
|
26
|
+
backgroundHSV 66, 100, 20, y/2
|
27
|
+
$movie.frame 100, 200, 640, 480
|
28
|
+
$movie.rate = x-350
|
29
|
+
$movie.volume = y/7
|
30
|
+
colorHSV 0, 100, 100
|
31
|
+
rect 100, 100, 120, 120
|
32
|
+
colorHSV 33, 100, 100
|
33
|
+
rect 150, 100, 170, 120
|
34
|
+
end
|
35
|
+
|
36
|
+
def displayOverlay
|
37
|
+
x, y = mouseX, mouseY
|
38
|
+
colorHSV 66, 100, 100, 50
|
39
|
+
circle x, y, 20
|
40
|
+
end
|
41
|
+
|
42
|
+
mainloop
|
@@ -1,40 +1,40 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# Copyright (C) 2004-2007 Kouichirou Eto, All rights reserved.
|
3
|
-
|
4
|
-
require "sgl/cocoa"
|
5
|
-
|
6
|
-
def setup
|
7
|
-
# $windowShadow = 0
|
8
|
-
# $windowBackground = 0
|
9
|
-
# $windowDelay = 1
|
10
|
-
# $windowDelay = 10
|
11
|
-
window 900, 700
|
12
|
-
backgroundHSV 66, 100, 20
|
13
|
-
$bgh = 0
|
14
|
-
# $movie1 = movie("../media/tower1.mov")
|
15
|
-
$movie1 = movie("../media/sample1.mov")
|
16
|
-
$movie1.frame(100, 100, 320, 240)
|
17
|
-
$movie1.play
|
18
|
-
# $movie2 = movie("../media/powerbook1.mov")
|
19
|
-
# $movie2.frame 500, 100, 320, 240
|
20
|
-
# $movie2.play
|
21
|
-
# $movie3 = movie("../media/imstudio.mov")
|
22
|
-
# $movie3.frame 100, 400, 320, 240
|
23
|
-
# $movie3.play
|
24
|
-
end
|
25
|
-
|
26
|
-
def display
|
27
|
-
x, y = mouseX, mouseY
|
28
|
-
backgroundHSV $bgh, 100, 20, y/2
|
29
|
-
$bgh = $bgh + 1
|
30
|
-
if 100 < $bgh then $bgh = 0; end
|
31
|
-
colorHSV 0, 100, 100
|
32
|
-
rect 100, 50, 120, 70
|
33
|
-
circle x, y, 20
|
34
|
-
$movie1.frame(x, y, 320, 240)
|
35
|
-
end
|
36
|
-
|
37
|
-
def nudisplayOverlay
|
38
|
-
end
|
39
|
-
|
40
|
-
mainloop
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# Copyright (C) 2004-2007 Kouichirou Eto, All rights reserved.
|
3
|
+
|
4
|
+
require "sgl/cocoa"
|
5
|
+
|
6
|
+
def setup
|
7
|
+
# $windowShadow = 0
|
8
|
+
# $windowBackground = 0
|
9
|
+
# $windowDelay = 1
|
10
|
+
# $windowDelay = 10
|
11
|
+
window 900, 700
|
12
|
+
backgroundHSV 66, 100, 20
|
13
|
+
$bgh = 0
|
14
|
+
# $movie1 = movie("../media/tower1.mov")
|
15
|
+
$movie1 = movie("../media/sample1.mov")
|
16
|
+
$movie1.frame(100, 100, 320, 240)
|
17
|
+
$movie1.play
|
18
|
+
# $movie2 = movie("../media/powerbook1.mov")
|
19
|
+
# $movie2.frame 500, 100, 320, 240
|
20
|
+
# $movie2.play
|
21
|
+
# $movie3 = movie("../media/imstudio.mov")
|
22
|
+
# $movie3.frame 100, 400, 320, 240
|
23
|
+
# $movie3.play
|
24
|
+
end
|
25
|
+
|
26
|
+
def display
|
27
|
+
x, y = mouseX, mouseY
|
28
|
+
backgroundHSV $bgh, 100, 20, y/2
|
29
|
+
$bgh = $bgh + 1
|
30
|
+
if 100 < $bgh then $bgh = 0; end
|
31
|
+
colorHSV 0, 100, 100
|
32
|
+
rect 100, 50, 120, 70
|
33
|
+
circle x, y, 20
|
34
|
+
$movie1.frame(x, y, 320, 240)
|
35
|
+
end
|
36
|
+
|
37
|
+
def nudisplayOverlay
|
38
|
+
end
|
39
|
+
|
40
|
+
mainloop
|
data/examples/opengl1-basic.rb
CHANGED
@@ -1,14 +1,14 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# Copyright (C) 2004-2007 Kouichirou Eto, All rights reserved.
|
3
|
-
|
4
|
-
require "sgl"
|
5
|
-
|
6
|
-
def setup
|
7
|
-
window 100, 100
|
8
|
-
end
|
9
|
-
|
10
|
-
def display
|
11
|
-
line 0, 0, 100, 100
|
12
|
-
end
|
13
|
-
|
14
|
-
mainloop
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# Copyright (C) 2004-2007 Kouichirou Eto, All rights reserved.
|
3
|
+
|
4
|
+
require "sgl"
|
5
|
+
|
6
|
+
def setup
|
7
|
+
window 100, 100
|
8
|
+
end
|
9
|
+
|
10
|
+
def display
|
11
|
+
line 0, 0, 100, 100
|
12
|
+
end
|
13
|
+
|
14
|
+
mainloop
|
@@ -1,13 +1,13 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# Copyright (C) 2004-2007 Kouichirou Eto, All rights reserved.
|
3
|
-
|
4
|
-
require "sgl/opengl-app"
|
5
|
-
|
6
|
-
app = SGL::Application.new
|
7
|
-
app.set_setup {
|
8
|
-
app.window(100, 100)
|
9
|
-
}
|
10
|
-
app.set_display {
|
11
|
-
app.line(0, 0, 100, 100)
|
12
|
-
}
|
13
|
-
app.mainloop
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# Copyright (C) 2004-2007 Kouichirou Eto, All rights reserved.
|
3
|
+
|
4
|
+
require "sgl/opengl-app"
|
5
|
+
|
6
|
+
app = SGL::Application.new
|
7
|
+
app.set_setup {
|
8
|
+
app.window(100, 100)
|
9
|
+
}
|
10
|
+
app.set_display {
|
11
|
+
app.line(0, 0, 100, 100)
|
12
|
+
}
|
13
|
+
app.mainloop
|
data/examples/opengl2-draw.rb
CHANGED
@@ -1,23 +1,23 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# Copyright (C) 2004-2007 Kouichirou Eto, All rights reserved.
|
3
|
-
|
4
|
-
require "sgl"
|
5
|
-
|
6
|
-
def setup
|
7
|
-
window 300, 300
|
8
|
-
backgroundHSV 66, 100, 20
|
9
|
-
end
|
10
|
-
|
11
|
-
def display
|
12
|
-
x, y = mouseX, mouseY
|
13
|
-
colorHSV 0, 50, 100
|
14
|
-
lineWidth 3
|
15
|
-
line 0, 0, x, y
|
16
|
-
line 300, 0, x, y
|
17
|
-
line 0, 300, x, y
|
18
|
-
line 300, 300, x, y
|
19
|
-
colorHSV 0, 100, 100
|
20
|
-
rect x-10, y-10, x+10, y+10
|
21
|
-
end
|
22
|
-
|
23
|
-
mainloop
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# Copyright (C) 2004-2007 Kouichirou Eto, All rights reserved.
|
3
|
+
|
4
|
+
require "sgl"
|
5
|
+
|
6
|
+
def setup
|
7
|
+
window 300, 300
|
8
|
+
backgroundHSV 66, 100, 20
|
9
|
+
end
|
10
|
+
|
11
|
+
def display
|
12
|
+
x, y = mouseX, mouseY
|
13
|
+
colorHSV 0, 50, 100
|
14
|
+
lineWidth 3
|
15
|
+
line 0, 0, x, y
|
16
|
+
line 300, 0, x, y
|
17
|
+
line 0, 300, x, y
|
18
|
+
line 300, 300, x, y
|
19
|
+
colorHSV 0, 100, 100
|
20
|
+
rect x-10, y-10, x+10, y+10
|
21
|
+
end
|
22
|
+
|
23
|
+
mainloop
|
data/examples/opengl3-affine.rb
CHANGED
@@ -1,29 +1,29 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# Copyright (C) 2004-2007 Kouichirou Eto, All rights reserved.
|
3
|
-
|
4
|
-
require "sgl"
|
5
|
-
|
6
|
-
def setup
|
7
|
-
window 700, 700
|
8
|
-
backgroundHSV 66, 100, 20
|
9
|
-
# $font1 = font("Helvetica", 25)
|
10
|
-
end
|
11
|
-
|
12
|
-
def display
|
13
|
-
x, y = mouseX, mouseY
|
14
|
-
colorHSV 0, 50, 100
|
15
|
-
lineWidth 3
|
16
|
-
line 0, 0, x, y
|
17
|
-
line 700, 0, x, y
|
18
|
-
line 0, 700, x, y
|
19
|
-
line 700, 700, x, y
|
20
|
-
colorHSV 0, 100, 100
|
21
|
-
|
22
|
-
translate x, y
|
23
|
-
rotateZ y
|
24
|
-
colorHSV y, 100, 100
|
25
|
-
# $font1.text(10, 10, "hello")
|
26
|
-
rect -10, -10, +10, +10
|
27
|
-
end
|
28
|
-
|
29
|
-
mainloop
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# Copyright (C) 2004-2007 Kouichirou Eto, All rights reserved.
|
3
|
+
|
4
|
+
require "sgl"
|
5
|
+
|
6
|
+
def setup
|
7
|
+
window 700, 700
|
8
|
+
backgroundHSV 66, 100, 20
|
9
|
+
# $font1 = font("Helvetica", 25)
|
10
|
+
end
|
11
|
+
|
12
|
+
def display
|
13
|
+
x, y = mouseX, mouseY
|
14
|
+
colorHSV 0, 50, 100
|
15
|
+
lineWidth 3
|
16
|
+
line 0, 0, x, y
|
17
|
+
line 700, 0, x, y
|
18
|
+
line 0, 700, x, y
|
19
|
+
line 700, 700, x, y
|
20
|
+
colorHSV 0, 100, 100
|
21
|
+
|
22
|
+
translate x, y
|
23
|
+
rotateZ y
|
24
|
+
colorHSV y, 100, 100
|
25
|
+
# $font1.text(10, 10, "hello")
|
26
|
+
rect -10, -10, +10, +10
|
27
|
+
end
|
28
|
+
|
29
|
+
mainloop
|
data/examples/sample1.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
|
-
require "sgl/opengl"
|
2
|
-
|
3
|
-
def setup
|
4
|
-
window 100, 100
|
5
|
-
end
|
6
|
-
|
7
|
-
def display
|
8
|
-
line 0, 0, 100, 100
|
9
|
-
end
|
10
|
-
|
11
|
-
mainloop
|
1
|
+
require "sgl/opengl"
|
2
|
+
|
3
|
+
def setup
|
4
|
+
window 100, 100
|
5
|
+
end
|
6
|
+
|
7
|
+
def display
|
8
|
+
line 0, 0, 100, 100
|
9
|
+
end
|
10
|
+
|
11
|
+
mainloop
|
data/examples/sample10.rb
CHANGED
@@ -1,16 +1,16 @@
|
|
1
|
-
require "sgl"
|
2
|
-
|
3
|
-
def setup
|
4
|
-
window -200, -200, 200, 200
|
5
|
-
end
|
6
|
-
|
7
|
-
def display
|
8
|
-
push
|
9
|
-
translate 100, 0
|
10
|
-
rotateZ 10
|
11
|
-
scale 2
|
12
|
-
rect -5, -5, 5, 5
|
13
|
-
pop
|
14
|
-
end
|
15
|
-
|
16
|
-
mainloop
|
1
|
+
require "sgl"
|
2
|
+
|
3
|
+
def setup
|
4
|
+
window -200, -200, 200, 200
|
5
|
+
end
|
6
|
+
|
7
|
+
def display
|
8
|
+
push
|
9
|
+
translate 100, 0
|
10
|
+
rotateZ 10
|
11
|
+
scale 2
|
12
|
+
rect -5, -5, 5, 5
|
13
|
+
pop
|
14
|
+
end
|
15
|
+
|
16
|
+
mainloop
|