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;
|
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){
|
void DrawFBoxBmp(char *buffer,int x,int y,int dx,int dy,unsigned color){
|
||||||
|
|
||||||
int i,j,idx;
|
int i,j,idx;
|
||||||
@@ -24,7 +35,7 @@ unsigned short *mbuffer=(unsigned short *)buffer;
|
|||||||
for(j=y;j<y+dy;j++){
|
for(j=y;j<y+dy;j++){
|
||||||
|
|
||||||
idx=i+j*VIRTUAL_WIDTH;
|
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++){
|
for(i=x;i<x+dx;i++){
|
||||||
idx=i+y*VIRTUAL_WIDTH;
|
idx=i+y*VIRTUAL_WIDTH;
|
||||||
mbuffer[idx]=(mbuffer[idx]/2)+(color/2);
|
mbuffer[idx]=Opacity(mbuffer[idx],color);
|
||||||
idx=i+(y+dy)*VIRTUAL_WIDTH;
|
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++){
|
for(j=y;j<y+dy;j++){
|
||||||
|
|
||||||
idx=x+j*VIRTUAL_WIDTH;
|
idx=x+j*VIRTUAL_WIDTH;
|
||||||
mbuffer[idx]=(mbuffer[idx]/2)+(color/2);
|
mbuffer[idx]=Opacity(mbuffer[idx],color);
|
||||||
idx=(x+dx)+j*VIRTUAL_WIDTH;
|
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
|
#endif
|
||||||
|
|
||||||
idx=x+y*VIRTUAL_WIDTH;
|
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++){
|
for(i=x;i<x+dx;i++){
|
||||||
idx=i+y*VIRTUAL_WIDTH;
|
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
|
#endif
|
||||||
for(j=y;j<y+dy;j++){
|
for(j=y;j<y+dy;j++){
|
||||||
idx=x+j*VIRTUAL_WIDTH;
|
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 {
|
} else {
|
||||||
idx=x1+y1*VIRTUAL_WIDTH;
|
idx=x1+y1*VIRTUAL_WIDTH;
|
||||||
mbuffer[idx]=(mbuffer[idx]/2)+(color/2);
|
mbuffer[idx]=Opacity(mbuffer[idx],color);
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -174,7 +185,7 @@ unsigned short *mbuffer=(unsigned short *)buffer;
|
|||||||
idx=x1+y1*VIRTUAL_WIDTH;
|
idx=x1+y1*VIRTUAL_WIDTH;
|
||||||
|
|
||||||
for (; x < dx; x++, idx +=pixx) {
|
for (; x < dx; x++, idx +=pixx) {
|
||||||
mbuffer[idx]=(mbuffer[idx]/2)+(color/2);
|
mbuffer[idx]=Opacity(mbuffer[idx],color);
|
||||||
y += dy;
|
y += dy;
|
||||||
if (y >= dx) {
|
if (y >= dx) {
|
||||||
y -= dx;
|
y -= dx;
|
||||||
@@ -343,7 +354,7 @@ unsigned char *mbuffer=(unsigned char *)surf;
|
|||||||
|
|
||||||
for(yrepeat = y; yrepeat < y+ surfh; yrepeat++)
|
for(yrepeat = y; yrepeat < y+ surfh; yrepeat++)
|
||||||
for(xrepeat = x; xrepeat< x+surfw; xrepeat++,yptr++)
|
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);
|
free(linesurf);
|
||||||
|
|
||||||
|
|||||||
@@ -58,11 +58,20 @@ extern int pauseg;
|
|||||||
|
|
||||||
#ifndef RENDER16B
|
#ifndef RENDER16B
|
||||||
#define RGB565(r, g, b) (((r) << (5+16)) | ((g) << (5+8)) | (b<<5))
|
#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
|
#else
|
||||||
#if defined(ABGR1555)
|
#if defined(ABGR1555)
|
||||||
#define RGB565(r, g, b) (((b) << (10)) | ((g) << 5) | (r))
|
#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
|
#else
|
||||||
#define RGB565(r, g, b) (((r) << (5+6)) | ((g) << 6) | (b))
|
#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
|
||||||
#endif
|
#endif
|
||||||
#define uint32 unsigned int
|
#define uint32 unsigned int
|
||||||
|
|||||||
Reference in New Issue
Block a user