mirror of https://github.com/OpenRCT2/OpenRCT2.git
parent
67a8d833ea
commit
4661262572
|
@ -598,7 +598,7 @@ static void window_editor_inventions_list_paint(rct_window* w, rct_drawpixelinfo
|
|||
screenPos = w->windowPos + ScreenCoordsXY{ widget->left + 1, widget->top + 1 };
|
||||
width = widget->width() - 1;
|
||||
int32_t height = widget->height() - 1;
|
||||
if (clip_drawpixelinfo(&clipDPI, dpi, screenPos.x, screenPos.y, width, height))
|
||||
if (clip_drawpixelinfo(&clipDPI, dpi, screenPos, width, height))
|
||||
{
|
||||
object_draw_preview(object, &clipDPI, width, height);
|
||||
}
|
||||
|
|
|
@ -1050,7 +1050,7 @@ static void window_editor_object_selection_paint(rct_window* w, rct_drawpixelinf
|
|||
auto screenPos = w->windowPos + ScreenCoordsXY{ widget->left + 1, widget->top + 1 };
|
||||
width = widget->width() - 1;
|
||||
int32_t height = widget->height() - 1;
|
||||
if (clip_drawpixelinfo(&clipDPI, dpi, screenPos.x, screenPos.y, width, height))
|
||||
if (clip_drawpixelinfo(&clipDPI, dpi, screenPos, width, height))
|
||||
{
|
||||
object_draw_preview(_loadedObject, &clipDPI, width, height);
|
||||
}
|
||||
|
|
|
@ -602,7 +602,7 @@ static void window_game_bottom_toolbar_draw_news_item(rct_drawpixelinfo* dpi, rc
|
|||
break;
|
||||
|
||||
rct_drawpixelinfo cliped_dpi;
|
||||
if (!clip_drawpixelinfo(&cliped_dpi, dpi, screenCoords.x + 1, screenCoords.y + 1, 22, 22))
|
||||
if (!clip_drawpixelinfo(&cliped_dpi, dpi, screenCoords + ScreenCoordsXY{ 1, 1 }, 22, 22))
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -865,7 +865,7 @@ static void window_guest_overview_tab_paint(rct_window* w, rct_drawpixelinfo* dp
|
|||
height++;
|
||||
|
||||
rct_drawpixelinfo clip_dpi;
|
||||
if (!clip_drawpixelinfo(&clip_dpi, dpi, screenCoords.x, screenCoords.y, width, height))
|
||||
if (!clip_drawpixelinfo(&clip_dpi, dpi, screenCoords, width, height))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
@ -1093,7 +1093,7 @@ void window_guest_overview_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
int32_t top = widget->top + w->windowPos.y;
|
||||
int32_t height = widget->height();
|
||||
rct_drawpixelinfo dpi_marquee;
|
||||
if (!clip_drawpixelinfo(&dpi_marquee, dpi, left, top, width, height))
|
||||
if (!clip_drawpixelinfo(&dpi_marquee, dpi, { left, top }, width, height))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -485,7 +485,7 @@ static void window_multiplayer_information_paint(rct_window* w, rct_drawpixelinf
|
|||
window_multiplayer_draw_tab_images(w, dpi);
|
||||
|
||||
rct_drawpixelinfo clippedDPI;
|
||||
if (clip_drawpixelinfo(&clippedDPI, dpi, w->windowPos.x, w->windowPos.y, w->width, w->height))
|
||||
if (clip_drawpixelinfo(&clippedDPI, dpi, w->windowPos, w->width, w->height))
|
||||
{
|
||||
dpi = &clippedDPI;
|
||||
|
||||
|
|
|
@ -323,7 +323,7 @@ static void window_network_draw_graph(
|
|||
height = height - 2;
|
||||
|
||||
rct_drawpixelinfo clippedDPI;
|
||||
if (!clip_drawpixelinfo(&clippedDPI, dpi, x, y, width, height))
|
||||
if (!clip_drawpixelinfo(&clippedDPI, dpi, { x, y }, width, height))
|
||||
return;
|
||||
|
||||
dpi = &clippedDPI;
|
||||
|
@ -391,7 +391,7 @@ static void window_network_information_paint(rct_window* w, rct_drawpixelinfo* d
|
|||
const int32_t graphHeight = (totalHeight - totalHeightText - heightTab) / 2;
|
||||
|
||||
rct_drawpixelinfo clippedDPI;
|
||||
if (clip_drawpixelinfo(&clippedDPI, dpi, w->windowPos.x, w->windowPos.y, w->width, w->height))
|
||||
if (clip_drawpixelinfo(&clippedDPI, dpi, w->windowPos, w->width, w->height))
|
||||
{
|
||||
dpi = &clippedDPI;
|
||||
|
||||
|
|
|
@ -292,7 +292,7 @@ static void window_news_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32
|
|||
case NEWS_ITEM_PEEP_ON_RIDE:
|
||||
{
|
||||
rct_drawpixelinfo cliped_dpi;
|
||||
if (!clip_drawpixelinfo(&cliped_dpi, dpi, screenCoords.x + 1, screenCoords.y + 1, 22, 22))
|
||||
if (!clip_drawpixelinfo(&cliped_dpi, dpi, screenCoords + ScreenCoordsXY{ 1, 1 }, 22, 22))
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -1320,7 +1320,7 @@ static void window_ride_draw_tab_vehicle(rct_drawpixelinfo* dpi, rct_window* w)
|
|||
screenCoords += w->windowPos;
|
||||
|
||||
rct_drawpixelinfo clipDPI;
|
||||
if (!clip_drawpixelinfo(&clipDPI, dpi, screenCoords.x, screenCoords.y, width, height))
|
||||
if (!clip_drawpixelinfo(&clipDPI, dpi, screenCoords, width, height))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
@ -5104,7 +5104,7 @@ static void window_ride_colour_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
if (widget->type != WWT_EMPTY)
|
||||
{
|
||||
if (clip_drawpixelinfo(
|
||||
&clippedDpi, dpi, w->windowPos.x + widget->left + 1, w->windowPos.y + widget->top + 1, widget->width(),
|
||||
&clippedDpi, dpi, w->windowPos + ScreenCoordsXY{ widget->left + 1, widget->top + 1 }, widget->width(),
|
||||
widget->height()))
|
||||
{
|
||||
gfx_clear(&clippedDpi, PALETTE_INDEX_12);
|
||||
|
|
|
@ -2334,7 +2334,7 @@ static void window_ride_construction_paint(rct_window* w, rct_drawpixelinfo* dpi
|
|||
auto screenCoords = ScreenCoordsXY{ w->windowPos.x + widget->left + 1, w->windowPos.y + widget->top + 1 };
|
||||
width = widget->width() - 1;
|
||||
height = widget->height() - 1;
|
||||
if (clip_drawpixelinfo(&clipdpi, dpi, screenCoords.x, screenCoords.y, width, height))
|
||||
if (clip_drawpixelinfo(&clipdpi, dpi, screenCoords, width, height))
|
||||
{
|
||||
window_ride_construction_draw_track_piece(
|
||||
w, &clipdpi, rideIndex, trackType, trackDirection, liftHillAndInvertedState, width, height);
|
||||
|
|
|
@ -1239,7 +1239,7 @@ void window_scenery_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32_t s
|
|||
|
||||
rct_scenery_entry* sceneryEntry;
|
||||
rct_drawpixelinfo clipdpi;
|
||||
if (clip_drawpixelinfo(&clipdpi, dpi, left + 1, top + 1, SCENERY_BUTTON_WIDTH - 2, SCENERY_BUTTON_HEIGHT - 2))
|
||||
if (clip_drawpixelinfo(&clipdpi, dpi, { left + 1, top + 1 }, SCENERY_BUTTON_WIDTH - 2, SCENERY_BUTTON_HEIGHT - 2))
|
||||
{
|
||||
if (currentSceneryGlobal.SceneryType == SCENERY_TYPE_BANNER)
|
||||
{
|
||||
|
|
|
@ -1017,7 +1017,7 @@ void window_staff_overview_tab_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
height++;
|
||||
|
||||
rct_drawpixelinfo clip_dpi;
|
||||
if (!clip_drawpixelinfo(&clip_dpi, dpi, screenCoords.x, screenCoords.y, width, height))
|
||||
if (!clip_drawpixelinfo(&clip_dpi, dpi, screenCoords, width, height))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -609,8 +609,10 @@ void window_staff_list_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
|
||||
rct_drawpixelinfo sprite_dpi;
|
||||
if (clip_drawpixelinfo(
|
||||
&sprite_dpi, dpi, window_staff_list_widgets[WIDX_STAFF_LIST_ENTERTAINERS_TAB].left + w->windowPos.x + 1,
|
||||
window_staff_list_widgets[WIDX_STAFF_LIST_ENTERTAINERS_TAB].top + w->windowPos.y + 1,
|
||||
&sprite_dpi, dpi,
|
||||
w->windowPos
|
||||
+ ScreenCoordsXY{ window_staff_list_widgets[WIDX_STAFF_LIST_ENTERTAINERS_TAB].left + 1,
|
||||
window_staff_list_widgets[WIDX_STAFF_LIST_ENTERTAINERS_TAB].top + 1 },
|
||||
window_staff_list_widgets[WIDX_STAFF_LIST_ENTERTAINERS_TAB].right
|
||||
- window_staff_list_widgets[WIDX_STAFF_LIST_ENTERTAINERS_TAB].left - 1,
|
||||
window_staff_list_widgets[WIDX_STAFF_LIST_ENTERTAINERS_TAB].bottom
|
||||
|
|
|
@ -515,7 +515,7 @@ static void window_track_place_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
|
||||
// Draw mini tile preview
|
||||
rct_drawpixelinfo clippedDpi;
|
||||
if (clip_drawpixelinfo(&clippedDpi, dpi, w->windowPos.x + 4, w->windowPos.y + 18, 168, 78))
|
||||
if (clip_drawpixelinfo(&clippedDpi, dpi, w->windowPos + ScreenCoordsXY{ 4, 18 }, 168, 78))
|
||||
{
|
||||
rct_g1_element g1temp = {};
|
||||
g1temp.offset = _window_track_place_mini_preview.data();
|
||||
|
|
|
@ -675,19 +675,20 @@ void gfx_invalidate_screen()
|
|||
* height (dx)
|
||||
* drawpixelinfo (edi)
|
||||
*/
|
||||
bool clip_drawpixelinfo(rct_drawpixelinfo* dst, rct_drawpixelinfo* src, int32_t x, int32_t y, int32_t width, int32_t height)
|
||||
bool clip_drawpixelinfo(
|
||||
rct_drawpixelinfo* dst, rct_drawpixelinfo* src, const ScreenCoordsXY& coords, int32_t width, int32_t height)
|
||||
{
|
||||
int32_t right = x + width;
|
||||
int32_t bottom = y + height;
|
||||
int32_t right = coords.x + width;
|
||||
int32_t bottom = coords.y + height;
|
||||
|
||||
*dst = *src;
|
||||
dst->zoom_level = 0;
|
||||
|
||||
if (x > dst->x)
|
||||
if (coords.x > dst->x)
|
||||
{
|
||||
uint16_t clippedFromLeft = x - dst->x;
|
||||
uint16_t clippedFromLeft = coords.x - dst->x;
|
||||
dst->width -= clippedFromLeft;
|
||||
dst->x = x;
|
||||
dst->x = coords.x;
|
||||
dst->pitch += clippedFromLeft;
|
||||
dst->bits += clippedFromLeft;
|
||||
}
|
||||
|
@ -699,11 +700,11 @@ bool clip_drawpixelinfo(rct_drawpixelinfo* dst, rct_drawpixelinfo* src, int32_t
|
|||
dst->pitch += stickOutWidth;
|
||||
}
|
||||
|
||||
if (y > dst->y)
|
||||
if (coords.y > dst->y)
|
||||
{
|
||||
uint16_t clippedFromTop = y - dst->y;
|
||||
uint16_t clippedFromTop = coords.y - dst->y;
|
||||
dst->height -= clippedFromTop;
|
||||
dst->y = y;
|
||||
dst->y = coords.y;
|
||||
uint32_t bitsPlus = (dst->pitch + dst->width) * clippedFromTop;
|
||||
dst->bits += bitsPlus;
|
||||
}
|
||||
|
@ -716,8 +717,8 @@ bool clip_drawpixelinfo(rct_drawpixelinfo* dst, rct_drawpixelinfo* src, int32_t
|
|||
|
||||
if (dst->width > 0 && dst->height > 0)
|
||||
{
|
||||
dst->x -= x;
|
||||
dst->y -= y;
|
||||
dst->x -= coords.x;
|
||||
dst->y -= coords.y;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -580,8 +580,8 @@ extern bool gTinyFontAntiAliased;
|
|||
extern rct_drawpixelinfo gScreenDPI;
|
||||
extern rct_drawpixelinfo gWindowDPI;
|
||||
|
||||
//
|
||||
bool clip_drawpixelinfo(rct_drawpixelinfo* dst, rct_drawpixelinfo* src, int32_t x, int32_t y, int32_t width, int32_t height);
|
||||
bool clip_drawpixelinfo(
|
||||
rct_drawpixelinfo* dst, rct_drawpixelinfo* src, const ScreenCoordsXY& coords, int32_t width, int32_t height);
|
||||
void gfx_set_dirty_blocks(int16_t left, int16_t top, int16_t right, int16_t bottom);
|
||||
void gfx_draw_all_dirty_blocks();
|
||||
void gfx_invalidate_screen();
|
||||
|
|
Loading…
Reference in New Issue