[GTK3] Add function to draw grids in VRAM viewer
This commit is contained in:
parent
952934a3d7
commit
e7cbc71fd6
46
gtk3/main.c
46
gtk3/main.c
@ -716,9 +716,35 @@ static gboolean on_draw_vram_viewer_tileset(GtkWidget *widget, cairo_t *cr, gpoi
|
||||
cairo_format_stride_for_width(CAIRO_FORMAT_RGB24, 256)
|
||||
);
|
||||
|
||||
cairo_scale(cr, 2.0, 2.0);
|
||||
cairo_set_source_surface(cr, surface, 0, 0);
|
||||
cairo_pattern_set_filter(cairo_get_source(cr), CAIRO_FILTER_NEAREST);
|
||||
cairo_paint(cr);
|
||||
|
||||
if (gtk_toggle_button_get_active(gtkget(GTK_TOGGLE_BUTTON, "vram_viewer_tileset_toggle_grid_button"))) {
|
||||
cairo_set_source_rgba(cr, 0.0, 0.0, 0.0, 0.25);
|
||||
cairo_set_line_width(cr, 1);
|
||||
|
||||
const int divisions_x = 256 / 8;
|
||||
const int divisions_y = 192 / 8;
|
||||
|
||||
for (int i = 0; i < divisions_x; i++) {
|
||||
const int j = 256 * i;
|
||||
|
||||
cairo_move_to(cr, j / divisions_x, 0);
|
||||
cairo_line_to(cr, j / divisions_x, 192);
|
||||
}
|
||||
|
||||
for (int i = 0; i < divisions_y; i++) {
|
||||
const int j = 192 * i;
|
||||
|
||||
cairo_move_to(cr, 0, j / divisions_y);
|
||||
cairo_line_to(cr, 256, j / divisions_y);
|
||||
}
|
||||
|
||||
cairo_stroke(cr);
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@ -741,9 +767,29 @@ static gboolean on_draw_vram_viewer_tilemap(GtkWidget *widget, cairo_t *cr, gpoi
|
||||
cairo_format_stride_for_width(CAIRO_FORMAT_RGB24, 256)
|
||||
);
|
||||
|
||||
cairo_scale(cr, 2.0, 2.0);
|
||||
cairo_set_source_surface(cr, surface, 0, 0);
|
||||
cairo_pattern_set_filter(cairo_get_source(cr), CAIRO_FILTER_NEAREST);
|
||||
cairo_paint(cr);
|
||||
|
||||
if (gtk_toggle_button_get_active(gtkget(GTK_TOGGLE_BUTTON, "vram_viewer_tilemap_toggle_grid_button"))) {
|
||||
cairo_set_source_rgba(cr, 0.0, 0.0, 0.0, 0.25);
|
||||
cairo_set_line_width(cr, 1);
|
||||
|
||||
const int divisions = 256 / 8;
|
||||
|
||||
for (int i = 0; i < divisions; i++) {
|
||||
const int j = 256 * i;
|
||||
|
||||
cairo_move_to(cr, j / divisions, 0);
|
||||
cairo_line_to(cr, j / divisions, 256);
|
||||
cairo_move_to(cr, 0, j / divisions);
|
||||
cairo_line_to(cr, 256, j / divisions);
|
||||
}
|
||||
|
||||
cairo_stroke(cr);
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -318,7 +318,6 @@ Maximilian Mader https://github.com/max-m</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="margin_top">5</property>
|
||||
<property name="margin_bottom">10</property>
|
||||
<items></items>
|
||||
<signal name="changed" handler="on_boot_rom_location_changed" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
@ -596,23 +595,6 @@ Maximilian Mader https://github.com/max-m</property>
|
||||
<property name="position">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="aspect_ratio_toggle">
|
||||
<property name="label" translatable="yes">Keep Aspect Ratio</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">False</property>
|
||||
<property name="margin_top">5</property>
|
||||
<property name="margin_bottom">10</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
<signal name="toggled" handler="on_keep_aspect_ratio_changed" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">4</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="integer_scaling_toggle">
|
||||
<property name="label" translatable="yes">Use Integer Scaling</property>
|
||||
@ -630,9 +612,25 @@ Maximilian Mader https://github.com/max-m</property>
|
||||
<property name="position">4</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="aspect_ratio_toggle">
|
||||
<property name="label" translatable="yes">Keep Aspect Ratio</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">False</property>
|
||||
<property name="margin_top">5</property>
|
||||
<property name="margin_bottom">10</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
<signal name="toggled" handler="on_keep_aspect_ratio_changed" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">4</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="menubar_override_selector_label">
|
||||
<property name="visible">False</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">Main Menu Override</property>
|
||||
</object>
|
||||
@ -644,7 +642,6 @@ Maximilian Mader https://github.com/max-m</property>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkComboBoxText" id="menubar_override_selector">
|
||||
<property name="visible">False</property>
|
||||
<property name="can_focus">False</property>
|
||||
<items>
|
||||
<item id="auto" translatable="yes">Automatic</item>
|
||||
@ -1155,8 +1152,6 @@ Maximilian Mader https://github.com/max-m</property>
|
||||
<object class="GtkWindow" id="vram_viewer">
|
||||
<property name="can_focus">False</property>
|
||||
<property name="title" translatable="yes">VRAM Viewer</property>
|
||||
<property name="default_width">512</property>
|
||||
<property name="default_height">384</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
@ -1259,6 +1254,8 @@ Maximilian Mader https://github.com/max-m</property>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkDrawingArea" id="vram_viewer_tileset_canvas">
|
||||
<property name="width_request">512</property>
|
||||
<property name="height_request">384</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="app_paintable">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
@ -1341,7 +1338,7 @@ Maximilian Mader https://github.com/max-m</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkToggleButton" id="vram_viewer_tilemap_toggle_grid">
|
||||
<object class="GtkToggleButton" id="vram_viewer_tilemap_toggle_grid_button">
|
||||
<property name="label" translatable="yes">Grid</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
@ -1399,6 +1396,8 @@ Maximilian Mader https://github.com/max-m</property>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkDrawingArea" id="vram_viewer_tilemap_canvas">
|
||||
<property name="width_request">512</property>
|
||||
<property name="height_request">512</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="app_paintable">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
|
Loading…
Reference in New Issue
Block a user