tea 0.6.1
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/COPYING +674 -0
- data/COPYING.LESSER +165 -0
- data/README.rdoc +93 -0
- data/doc/example/bitmap_draw.rb +21 -0
- data/doc/example/bitmap_load.rb +14 -0
- data/doc/example/bitmap_new.rb +19 -0
- data/doc/example/circle.rb +24 -0
- data/doc/example/circle_alpha.rb +45 -0
- data/doc/example/circle_alpha_bitmap.rb +51 -0
- data/doc/example/circle_bitmap.rb +18 -0
- data/doc/example/clip.rb +46 -0
- data/doc/example/event_app.rb +45 -0
- data/doc/example/event_keyboard.rb +43 -0
- data/doc/example/event_mouse.rb +85 -0
- data/doc/example/font_hello.rb +22 -0
- data/doc/example/font_word_wrap.rb +44 -0
- data/doc/example/grab.rb +28 -0
- data/doc/example/init.rb +10 -0
- data/doc/example/lines.rb +49 -0
- data/doc/example/lines_aa.rb +44 -0
- data/doc/example/lines_alpha.rb +33 -0
- data/doc/example/point.rb +26 -0
- data/doc/example/rect.rb +15 -0
- data/doc/example/rect_alpha.rb +75 -0
- data/doc/example/screen_set_mode.rb +18 -0
- data/doc/example/screen_update.rb +14 -0
- data/doc/example/sfont_hello.rb +22 -0
- data/doc/example/smile.png +0 -0
- data/doc/example/smile_bounce.rb +44 -0
- data/doc/example/smile_move.rb +58 -0
- data/doc/example/smile_move_2.rb +78 -0
- data/doc/example/sound.rb +101 -0
- data/doc/example/state_app.rb +33 -0
- data/doc/example/state_keyboard.rb +23 -0
- data/doc/example/state_mouse.rb +60 -0
- data/doc/key_constants.textile +129 -0
- data/doc/key_modifiers.textile +19 -0
- data/doc/reference.textile +421 -0
- data/lib/tea.rb +34 -0
- data/lib/tea/c_bitmap.rb +122 -0
- data/lib/tea/c_error.rb +11 -0
- data/lib/tea/c_font.rb +302 -0
- data/lib/tea/c_sound.rb +144 -0
- data/lib/tea/m_color.rb +50 -0
- data/lib/tea/m_event.rb +65 -0
- data/lib/tea/m_event_app.rb +96 -0
- data/lib/tea/m_event_dispatch.rb +54 -0
- data/lib/tea/m_event_keyboard.rb +311 -0
- data/lib/tea/m_event_mouse.rb +189 -0
- data/lib/tea/mix_blitting.rb +31 -0
- data/lib/tea/mix_clipping.rb +71 -0
- data/lib/tea/mix_grabbing.rb +86 -0
- data/lib/tea/mix_image_saving.rb +70 -0
- data/lib/tea/mix_primitive.rb +613 -0
- data/lib/tea/o_screen.rb +98 -0
- metadata +137 -0
data/lib/tea/o_screen.rb
ADDED
@@ -0,0 +1,98 @@
|
|
1
|
+
# This file contains the Screen class.
|
2
|
+
|
3
|
+
require 'weakref'
|
4
|
+
|
5
|
+
require 'sdl'
|
6
|
+
|
7
|
+
require 'tea/c_bitmap'
|
8
|
+
require 'tea/mix_blitting'
|
9
|
+
require 'tea/mix_clipping'
|
10
|
+
require 'tea/mix_grabbing'
|
11
|
+
require 'tea/mix_image_saving'
|
12
|
+
require 'tea/mix_primitive'
|
13
|
+
|
14
|
+
#
|
15
|
+
module Tea
|
16
|
+
|
17
|
+
# A Bitmap-like object that displays its contents on the screen when drawn to
|
18
|
+
# and updated.
|
19
|
+
class Screen
|
20
|
+
|
21
|
+
# Video buffer depth.
|
22
|
+
BITS_PER_PIXEL = 32
|
23
|
+
|
24
|
+
# Set or change the screen video mode, giving a width * height screen buffer.
|
25
|
+
def Screen.set_mode(width, height)
|
26
|
+
@screen = SDL::Screen.open(width, height, BITS_PER_PIXEL, SDL::SWSURFACE)
|
27
|
+
optimize_bitmaps
|
28
|
+
rescue SDL::Error => e
|
29
|
+
raise Tea::Error, e.message, e.backtrace
|
30
|
+
end
|
31
|
+
|
32
|
+
# Check if Screen.set_mode has been called yet.
|
33
|
+
def Screen.mode_set?
|
34
|
+
@screen ? true : false
|
35
|
+
end
|
36
|
+
|
37
|
+
# Register a Bitmap object to be optimised to the Screen's format when a
|
38
|
+
# screen mode is set.
|
39
|
+
def Screen.register_bitmap_for_optimizing(bitmap)
|
40
|
+
@bitmaps_to_optimize << WeakRef.new(bitmap)
|
41
|
+
end
|
42
|
+
@bitmaps_to_optimize = []
|
43
|
+
|
44
|
+
# Get the screen width in pixels.
|
45
|
+
def Screen.w
|
46
|
+
@screen.w
|
47
|
+
end
|
48
|
+
|
49
|
+
# Get the screen height in pixels.
|
50
|
+
def Screen.h
|
51
|
+
@screen.h
|
52
|
+
end
|
53
|
+
|
54
|
+
# Update the screen so that things drawn on it are displayed.
|
55
|
+
def Screen.update
|
56
|
+
@screen.flip
|
57
|
+
end
|
58
|
+
|
59
|
+
extend Blitting
|
60
|
+
def Screen.blitting_buffer
|
61
|
+
@screen
|
62
|
+
end
|
63
|
+
|
64
|
+
extend Clipping
|
65
|
+
def Screen.clipping_buffer
|
66
|
+
@screen
|
67
|
+
end
|
68
|
+
|
69
|
+
extend Grabbing
|
70
|
+
def Screen.grabbing_buffer
|
71
|
+
@screen
|
72
|
+
end
|
73
|
+
|
74
|
+
extend ImageSaving
|
75
|
+
def Screen.image_saving_buffer
|
76
|
+
@screen
|
77
|
+
end
|
78
|
+
|
79
|
+
extend Primitive
|
80
|
+
def Screen.primitive_buffer
|
81
|
+
@screen
|
82
|
+
end
|
83
|
+
|
84
|
+
# Convert the internal formats of registered Bitmaps.
|
85
|
+
def Screen.optimize_bitmaps
|
86
|
+
(0...(@bitmaps_to_optimize.length)).to_a.reverse.each do |opt_index|
|
87
|
+
begin
|
88
|
+
@bitmaps_to_optimize[opt_index].optimize_for_screen
|
89
|
+
rescue WeakRef::RefError
|
90
|
+
@bitmaps_to_optimize.delete_at opt_index
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
private_class_method :optimize_bitmaps
|
95
|
+
|
96
|
+
end
|
97
|
+
|
98
|
+
end
|
metadata
ADDED
@@ -0,0 +1,137 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: tea
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.6.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Tung Nguyen
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-10-24 00:00:00 +11:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: rubysdl
|
17
|
+
type: :runtime
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: "0"
|
24
|
+
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rmagick
|
27
|
+
type: :runtime
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: "0"
|
34
|
+
version:
|
35
|
+
description: |
|
36
|
+
Tea is a library for making simpler games from a simpler age.
|
37
|
+
It's designed with these things in mind:
|
38
|
+
|
39
|
+
- 0 is better than 1, and 1 is better than 2.
|
40
|
+
- Simplicity beats speed.
|
41
|
+
- Value and convenience can sometimes beat simplicity.
|
42
|
+
- Procedural beats object-oriented in a dead-heat.
|
43
|
+
|
44
|
+
email: tunginobi@gmail.com
|
45
|
+
executables: []
|
46
|
+
|
47
|
+
extensions: []
|
48
|
+
|
49
|
+
extra_rdoc_files:
|
50
|
+
- README.rdoc
|
51
|
+
files:
|
52
|
+
- COPYING
|
53
|
+
- COPYING.LESSER
|
54
|
+
- README.rdoc
|
55
|
+
- doc/example/bitmap_draw.rb
|
56
|
+
- doc/example/bitmap_load.rb
|
57
|
+
- doc/example/bitmap_new.rb
|
58
|
+
- doc/example/circle.rb
|
59
|
+
- doc/example/circle_alpha.rb
|
60
|
+
- doc/example/circle_alpha_bitmap.rb
|
61
|
+
- doc/example/circle_bitmap.rb
|
62
|
+
- doc/example/clip.rb
|
63
|
+
- doc/example/event_app.rb
|
64
|
+
- doc/example/event_keyboard.rb
|
65
|
+
- doc/example/event_mouse.rb
|
66
|
+
- doc/example/font_hello.rb
|
67
|
+
- doc/example/font_word_wrap.rb
|
68
|
+
- doc/example/grab.rb
|
69
|
+
- doc/example/init.rb
|
70
|
+
- doc/example/lines.rb
|
71
|
+
- doc/example/lines_aa.rb
|
72
|
+
- doc/example/lines_alpha.rb
|
73
|
+
- doc/example/point.rb
|
74
|
+
- doc/example/rect.rb
|
75
|
+
- doc/example/rect_alpha.rb
|
76
|
+
- doc/example/screen_set_mode.rb
|
77
|
+
- doc/example/screen_update.rb
|
78
|
+
- doc/example/sfont_hello.rb
|
79
|
+
- doc/example/smile.png
|
80
|
+
- doc/example/smile_bounce.rb
|
81
|
+
- doc/example/smile_move.rb
|
82
|
+
- doc/example/smile_move_2.rb
|
83
|
+
- doc/example/sound.rb
|
84
|
+
- doc/example/state_app.rb
|
85
|
+
- doc/example/state_keyboard.rb
|
86
|
+
- doc/example/state_mouse.rb
|
87
|
+
- doc/key_constants.textile
|
88
|
+
- doc/key_modifiers.textile
|
89
|
+
- doc/reference.textile
|
90
|
+
- lib/tea.rb
|
91
|
+
- lib/tea/c_bitmap.rb
|
92
|
+
- lib/tea/c_error.rb
|
93
|
+
- lib/tea/c_font.rb
|
94
|
+
- lib/tea/c_sound.rb
|
95
|
+
- lib/tea/m_color.rb
|
96
|
+
- lib/tea/m_event.rb
|
97
|
+
- lib/tea/m_event_app.rb
|
98
|
+
- lib/tea/m_event_dispatch.rb
|
99
|
+
- lib/tea/m_event_keyboard.rb
|
100
|
+
- lib/tea/m_event_mouse.rb
|
101
|
+
- lib/tea/mix_blitting.rb
|
102
|
+
- lib/tea/mix_clipping.rb
|
103
|
+
- lib/tea/mix_grabbing.rb
|
104
|
+
- lib/tea/mix_image_saving.rb
|
105
|
+
- lib/tea/mix_primitive.rb
|
106
|
+
- lib/tea/o_screen.rb
|
107
|
+
has_rdoc: true
|
108
|
+
homepage: http://github.com/tung/tea
|
109
|
+
licenses: []
|
110
|
+
|
111
|
+
post_install_message:
|
112
|
+
rdoc_options:
|
113
|
+
- --charset=UTF-8
|
114
|
+
require_paths:
|
115
|
+
- lib
|
116
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
117
|
+
requirements:
|
118
|
+
- - ">="
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: "0"
|
121
|
+
version:
|
122
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
123
|
+
requirements:
|
124
|
+
- - ">="
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
version: "0"
|
127
|
+
version:
|
128
|
+
requirements:
|
129
|
+
- SDL, SGE
|
130
|
+
- imagemagick
|
131
|
+
rubyforge_project:
|
132
|
+
rubygems_version: 1.3.5
|
133
|
+
signing_key:
|
134
|
+
specification_version: 3
|
135
|
+
summary: A simple game development library for Ruby.
|
136
|
+
test_files: []
|
137
|
+
|