FCEU_LuaGui speedup

This commit is contained in:
gocha 2009-10-12 22:43:26 +00:00
parent e462f55688
commit 3b86027f01
1 changed files with 8 additions and 10 deletions

View File

@ -3597,21 +3597,17 @@ void FCEU_LuaGui(uint8 *XBuf) {
for (y = 0; y < LUA_SCREEN_HEIGHT; y++) {
for (x=0; x < LUA_SCREEN_WIDTH; x++) {
const uint8 gui_alpha = gui_data[(y*LUA_SCREEN_WIDTH+x)*4+3];
if (gui_alpha == 0) {
// do nothing
continue;
}
const uint8 gui_red = gui_data[(y*LUA_SCREEN_WIDTH+x)*4+2];
const uint8 gui_green = gui_data[(y*LUA_SCREEN_WIDTH+x)*4+1];
const uint8 gui_blue = gui_data[(y*LUA_SCREEN_WIDTH+x)*4];
uint8 scr_red, scr_green, scr_blue;
FCEUD_GetPalette(XBuf[(y+8)*256+x], &scr_red, &scr_green, &scr_blue);
int r, g, b;
if (gui_alpha == 0) {
// do nothing
r = scr_red;
g = scr_green;
b = scr_blue;
}
else if (gui_alpha == 255) {
if (gui_alpha == 255) {
// direct copy
r = gui_red;
g = gui_green;
@ -3619,6 +3615,8 @@ void FCEU_LuaGui(uint8 *XBuf) {
}
else {
// alpha-blending
uint8 scr_red, scr_green, scr_blue;
FCEUD_GetPalette(XBuf[(y+8)*256+x], &scr_red, &scr_green, &scr_blue);
r = (((int) gui_red - scr_red) * gui_alpha / 255 + scr_red) & 255;
g = (((int) gui_green - scr_green) * gui_alpha / 255 + scr_green) & 255;
b = (((int) gui_blue - scr_blue) * gui_alpha / 255 + scr_blue) & 255;