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
|