Class: Tea::Screen

Inherits:
Object
  • Object
show all
Extended by:
Blitting, Clipping, Grabbing, ImageSaving, Primitive
Defined in:
lib/tea/o_screen.rb

Overview

A Bitmap-like object that displays its contents on the screen when drawn to and updated.

Constant Summary collapse

BITS_PER_PIXEL =

Video buffer depth.

32

Constants included from Primitive

Primitive::BLEND_MIXER, Primitive::REPLACE_MIXER

Class Method Summary collapse

Methods included from Blitting

blit

Methods included from Clipping

clip

Methods included from Grabbing

grab, grabbing_clip

Methods included from ImageSaving

save

Methods included from Primitive

[], []=, circle, clear, line, rect

Class Method Details

.blitting_bufferObject



68
69
70
# File 'lib/tea/o_screen.rb', line 68

def Screen.blitting_buffer
  @screen
end

.clipping_bufferObject



73
74
75
# File 'lib/tea/o_screen.rb', line 73

def Screen.clipping_buffer
  @screen
end

.grabbing_bufferObject



78
79
80
# File 'lib/tea/o_screen.rb', line 78

def Screen.grabbing_buffer
  @screen
end

.hObject

Get the screen height in pixels.



58
59
60
# File 'lib/tea/o_screen.rb', line 58

def Screen.h
  @screen.h
end

.image_saving_bufferObject



83
84
85
# File 'lib/tea/o_screen.rb', line 83

def Screen.image_saving_buffer
  @screen
end

.mode_set?Boolean

Check if Screen.set_mode has been called yet.

Returns:

  • (Boolean)


41
42
43
# File 'lib/tea/o_screen.rb', line 41

def Screen.mode_set?
  @screen ? true : false
end

.primitive_bufferObject



88
89
90
# File 'lib/tea/o_screen.rb', line 88

def Screen.primitive_buffer
  @screen
end

.register_bitmap_for_optimizing(bitmap) ⇒ Object

Register a Bitmap object to be optimised to the Screen’s format when a screen mode is set.



47
48
49
# File 'lib/tea/o_screen.rb', line 47

def Screen.register_bitmap_for_optimizing(bitmap)
  @bitmaps_to_optimize << WeakRef.new(bitmap)
end

.set_mode(width, height) ⇒ Object

Set or change the screen video mode, giving a width * height screen buffer.



25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/tea/o_screen.rb', line 25

def Screen.set_mode(width, height)
  @screen = SDL::Screen.open(width, height, BITS_PER_PIXEL, SDL::SWSURFACE)

  # Optimize Bitmaps that registered for it.
  (0...(@bitmaps_to_optimize.length)).to_a.reverse.each do |opt_index|
    begin
      @bitmaps_to_optimize[opt_index].optimize_for_screen
    rescue WeakRef::RefError
      @bitmaps_to_optimize.delete_at opt_index
    end
  end
rescue SDL::Error => e
  raise Tea::Error, e.message, e.backtrace
end

.updateObject

Update the screen so that things drawn on it are displayed.



63
64
65
# File 'lib/tea/o_screen.rb', line 63

def Screen.update
  @screen.flip
end

.wObject

Get the screen width in pixels.



53
54
55
# File 'lib/tea/o_screen.rb', line 53

def Screen.w
  @screen.w
end