FCEU_LuaGui speedup
This commit is contained in:
parent
e462f55688
commit
3b86027f01
|
@ -3597,21 +3597,17 @@ void FCEU_LuaGui(uint8 *XBuf) {
|
||||||
for (y = 0; y < LUA_SCREEN_HEIGHT; y++) {
|
for (y = 0; y < LUA_SCREEN_HEIGHT; y++) {
|
||||||
for (x=0; x < LUA_SCREEN_WIDTH; x++) {
|
for (x=0; x < LUA_SCREEN_WIDTH; x++) {
|
||||||
const uint8 gui_alpha = gui_data[(y*LUA_SCREEN_WIDTH+x)*4+3];
|
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_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_green = gui_data[(y*LUA_SCREEN_WIDTH+x)*4+1];
|
||||||
const uint8 gui_blue = gui_data[(y*LUA_SCREEN_WIDTH+x)*4];
|
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;
|
int r, g, b;
|
||||||
if (gui_alpha == 0) {
|
if (gui_alpha == 255) {
|
||||||
// do nothing
|
|
||||||
r = scr_red;
|
|
||||||
g = scr_green;
|
|
||||||
b = scr_blue;
|
|
||||||
}
|
|
||||||
else if (gui_alpha == 255) {
|
|
||||||
// direct copy
|
// direct copy
|
||||||
r = gui_red;
|
r = gui_red;
|
||||||
g = gui_green;
|
g = gui_green;
|
||||||
|
@ -3619,6 +3615,8 @@ void FCEU_LuaGui(uint8 *XBuf) {
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// alpha-blending
|
// 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;
|
r = (((int) gui_red - scr_red) * gui_alpha / 255 + scr_red) & 255;
|
||||||
g = (((int) gui_green - scr_green) * gui_alpha / 255 + scr_green) & 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;
|
b = (((int) gui_blue - scr_blue) * gui_alpha / 255 + scr_blue) & 255;
|
||||||
|
|
Loading…
Reference in New Issue