mirror of
https://github.com/Pecusx/libretro-atari800.git
synced 2026-05-20 22:33:22 +02:00
Still testing VKBD opacity
This commit is contained in:
+22
-11
@@ -9,6 +9,17 @@
|
||||
|
||||
extern int VIRTUAL_WIDTH;
|
||||
|
||||
unsigned Opacity(unsigned color1, unsigned color2){
|
||||
|
||||
unsigned r,g,b;
|
||||
|
||||
r=(R_RGB565(color1)/2)+(R_RGB565(color2)/2);
|
||||
g=(G_RGB565(color1)/2)+(G_RGB565(color2)/2);
|
||||
b=(B_RGB565(color1)/2)+(B_RGB565(color2)/2);
|
||||
return RGB565(r,g,b);
|
||||
|
||||
}
|
||||
|
||||
void DrawFBoxBmp(char *buffer,int x,int y,int dx,int dy,unsigned color){
|
||||
|
||||
int i,j,idx;
|
||||
@@ -24,7 +35,7 @@ unsigned short *mbuffer=(unsigned short *)buffer;
|
||||
for(j=y;j<y+dy;j++){
|
||||
|
||||
idx=i+j*VIRTUAL_WIDTH;
|
||||
mbuffer[idx]=(mbuffer[idx]/2)+(color/2);
|
||||
mbuffer[idx]=Opacity(mbuffer[idx],color);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,17 +54,17 @@ unsigned short *mbuffer=(unsigned short *)buffer;
|
||||
|
||||
for(i=x;i<x+dx;i++){
|
||||
idx=i+y*VIRTUAL_WIDTH;
|
||||
mbuffer[idx]=(mbuffer[idx]/2)+(color/2);
|
||||
mbuffer[idx]=Opacity(mbuffer[idx],color);
|
||||
idx=i+(y+dy)*VIRTUAL_WIDTH;
|
||||
mbuffer[idx]=(mbuffer[idx]/2)+(color/2);
|
||||
mbuffer[idx]=Opacity(mbuffer[idx],color);
|
||||
}
|
||||
|
||||
for(j=y;j<y+dy;j++){
|
||||
|
||||
idx=x+j*VIRTUAL_WIDTH;
|
||||
mbuffer[idx]=(mbuffer[idx]/2)+(color/2);
|
||||
mbuffer[idx]=Opacity(mbuffer[idx],color);
|
||||
idx=(x+dx)+j*VIRTUAL_WIDTH;
|
||||
mbuffer[idx]=(mbuffer[idx]/2)+(color/2);
|
||||
mbuffer[idx]=Opacity(mbuffer[idx],color);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -69,7 +80,7 @@ unsigned short *mbuffer=(unsigned short *)buffer;
|
||||
#endif
|
||||
|
||||
idx=x+y*VIRTUAL_WIDTH;
|
||||
mbuffer[idx]=(mbuffer[idx]/2)+(color/2);
|
||||
mbuffer[idx]=Opacity(mbuffer[idx],color);
|
||||
|
||||
}
|
||||
|
||||
@@ -85,7 +96,7 @@ unsigned short *mbuffer=(unsigned short *)buffer;
|
||||
|
||||
for(i=x;i<x+dx;i++){
|
||||
idx=i+y*VIRTUAL_WIDTH;
|
||||
mbuffer[idx]=(mbuffer[idx]/2)+(color/2);
|
||||
mbuffer[idx]=Opacity(mbuffer[idx],color);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -100,7 +111,7 @@ unsigned short *mbuffer=(unsigned short *)buffer;
|
||||
#endif
|
||||
for(j=y;j<y+dy;j++){
|
||||
idx=x+j*VIRTUAL_WIDTH;
|
||||
mbuffer[idx]=(mbuffer[idx]/2)+(color/2);
|
||||
mbuffer[idx]=Opacity(mbuffer[idx],color);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -135,7 +146,7 @@ unsigned short *mbuffer=(unsigned short *)buffer;
|
||||
|
||||
} else {
|
||||
idx=x1+y1*VIRTUAL_WIDTH;
|
||||
mbuffer[idx]=(mbuffer[idx]/2)+(color/2);
|
||||
mbuffer[idx]=Opacity(mbuffer[idx],color);
|
||||
return ;
|
||||
}
|
||||
}
|
||||
@@ -174,7 +185,7 @@ unsigned short *mbuffer=(unsigned short *)buffer;
|
||||
idx=x1+y1*VIRTUAL_WIDTH;
|
||||
|
||||
for (; x < dx; x++, idx +=pixx) {
|
||||
mbuffer[idx]=(mbuffer[idx]/2)+(color/2);
|
||||
mbuffer[idx]=Opacity(mbuffer[idx],color);
|
||||
y += dy;
|
||||
if (y >= dx) {
|
||||
y -= dx;
|
||||
@@ -343,7 +354,7 @@ unsigned char *mbuffer=(unsigned char *)surf;
|
||||
|
||||
for(yrepeat = y; yrepeat < y+ surfh; yrepeat++)
|
||||
for(xrepeat = x; xrepeat< x+surfw; xrepeat++,yptr++)
|
||||
if(*yptr!=0)mbuffer[xrepeat+yrepeat*VIRTUAL_WIDTH] = (mbuffer[xrepeat+yrepeat*VIRTUAL_WIDTH]/2) + (*yptr/2);
|
||||
if(*yptr!=0)mbuffer[xrepeat+yrepeat*VIRTUAL_WIDTH] = Opacity(mbuffer[xrepeat+yrepeat*VIRTUAL_WIDTH],*yptr);
|
||||
|
||||
free(linesurf);
|
||||
|
||||
|
||||
@@ -58,11 +58,20 @@ extern int pauseg;
|
||||
|
||||
#ifndef RENDER16B
|
||||
#define RGB565(r, g, b) (((r) << (5+16)) | ((g) << (5+8)) | (b<<5))
|
||||
#define R_RGB(rgb) (((rgb) >> (5+16)) & 255)
|
||||
#define G_RGB(rgb) (((rgb) >> (5+8)) & 255)
|
||||
#define B_RGB(rgb) ((rgb>>5) & 255)
|
||||
#else
|
||||
#if defined(ABGR1555)
|
||||
#define RGB565(r, g, b) (((b) << (10)) | ((g) << 5) | (r))
|
||||
#define B_RGB(rgb) (((rgb) >> (10)) & 31)
|
||||
#define G_RGB(rgb) (((rgb) >> 5) & 31)
|
||||
#define R_RGB(rgb) (rgb & 31)
|
||||
#else
|
||||
#define RGB565(r, g, b) (((r) << (5+6)) | ((g) << 6) | (b))
|
||||
#define R_RGB(rgb) (((rgb) >> (5+6)) & 31)
|
||||
#define G_RGB(rgb) (((rgb) >> 6) & 31)
|
||||
#define B_RGB(rgb) (rgb & 31)
|
||||
#endif
|
||||
#endif
|
||||
#define uint32 unsigned int
|
||||
|
||||
Reference in New Issue
Block a user