Add blit function
This commit is contained in:
parent
250f7f0c2f
commit
d6fc64cce1
@ -73,23 +73,48 @@ unigi_type_error unigi_graphics_init() {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void unigi_graphics_draw(unigi_type_resolution_1d_coord pixel, unigi_type_color color) {
|
static inline void unigi_graphics_draw(unigi_type_resolution_1d_coord index, unigi_type_color color) {
|
||||||
color = color & 0x0FFF;
|
color = color & 0x0FFF;
|
||||||
if (unigi_platform_info_depth_bytes < 3) {
|
if (unigi_platform_info_depth_bytes < 3) {
|
||||||
if (unigi_platform_info_depth_bytes == 1) {
|
if (unigi_platform_info_depth_bytes == 1) {
|
||||||
unigi_platform_pixels1[pixel] = unigi_platform_palette1[color];
|
unigi_platform_colors1[index] = unigi_platform_palette1[color];
|
||||||
} else {
|
} else {
|
||||||
unigi_platform_pixels2[pixel] = unigi_platform_palette2[color];
|
unigi_platform_colors2[index] = unigi_platform_palette2[color];
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (unigi_platform_info_depth_bytes == 3) {
|
if (unigi_platform_info_depth_bytes == 3) {
|
||||||
memcpy(
|
memcpy(
|
||||||
unigi_platform_pixels1 + (pixel * 3),
|
unigi_platform_colors1 + (index * 3),
|
||||||
unigi_platform_palette1 + (color * 3),
|
unigi_platform_palette1 + (color * 3),
|
||||||
3
|
3
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
unigi_platform_pixels4[pixel] = unigi_platform_palette4[color];
|
unigi_platform_colors4[index] = unigi_platform_palette4[color];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void unigi_graphics_blit(unigi_type_resolution_1d_coord index, unigi_type_color * pixels, unigi_type_resolution_1d_coord length) {
|
||||||
|
unigi_type_resolution_1d_coord i;
|
||||||
|
if (unigi_platform_info_depth_bytes == 1) {
|
||||||
|
for (i = 0; i < length; i++) {
|
||||||
|
unigi_platform_colors1[index + i] = unigi_platform_palette1[pixels[i] & 0x0FFF];
|
||||||
|
}
|
||||||
|
} else if (unigi_platform_info_depth_bytes == 2) {
|
||||||
|
for (i = 0; i < length; i++) {
|
||||||
|
unigi_platform_colors2[index + i] = unigi_platform_palette2[pixels[i] & 0x0FFF];
|
||||||
|
}
|
||||||
|
} else if (unigi_platform_info_depth_bytes == 3) {
|
||||||
|
for (i = 0; i < length; i++) {
|
||||||
|
memcpy(
|
||||||
|
unigi_platform_colors1 + ((index + i) * 3),
|
||||||
|
unigi_platform_palette1 + ((pixels[i] & 0x0FFF) * 3),
|
||||||
|
3
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else if (unigi_platform_info_depth_bytes == 4) {
|
||||||
|
for (i = 0; i < length; i++) {
|
||||||
|
unigi_platform_colors4[index + i] = unigi_platform_palette4[pixels[i] & 0x0FFF];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user