sgl 0.4.0 → 1.0.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/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
|