Method: MicroCisc::Vm::ColorLcdDisplay#initialize
- Defined in:
- lib/micro_cisc/vm/color_lcd_display.rb
#initialize(device_id, mem_blocks, width, height, bit_mode) ⇒ ColorLcdDisplay
Returns a new instance of ColorLcdDisplay.
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/micro_cisc/vm/color_lcd_display.rb', line 10 def initialize(device_id, mem_blocks, width, height, bit_mode) super(device_id, Device::TYPE_BLOCK_MEMORY, mem_blocks) @w = width @h = height @bit_mode = COLOR_MODES.include?(bit_mode) ? bit_mode : COLOR_MODES.first @image_data = Array.new(@w * @h * 3).map { 0 } @scale = if @w <= 320 4 elsif @w <= 640 2 else 1 end @control_mem[6] = @w @control_mem[7] = @h @privileged_read = @privileged_read | 0x0C0 Gtk.init @window = Gtk::Window.new.set_default_size(@w * @scale, @h * @scale) @window.set_title("uCISC Virtual Machine") @window.set_resizable(false) update_screen @window.signal_connect("destroy") do Gtk.main_quit end GLib::Timeout.add(5) do do_update true end @window.show @window_thread = Thread.new do Gtk.main end end |