Files
dangerzone/src/engine/render/rect.c
T
2026-10-06 12:07:12 +02:00

45 lines
953 B
C

#include <dangerzone/engine.h>
#include <dangerzone/render/misc.h>
#include <dangerzone/render/rect.h>
#include <stdint.h>
/**
* draws a rectangle with its left-top corner at (x,y) with
* a width of 'w' and height of 'h' filled with color 'color'
*/
void
put_rect(
uint32_t x,
uint32_t y,
uint32_t w,
uint32_t h,
uint32_t color
) {
for (int i = x; i < x + w; i++) {
for (int j = y; j < y + h; j++) {
put_pixel(i, j, color);
}
}
mark_dirty_rect(x, y, w, h);
}
void
clear_rect(int x, int y, int w, int h, uint32_t color)
{
for (int py = y; py < y + h; ++py) {
for (int px = x; px < x + w; ++px) {
if (px >= 0 &&
px < game_state->width &&
py >= 0 &&
py < game_state->height) {
game_state->framebuffer[
py * game_state->width + px
] = color;
}
}
}
mark_dirty_rect(x, y, w, h);
}