graphics 1.0.0b4 → 1.0.0b5
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.
- 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
|