lib/libtcod/console.rb in libtcod-0.0.3 vs lib/libtcod/console.rb in libtcod-0.0.4
- old
+ new
@@ -1,80 +1,93 @@
-module TCOD
- class Console
- attr_accessor :width, :height, :ptr
-
- def self.root
- @root ||= TCOD::Console.new(0, 0, true)
- end
-
- def initialize(w, h, root=false)
- if root
- @ptr = nil
- else
- @width = w
- @height = w
- @ptr = TCOD.console_new(w, h)
- end
- end
-
- def init_root(width, height, title, fullscreen=false, renderer=RENDERER_SDL)
- TCOD.console_init_root(width, height, title, fullscreen, renderer)
- Console.root.width = width
- Console.root.height = height
- end
-
- def set_window_title(title); TCOD.console_set_window_title(title); end
- def set_fullscreen(bool); TCOD.console_set_fullscreen(bool); end
- def is_fullscreen?; TCOD.console_is_fullscreen; end
- def window_closed?; TCOD.console_is_window_closed; end
- def set_custom_font(fontFile, flags, nb_char_horiz=0, nb_char_vertic=0)
- TCOD.console_set_custom_font(fontFile, flags, nb_char_horiz, nb_char_vertic)
- end
- def map_ascii_code_to_font(asciiCode, fontCharX, fontCharY)
- TCOD.console_map_ascii_code_to_font(asciiCode.ord, fontCharX, fontCharY)
- end
- def map_ascii_codes_to_font(asciiCode, nbCodes, fontCharX, fontCharY)
- TCOD.console_map_ascii_code_to_font(asciiCode.ord, nbCodes, fontCharX, fontCharY)
- end
-
-
- def set_default_background(color); TCOD.console_set_default_background(@ptr, color); end
- def set_default_foreground(color); TCOD.console_set_default_foreground(@ptr, color); end
- def clear; TCOD.console_clear(@ptr); end
-
- def put_char(x, y, c, flag=BKGND_DEFAULT)
- TCOD.console_put_char(@ptr, x, y, c.ord, flag)
- end
- def put_char_ex(x, y, c, foreground, background)
- TCOD.console_put_char_ex(@ptr, x, y, c.ord, foreground, background)
- end
- def set_background_flag(bkgnd_flag)
- TCOD.console_set_background_flag(@ptr, bkgnd_flag)
- end
- def set_alignment(alignment)
- TCOD.console_set_alignment(@ptr, alignment)
- end
- def print(x, y, fmt, *args)
- TCOD.console_print(@ptr, x, y, fmt, *args)
- end
- def print_ex(x, y, bkgnd_flag, alignment, fmt, *args)
- TCOD.console_print_ex(@ptr, x, y, bkgnd_flag, alignment, fmt, *args)
- end
- def print_rect(x, y, w, h, fmt, *args)
- TCOD.console_print_rect(@ptr, x, y, w, h, fmt, *args)
- end
- def print_rect_ex(x, y, w, h, bkgnd_flag, alignment, fmt, *args)
- TCOD.console_print_rect_ex(@ptr, x, y, w, h, bkgnf_flag, alignment, fmt, *args)
- end
-
- def flush; TCOD.console_flush; end
-
- def check_for_keypress(flags=TCOD::KEY_PRESSED); TCOD.console_check_for_keypress(flags); end
- def wait_for_keypress(flush=false); TCOD.console_wait_for_keypress(flush); end
- def key_pressed?(keycode); TCOD.console_is_key_pressed(keycode); end
-
- def blit(src, xSrc, ySrc, wSrc, hSrc, xDst, yDst, foregroundAlpha=1.0, backgroundAlpha=1.0)
- TCOD.console_blit(src.ptr, xSrc, ySrc, wSrc, hSrc, @ptr, xDst, yDst, foregroundAlpha, backgroundAlpha)
- end
-
- end
-end
+module TCOD
+ class Console
+ attr_accessor :width, :height, :ptr
+
+ def self.root
+ @root ||= TCOD::Console.new(0, 0, true)
+ end
+
+ def initialize(w, h, root=false)
+ if root
+ @ptr = nil
+ else
+ @width = w
+ @height = w
+ @ptr = TCOD.console_new(w, h)
+ end
+
+ ObjectSpace.define_finalizer(self, self.class.finalize(ptr))
+ end
+
+ def init_root(width, height, title, fullscreen=false, renderer=RENDERER_SDL)
+ TCOD.console_init_root(width, height, title, fullscreen, renderer)
+ Console.root.width = width
+ Console.root.height = height
+ end
+
+ def set_window_title(title); TCOD.console_set_window_title(title); end
+ def set_fullscreen(bool); TCOD.console_set_fullscreen(bool); end
+ def is_fullscreen?; TCOD.console_is_fullscreen; end
+ def window_closed?; TCOD.console_is_window_closed; end
+ def set_custom_font(fontFile, flags, nb_char_horiz=0, nb_char_vertic=0)
+ TCOD.console_set_custom_font(fontFile, flags, nb_char_horiz, nb_char_vertic)
+ end
+ def map_ascii_code_to_font(asciiCode, fontCharX, fontCharY)
+ TCOD.console_map_ascii_code_to_font(asciiCode.ord, fontCharX, fontCharY)
+ end
+ def map_ascii_codes_to_font(asciiCode, nbCodes, fontCharX, fontCharY)
+ TCOD.console_map_ascii_code_to_font(asciiCode.ord, nbCodes, fontCharX, fontCharY)
+ end
+
+
+ def set_default_background(color); TCOD.console_set_default_background(@ptr, color); end
+ def set_default_foreground(color); TCOD.console_set_default_foreground(@ptr, color); end
+ def clear; TCOD.console_clear(@ptr); end
+
+ def set_char_background(x, y, col, flag=TCOD::BKGND_SET)
+ TCOD.console_set_char_background(@ptr, x, y, col, flag)
+ end
+
+ def set_char_foreground(x, y, col)
+ TCOD.console_set_char_foreground(@ptr, x, y, col)
+ end
+
+ def put_char(x, y, c, flag=BKGND_DEFAULT)
+ TCOD.console_put_char(@ptr, x, y, c.ord, flag)
+ end
+ def put_char_ex(x, y, c, foreground, background)
+ TCOD.console_put_char_ex(@ptr, x, y, c.ord, foreground, background)
+ end
+ def set_background_flag(bkgnd_flag)
+ TCOD.console_set_background_flag(@ptr, bkgnd_flag)
+ end
+ def set_alignment(alignment)
+ TCOD.console_set_alignment(@ptr, alignment)
+ end
+ def print(x, y, fmt, *args)
+ TCOD.console_print(@ptr, x, y, fmt, *args)
+ end
+ def print_ex(x, y, bkgnd_flag, alignment, fmt, *args)
+ TCOD.console_print_ex(@ptr, x, y, bkgnd_flag, alignment, fmt, *args)
+ end
+ def print_rect(x, y, w, h, fmt, *args)
+ TCOD.console_print_rect(@ptr, x, y, w, h, fmt, *args)
+ end
+ def print_rect_ex(x, y, w, h, bkgnd_flag, alignment, fmt, *args)
+ TCOD.console_print_rect_ex(@ptr, x, y, w, h, bkgnf_flag, alignment, fmt, *args)
+ end
+
+ def flush; TCOD.console_flush; end
+
+ def check_for_keypress(flags=TCOD::KEY_PRESSED); TCOD.console_check_for_keypress(flags); end
+ def wait_for_keypress(flush=false); TCOD.console_wait_for_keypress(flush); end
+ def key_pressed?(keycode); TCOD.console_is_key_pressed(keycode); end
+
+ def blit(src, xSrc, ySrc, wSrc, hSrc, xDst, yDst, foregroundAlpha=1.0, backgroundAlpha=1.0)
+ TCOD.console_blit(src.ptr, xSrc, ySrc, wSrc, hSrc, @ptr, xDst, yDst, foregroundAlpha, backgroundAlpha)
+ end
+
+ def self.finalize(ptr)
+ proc { TCOD.console_delete(ptr) }
+ end
+ end
+end