graphics 1.0.0b4 → 1.0.0b5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/History.rdoc +20 -0
- data/examples/bounce.rb +8 -5
- data/graphics_setup.sh +4 -4
- data/lib/graphics.rb +1 -1
- data/lib/graphics/simulation.rb +37 -9
- data/test/test_graphics.rb +15 -0
- metadata +12 -11
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 05606dab0e932b0e2a0244bfda441d75a5e075b4
|
4
|
+
data.tar.gz: adbefb635747458fed5734fd2464578390376a90
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ec204d93283fd260d941d1851a2bd4425278754937f36a2495b84e7b319a0b4ee2455ac81b4dea3596819c5e7070add8f5c2e062fde7cacc66be2ce1b0ff31da
|
7
|
+
data.tar.gz: b55da059453df3ab0358cbc278567e3546d389e1811843bf34e30cb9c2ff1424f9a8afb20aabc090c3fdcd4b130e76731a6e35affa1f0dd2110db5893f80d329
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/History.rdoc
CHANGED
@@ -1,3 +1,23 @@
|
|
1
|
+
=== 1.0.0b5 / 2015-10-31
|
2
|
+
|
3
|
+
* 10 minor enhancements:
|
4
|
+
|
5
|
+
* Added Simulation#add_keydown_handler.
|
6
|
+
* Added Simulation#keydown_handler, a hash of "key" -> block handlers.
|
7
|
+
* Added logging every N ticks for headless simulations or debugging.
|
8
|
+
* Switched all default key handlers to keydown handlers.
|
9
|
+
* add example: visualization of pi computation
|
10
|
+
* Improved key event handling.
|
11
|
+
* add example: visualization of pi computation
|
12
|
+
* Renamed rubysdl_setup to graphics_setup. rubysdl is out of the picture.
|
13
|
+
* Added example rainbow fluid simulation. (litonico)
|
14
|
+
* Added rainbows in greyscale, rgb-spectrum, and cubehelix. (litonico)
|
15
|
+
|
16
|
+
* 2 bug fixes:
|
17
|
+
|
18
|
+
* Fixed build issues with rubygems.
|
19
|
+
* Switched brew install to build universal packages so it can work with stock ruby.
|
20
|
+
|
1
21
|
=== 1.0.0b4 / 2015-09-14
|
2
22
|
|
3
23
|
* 1 major enhancement:
|
data/examples/bounce.rb
CHANGED
@@ -44,8 +44,8 @@ class BounceSimulation < Graphics::Simulation
|
|
44
44
|
|
45
45
|
def initialize_keys
|
46
46
|
super
|
47
|
-
|
48
|
-
|
47
|
+
add_keydown_handler " ", &:randomize
|
48
|
+
add_keydown_handler "r", &:reverse
|
49
49
|
end
|
50
50
|
|
51
51
|
def update n
|
@@ -66,12 +66,15 @@ class BounceSimulation < Graphics::Simulation
|
|
66
66
|
end
|
67
67
|
|
68
68
|
def reverse
|
69
|
-
return if @guard
|
70
|
-
@guard = true
|
71
69
|
bs.each do |b|
|
72
70
|
b.g *= -1
|
73
71
|
end
|
74
|
-
|
72
|
+
end
|
73
|
+
|
74
|
+
LOG_INTERVAL = 120
|
75
|
+
|
76
|
+
def log
|
77
|
+
puts bs.map(&:m).inject(&:+)
|
75
78
|
end
|
76
79
|
end
|
77
80
|
|
data/graphics_setup.sh
CHANGED
@@ -11,10 +11,10 @@ done
|
|
11
11
|
|
12
12
|
# brew update
|
13
13
|
|
14
|
-
brew install sdl
|
15
|
-
brew install sdl_mixer --with-smpeg
|
16
|
-
brew install sdl_ttf
|
17
|
-
brew install sdl_image
|
14
|
+
brew install sdl --universal
|
15
|
+
brew install sdl_mixer --universal --with-smpeg
|
16
|
+
brew install sdl_ttf --universal
|
17
|
+
brew install sdl_image --universal --without-webp
|
18
18
|
|
19
19
|
if [ -f $0 ]; then
|
20
20
|
rake clean package
|
data/lib/graphics.rb
CHANGED
data/lib/graphics/simulation.rb
CHANGED
@@ -16,6 +16,9 @@ class Graphics::Simulation
|
|
16
16
|
# radians to degrees
|
17
17
|
R2D = 1 / D2R
|
18
18
|
|
19
|
+
# Call +log+ every N ticks, if +log+ is defined.
|
20
|
+
LOG_INTERVAL = 60
|
21
|
+
|
19
22
|
# The window the simulation is drawing in.
|
20
23
|
attr_accessor :screen
|
21
24
|
|
@@ -32,7 +35,6 @@ class Graphics::Simulation
|
|
32
35
|
attr_accessor :font
|
33
36
|
|
34
37
|
# A hash of color names to their values.
|
35
|
-
|
36
38
|
attr_accessor :color
|
37
39
|
|
38
40
|
# A hash of color values to their rgb values. For text, apparently. *shrug*
|
@@ -44,6 +46,9 @@ class Graphics::Simulation
|
|
44
46
|
# Procs registered to handle key events.
|
45
47
|
attr_accessor :key_handler
|
46
48
|
|
49
|
+
# Procs registered to handle keydown events.
|
50
|
+
attr_accessor :keydown_handler
|
51
|
+
|
47
52
|
##
|
48
53
|
# Create a new simulation of a certain width and height. Optionally,
|
49
54
|
# you can set the bits per pixel (0 for current screen settings),
|
@@ -70,6 +75,7 @@ class Graphics::Simulation
|
|
70
75
|
self.iter_per_tick = 1
|
71
76
|
|
72
77
|
self.key_handler = []
|
78
|
+
self.keydown_handler = {}
|
73
79
|
|
74
80
|
initialize_keys
|
75
81
|
initialize_colors
|
@@ -79,11 +85,11 @@ class Graphics::Simulation
|
|
79
85
|
# Register default key events. Handles ESC & Q (quit) and P (pause).
|
80
86
|
|
81
87
|
def initialize_keys
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
88
|
+
add_keydown_handler("\e") { exit }
|
89
|
+
add_keydown_handler("q") { exit }
|
90
|
+
add_keydown_handler("p") { self.paused = !paused }
|
91
|
+
add_keydown_handler("/") { self.iter_per_tick += 1 }
|
92
|
+
add_keydown_handler("-") { self.iter_per_tick -= 1; self.iter_per_tick = 1 if iter_per_tick < 1 }
|
87
93
|
end
|
88
94
|
|
89
95
|
def initialize_colors # :nodoc:
|
@@ -147,11 +153,20 @@ class Graphics::Simulation
|
|
147
153
|
# won't be able to quit.
|
148
154
|
|
149
155
|
def handle_event event, n
|
150
|
-
|
156
|
+
case event
|
157
|
+
when SDL::Event::Quit then
|
158
|
+
exit
|
159
|
+
when SDL::Event::Keydown then
|
160
|
+
c = event.sym.chr rescue nil
|
161
|
+
b = keydown_handler[c]
|
162
|
+
b[self] if b
|
163
|
+
end
|
151
164
|
end
|
152
165
|
|
153
166
|
##
|
154
|
-
# Register a block to run for a particular key-press.
|
167
|
+
# Register a block to run for a particular key-press. This allows
|
168
|
+
# you to register multiple blocks for the same key and also to
|
169
|
+
# handle multiple keys down at the same time.
|
155
170
|
|
156
171
|
def add_key_handler k, remove = nil, &b
|
157
172
|
k = SDL::Key.const_get k
|
@@ -159,11 +174,20 @@ class Graphics::Simulation
|
|
159
174
|
key_handler.unshift [k, b]
|
160
175
|
end
|
161
176
|
|
177
|
+
##
|
178
|
+
# Register a block to run for a particular keydown event. This is a
|
179
|
+
# single key handler per tick and only on a key-down event.
|
180
|
+
|
181
|
+
def add_keydown_handler k, &b
|
182
|
+
keydown_handler[k] = b
|
183
|
+
end
|
184
|
+
|
162
185
|
##
|
163
186
|
# Handle key events by looking through key_handler and running any
|
164
187
|
# blocks that match the key(s) being pressed.
|
165
188
|
|
166
189
|
def handle_keys
|
190
|
+
SDL::Key.scan
|
167
191
|
key_handler.each do |k, blk|
|
168
192
|
blk[self] if SDL::Key.press? k
|
169
193
|
end
|
@@ -180,15 +204,19 @@ class Graphics::Simulation
|
|
180
204
|
n = 0
|
181
205
|
event = nil
|
182
206
|
|
207
|
+
logger = respond_to? :log
|
208
|
+
log_interval = self.class::LOG_INTERVAL
|
209
|
+
|
183
210
|
loop do
|
184
211
|
handle_event event, n while event = SDL::Event.poll
|
185
|
-
SDL::Key.scan
|
186
212
|
handle_keys
|
187
213
|
|
188
214
|
next if paused
|
189
215
|
|
190
216
|
iter_per_tick.times { update n; n += 1 }
|
191
217
|
draw_and_flip n
|
218
|
+
|
219
|
+
log if logger and n % log_interval == 0
|
192
220
|
end
|
193
221
|
end
|
194
222
|
|
data/test/test_graphics.rb
CHANGED
@@ -437,6 +437,21 @@ class TestSimulation < Minitest::Test
|
|
437
437
|
# end
|
438
438
|
end
|
439
439
|
|
440
|
+
require 'graphics/rainbows'
|
441
|
+
class TestGraphics < Minitest::Test
|
442
|
+
def setup
|
443
|
+
@t = Graphics::Simulation.new 100, 100, 16, ""
|
444
|
+
end
|
445
|
+
|
446
|
+
def test_registering_rainbows
|
447
|
+
spectrum = Graphics::Hue.new
|
448
|
+
@t.initialize_rainbow spectrum, "spectrum"
|
449
|
+
assert_equal @t.color[:red], @t.color[:spectrum_0]
|
450
|
+
assert_equal @t.color[:green], @t.color[:spectrum_120]
|
451
|
+
assert_equal @t.color[:blue], @t.color[:spectrum_240]
|
452
|
+
end
|
453
|
+
end
|
454
|
+
|
440
455
|
# class TestTrail < Minitest::Test
|
441
456
|
# def test_draw
|
442
457
|
# raise NotImplementedError, 'Need to write test_draw'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: graphics
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.0b5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Davis
|
@@ -10,9 +10,9 @@ bindir: bin
|
|
10
10
|
cert_chain:
|
11
11
|
- |
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
|
-
|
13
|
+
MIIDPjCCAiagAwIBAgIBAzANBgkqhkiG9w0BAQUFADBFMRMwEQYDVQQDDApyeWFu
|
14
14
|
ZC1ydWJ5MRkwFwYKCZImiZPyLGQBGRYJemVuc3BpZGVyMRMwEQYKCZImiZPyLGQB
|
15
|
-
|
15
|
+
GRYDY29tMB4XDTE1MDkxOTIwNTEyMloXDTE2MDkxODIwNTEyMlowRTETMBEGA1UE
|
16
16
|
AwwKcnlhbmQtcnVieTEZMBcGCgmSJomT8ixkARkWCXplbnNwaWRlcjETMBEGCgmS
|
17
17
|
JomT8ixkARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALda
|
18
18
|
b9DCgK+627gPJkB6XfjZ1itoOQvpqH1EXScSaba9/S2VF22VYQbXU1xQXL/WzCkx
|
@@ -22,14 +22,14 @@ cert_chain:
|
|
22
22
|
qhtV7HJxNKuPj/JFH0D2cswvzznE/a5FOYO68g+YCuFi5L8wZuuM8zzdwjrWHqSV
|
23
23
|
gBEfoTEGr7Zii72cx+sCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
|
24
24
|
HQYDVR0OBBYEFEfFe9md/r/tj/Wmwpy+MI8d9k/hMA0GCSqGSIb3DQEBBQUAA4IB
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
25
|
+
AQB+Hx8xUgrpZa4P8H8gR8zme5kISwQrG80MbpqJV6/G3/ZicRFhN5sjwu0uHGue
|
26
|
+
bd9Cymf6oIRwHVarJux2M32T6bL07Hmi07w2QaPc3MnMKB/D46SRZ2JSSGPFRBTc
|
27
|
+
SilobMRoGs/7B15uGFUEnNrCB/ltMqhwwSx1r++UQPfeySHEV9uqu03E5Vb7J37O
|
28
|
+
2Er6PLXHRiYsIycD1LkMi6YnixdITRHmrqJYE2rsjaIfpIehiusVAPHkNf7qbpHq
|
29
|
+
qx3h45R1CAsObX0SQDIT+rRbQrtKz1GHIZTOFYvEJjUY1XmRTZupD3CJ8Q7sDqSy
|
30
|
+
NLq5jm1fq6Y9Uolu3RJbmycf
|
31
31
|
-----END CERTIFICATE-----
|
32
|
-
date: 2015-
|
32
|
+
date: 2015-11-17 00:00:00.000000000 Z
|
33
33
|
dependencies:
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
name: rsdl
|
@@ -117,7 +117,8 @@ description: |-
|
|
117
117
|
email:
|
118
118
|
- ryand-ruby@zenspider.com
|
119
119
|
executables: []
|
120
|
-
extensions:
|
120
|
+
extensions:
|
121
|
+
- ext/sdl/extconf.rb
|
121
122
|
extra_rdoc_files:
|
122
123
|
- History.rdoc
|
123
124
|
- Manifest.txt
|
metadata.gz.sig
CHANGED
Binary file
|