Add blit function
This commit is contained in:
parent
250f7f0c2f
commit
d6fc64cce1
@ -73,23 +73,48 @@ unigi_type_error unigi_graphics_init() {
|
||||
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;
|
||||
if (unigi_platform_info_depth_bytes < 3) {
|
||||
if (unigi_platform_info_depth_bytes == 1) {
|
||||
unigi_platform_pixels1[pixel] = unigi_platform_palette1[color];
|
||||
unigi_platform_colors1[index] = unigi_platform_palette1[color];
|
||||
} else {
|
||||
unigi_platform_pixels2[pixel] = unigi_platform_palette2[color];
|
||||
unigi_platform_colors2[index] = unigi_platform_palette2[color];
|
||||
}
|
||||
} else {
|
||||
if (unigi_platform_info_depth_bytes == 3) {
|
||||
memcpy(
|
||||
unigi_platform_pixels1 + (pixel * 3),
|
||||
unigi_platform_colors1 + (index * 3),
|
||||
unigi_platform_palette1 + (color * 3),
|
||||
3
|
||||
);
|
||||
} 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