Method: MicroCisc::Vm::ColorLcdDisplay#update_screen

Defined in:
lib/micro_cisc/vm/color_lcd_display.rb

#update_screenObject



54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/micro_cisc/vm/color_lcd_display.rb', line 54

def update_screen
  pixel_buffer = GdkPixbuf::Pixbuf.new(
    data: @image_data.pack("C*"),
    colorspace: GdkPixbuf::Colorspace::RGB,
    has_alpha: false,
    bits_per_sample: 8,
    width: @w,
    height: @h
  )
  pixel_buffer = pixel_buffer.scale_simple(@w * @scale, @h * @scale, 0)
  new_image = Gtk::Image.new(pixel_buffer)
  @window.remove(@image) if @image
  @window.add(new_image)
  new_image.show
  @window.show
  @image = new_image
end