tea 0.6.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. data/COPYING +674 -0
  2. data/COPYING.LESSER +165 -0
  3. data/README.rdoc +93 -0
  4. data/doc/example/bitmap_draw.rb +21 -0
  5. data/doc/example/bitmap_load.rb +14 -0
  6. data/doc/example/bitmap_new.rb +19 -0
  7. data/doc/example/circle.rb +24 -0
  8. data/doc/example/circle_alpha.rb +45 -0
  9. data/doc/example/circle_alpha_bitmap.rb +51 -0
  10. data/doc/example/circle_bitmap.rb +18 -0
  11. data/doc/example/clip.rb +46 -0
  12. data/doc/example/event_app.rb +45 -0
  13. data/doc/example/event_keyboard.rb +43 -0
  14. data/doc/example/event_mouse.rb +85 -0
  15. data/doc/example/font_hello.rb +22 -0
  16. data/doc/example/font_word_wrap.rb +44 -0
  17. data/doc/example/grab.rb +28 -0
  18. data/doc/example/init.rb +10 -0
  19. data/doc/example/lines.rb +49 -0
  20. data/doc/example/lines_aa.rb +44 -0
  21. data/doc/example/lines_alpha.rb +33 -0
  22. data/doc/example/point.rb +26 -0
  23. data/doc/example/rect.rb +15 -0
  24. data/doc/example/rect_alpha.rb +75 -0
  25. data/doc/example/screen_set_mode.rb +18 -0
  26. data/doc/example/screen_update.rb +14 -0
  27. data/doc/example/sfont_hello.rb +22 -0
  28. data/doc/example/smile.png +0 -0
  29. data/doc/example/smile_bounce.rb +44 -0
  30. data/doc/example/smile_move.rb +58 -0
  31. data/doc/example/smile_move_2.rb +78 -0
  32. data/doc/example/sound.rb +101 -0
  33. data/doc/example/state_app.rb +33 -0
  34. data/doc/example/state_keyboard.rb +23 -0
  35. data/doc/example/state_mouse.rb +60 -0
  36. data/doc/key_constants.textile +129 -0
  37. data/doc/key_modifiers.textile +19 -0
  38. data/doc/reference.textile +421 -0
  39. data/lib/tea.rb +34 -0
  40. data/lib/tea/c_bitmap.rb +122 -0
  41. data/lib/tea/c_error.rb +11 -0
  42. data/lib/tea/c_font.rb +302 -0
  43. data/lib/tea/c_sound.rb +144 -0
  44. data/lib/tea/m_color.rb +50 -0
  45. data/lib/tea/m_event.rb +65 -0
  46. data/lib/tea/m_event_app.rb +96 -0
  47. data/lib/tea/m_event_dispatch.rb +54 -0
  48. data/lib/tea/m_event_keyboard.rb +311 -0
  49. data/lib/tea/m_event_mouse.rb +189 -0
  50. data/lib/tea/mix_blitting.rb +31 -0
  51. data/lib/tea/mix_clipping.rb +71 -0
  52. data/lib/tea/mix_grabbing.rb +86 -0
  53. data/lib/tea/mix_image_saving.rb +70 -0
  54. data/lib/tea/mix_primitive.rb +613 -0
  55. data/lib/tea/o_screen.rb +98 -0
  56. metadata +137 -0
@@ -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
+