Make it possible to switch algorithms in the future
--HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%403362
This commit is contained in:
parent
c37ad66b0a
commit
4f84ec9b5e
4 changed files with 61 additions and 60 deletions
|
@ -31,16 +31,16 @@ SDL_BlendLine_RGB555(SDL_Surface * dst, int x1, int y1, int x2, int y2,
|
|||
|
||||
switch (blendMode) {
|
||||
case SDL_BLENDMODE_BLEND:
|
||||
BRESENHAM(x1, y1, x2, y2, DRAW_SETPIXELXY_BLEND_RGB555);
|
||||
DRAWLINE(x1, y1, x2, y2, DRAW_SETPIXELXY_BLEND_RGB555);
|
||||
break;
|
||||
case SDL_BLENDMODE_ADD:
|
||||
BRESENHAM(x1, y1, x2, y2, DRAW_SETPIXELXY_ADD_RGB555);
|
||||
DRAWLINE(x1, y1, x2, y2, DRAW_SETPIXELXY_ADD_RGB555);
|
||||
break;
|
||||
case SDL_BLENDMODE_MOD:
|
||||
BRESENHAM(x1, y1, x2, y2, DRAW_SETPIXELXY_MOD_RGB555);
|
||||
DRAWLINE(x1, y1, x2, y2, DRAW_SETPIXELXY_MOD_RGB555);
|
||||
break;
|
||||
default:
|
||||
BRESENHAM(x1, y1, x2, y2, DRAW_SETPIXELXY_RGB555);
|
||||
DRAWLINE(x1, y1, x2, y2, DRAW_SETPIXELXY_RGB555);
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
|
@ -54,16 +54,16 @@ SDL_BlendLine_RGB565(SDL_Surface * dst, int x1, int y1, int x2, int y2,
|
|||
|
||||
switch (blendMode) {
|
||||
case SDL_BLENDMODE_BLEND:
|
||||
BRESENHAM(x1, y1, x2, y2, DRAW_SETPIXELXY_BLEND_RGB565);
|
||||
DRAWLINE(x1, y1, x2, y2, DRAW_SETPIXELXY_BLEND_RGB565);
|
||||
break;
|
||||
case SDL_BLENDMODE_ADD:
|
||||
BRESENHAM(x1, y1, x2, y2, DRAW_SETPIXELXY_ADD_RGB565);
|
||||
DRAWLINE(x1, y1, x2, y2, DRAW_SETPIXELXY_ADD_RGB565);
|
||||
break;
|
||||
case SDL_BLENDMODE_MOD:
|
||||
BRESENHAM(x1, y1, x2, y2, DRAW_SETPIXELXY_MOD_RGB565);
|
||||
DRAWLINE(x1, y1, x2, y2, DRAW_SETPIXELXY_MOD_RGB565);
|
||||
break;
|
||||
default:
|
||||
BRESENHAM(x1, y1, x2, y2, DRAW_SETPIXELXY_RGB565);
|
||||
DRAWLINE(x1, y1, x2, y2, DRAW_SETPIXELXY_RGB565);
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
|
@ -77,16 +77,16 @@ SDL_BlendLine_RGB888(SDL_Surface * dst, int x1, int y1, int x2, int y2,
|
|||
|
||||
switch (blendMode) {
|
||||
case SDL_BLENDMODE_BLEND:
|
||||
BRESENHAM(x1, y1, x2, y2, DRAW_SETPIXELXY_BLEND_RGB888);
|
||||
DRAWLINE(x1, y1, x2, y2, DRAW_SETPIXELXY_BLEND_RGB888);
|
||||
break;
|
||||
case SDL_BLENDMODE_ADD:
|
||||
BRESENHAM(x1, y1, x2, y2, DRAW_SETPIXELXY_ADD_RGB888);
|
||||
DRAWLINE(x1, y1, x2, y2, DRAW_SETPIXELXY_ADD_RGB888);
|
||||
break;
|
||||
case SDL_BLENDMODE_MOD:
|
||||
BRESENHAM(x1, y1, x2, y2, DRAW_SETPIXELXY_MOD_RGB888);
|
||||
DRAWLINE(x1, y1, x2, y2, DRAW_SETPIXELXY_MOD_RGB888);
|
||||
break;
|
||||
default:
|
||||
BRESENHAM(x1, y1, x2, y2, DRAW_SETPIXELXY_RGB888);
|
||||
DRAWLINE(x1, y1, x2, y2, DRAW_SETPIXELXY_RGB888);
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
|
@ -100,16 +100,16 @@ SDL_BlendLine_ARGB8888(SDL_Surface * dst, int x1, int y1, int x2, int y2,
|
|||
|
||||
switch (blendMode) {
|
||||
case SDL_BLENDMODE_BLEND:
|
||||
BRESENHAM(x1, y1, x2, y2, DRAW_SETPIXELXY_BLEND_ARGB8888);
|
||||
DRAWLINE(x1, y1, x2, y2, DRAW_SETPIXELXY_BLEND_ARGB8888);
|
||||
break;
|
||||
case SDL_BLENDMODE_ADD:
|
||||
BRESENHAM(x1, y1, x2, y2, DRAW_SETPIXELXY_ADD_ARGB8888);
|
||||
DRAWLINE(x1, y1, x2, y2, DRAW_SETPIXELXY_ADD_ARGB8888);
|
||||
break;
|
||||
case SDL_BLENDMODE_MOD:
|
||||
BRESENHAM(x1, y1, x2, y2, DRAW_SETPIXELXY_MOD_ARGB8888);
|
||||
DRAWLINE(x1, y1, x2, y2, DRAW_SETPIXELXY_MOD_ARGB8888);
|
||||
break;
|
||||
default:
|
||||
BRESENHAM(x1, y1, x2, y2, DRAW_SETPIXELXY_ARGB8888);
|
||||
DRAWLINE(x1, y1, x2, y2, DRAW_SETPIXELXY_ARGB8888);
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
|
@ -126,32 +126,32 @@ SDL_BlendLine_RGB(SDL_Surface * dst, int x1, int y1, int x2, int y2,
|
|||
case 2:
|
||||
switch (blendMode) {
|
||||
case SDL_BLENDMODE_BLEND:
|
||||
BRESENHAM(x1, y1, x2, y2, DRAW_SETPIXELXY2_BLEND_RGB);
|
||||
DRAWLINE(x1, y1, x2, y2, DRAW_SETPIXELXY2_BLEND_RGB);
|
||||
break;
|
||||
case SDL_BLENDMODE_ADD:
|
||||
BRESENHAM(x1, y1, x2, y2, DRAW_SETPIXELXY2_ADD_RGB);
|
||||
DRAWLINE(x1, y1, x2, y2, DRAW_SETPIXELXY2_ADD_RGB);
|
||||
break;
|
||||
case SDL_BLENDMODE_MOD:
|
||||
BRESENHAM(x1, y1, x2, y2, DRAW_SETPIXELXY2_MOD_RGB);
|
||||
DRAWLINE(x1, y1, x2, y2, DRAW_SETPIXELXY2_MOD_RGB);
|
||||
break;
|
||||
default:
|
||||
BRESENHAM(x1, y1, x2, y2, DRAW_SETPIXELXY2_RGB);
|
||||
DRAWLINE(x1, y1, x2, y2, DRAW_SETPIXELXY2_RGB);
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
case 4:
|
||||
switch (blendMode) {
|
||||
case SDL_BLENDMODE_BLEND:
|
||||
BRESENHAM(x1, y1, x2, y2, DRAW_SETPIXELXY4_BLEND_RGB);
|
||||
DRAWLINE(x1, y1, x2, y2, DRAW_SETPIXELXY4_BLEND_RGB);
|
||||
break;
|
||||
case SDL_BLENDMODE_ADD:
|
||||
BRESENHAM(x1, y1, x2, y2, DRAW_SETPIXELXY4_ADD_RGB);
|
||||
DRAWLINE(x1, y1, x2, y2, DRAW_SETPIXELXY4_ADD_RGB);
|
||||
break;
|
||||
case SDL_BLENDMODE_MOD:
|
||||
BRESENHAM(x1, y1, x2, y2, DRAW_SETPIXELXY4_MOD_RGB);
|
||||
DRAWLINE(x1, y1, x2, y2, DRAW_SETPIXELXY4_MOD_RGB);
|
||||
break;
|
||||
default:
|
||||
BRESENHAM(x1, y1, x2, y2, DRAW_SETPIXELXY4_RGB);
|
||||
DRAWLINE(x1, y1, x2, y2, DRAW_SETPIXELXY4_RGB);
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
|
@ -172,16 +172,16 @@ SDL_BlendLine_RGBA(SDL_Surface * dst, int x1, int y1, int x2, int y2,
|
|||
case 4:
|
||||
switch (blendMode) {
|
||||
case SDL_BLENDMODE_BLEND:
|
||||
BRESENHAM(x1, y1, x2, y2, DRAW_SETPIXELXY4_BLEND_RGBA);
|
||||
DRAWLINE(x1, y1, x2, y2, DRAW_SETPIXELXY4_BLEND_RGBA);
|
||||
break;
|
||||
case SDL_BLENDMODE_ADD:
|
||||
BRESENHAM(x1, y1, x2, y2, DRAW_SETPIXELXY4_ADD_RGBA);
|
||||
DRAWLINE(x1, y1, x2, y2, DRAW_SETPIXELXY4_ADD_RGBA);
|
||||
break;
|
||||
case SDL_BLENDMODE_MOD:
|
||||
BRESENHAM(x1, y1, x2, y2, DRAW_SETPIXELXY4_MOD_RGBA);
|
||||
DRAWLINE(x1, y1, x2, y2, DRAW_SETPIXELXY4_MOD_RGBA);
|
||||
break;
|
||||
default:
|
||||
BRESENHAM(x1, y1, x2, y2, DRAW_SETPIXELXY4_RGBA);
|
||||
DRAWLINE(x1, y1, x2, y2, DRAW_SETPIXELXY4_RGBA);
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
|
|
|
@ -32,16 +32,16 @@ SDL_BlendRect_RGB555(SDL_Surface * dst, SDL_Rect * dstrect, int blendMode,
|
|||
|
||||
switch (blendMode) {
|
||||
case SDL_BLENDMODE_BLEND:
|
||||
BLENDRECT(Uint16, DRAW_SETPIXEL_BLEND_RGB555);
|
||||
FILLRECT(Uint16, DRAW_SETPIXEL_BLEND_RGB555);
|
||||
break;
|
||||
case SDL_BLENDMODE_ADD:
|
||||
BLENDRECT(Uint16, DRAW_SETPIXEL_ADD_RGB555);
|
||||
FILLRECT(Uint16, DRAW_SETPIXEL_ADD_RGB555);
|
||||
break;
|
||||
case SDL_BLENDMODE_MOD:
|
||||
BLENDRECT(Uint16, DRAW_SETPIXEL_MOD_RGB555);
|
||||
FILLRECT(Uint16, DRAW_SETPIXEL_MOD_RGB555);
|
||||
break;
|
||||
default:
|
||||
BLENDRECT(Uint16, DRAW_SETPIXEL_RGB555);
|
||||
FILLRECT(Uint16, DRAW_SETPIXEL_RGB555);
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
|
@ -55,16 +55,16 @@ SDL_BlendRect_RGB565(SDL_Surface * dst, SDL_Rect * dstrect, int blendMode,
|
|||
|
||||
switch (blendMode) {
|
||||
case SDL_BLENDMODE_BLEND:
|
||||
BLENDRECT(Uint16, DRAW_SETPIXEL_BLEND_RGB565);
|
||||
FILLRECT(Uint16, DRAW_SETPIXEL_BLEND_RGB565);
|
||||
break;
|
||||
case SDL_BLENDMODE_ADD:
|
||||
BLENDRECT(Uint16, DRAW_SETPIXEL_ADD_RGB565);
|
||||
FILLRECT(Uint16, DRAW_SETPIXEL_ADD_RGB565);
|
||||
break;
|
||||
case SDL_BLENDMODE_MOD:
|
||||
BLENDRECT(Uint16, DRAW_SETPIXEL_MOD_RGB565);
|
||||
FILLRECT(Uint16, DRAW_SETPIXEL_MOD_RGB565);
|
||||
break;
|
||||
default:
|
||||
BLENDRECT(Uint16, DRAW_SETPIXEL_RGB565);
|
||||
FILLRECT(Uint16, DRAW_SETPIXEL_RGB565);
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
|
@ -78,16 +78,16 @@ SDL_BlendRect_RGB888(SDL_Surface * dst, SDL_Rect * dstrect, int blendMode,
|
|||
|
||||
switch (blendMode) {
|
||||
case SDL_BLENDMODE_BLEND:
|
||||
BLENDRECT(Uint32, DRAW_SETPIXEL_BLEND_RGB888);
|
||||
FILLRECT(Uint32, DRAW_SETPIXEL_BLEND_RGB888);
|
||||
break;
|
||||
case SDL_BLENDMODE_ADD:
|
||||
BLENDRECT(Uint32, DRAW_SETPIXEL_ADD_RGB888);
|
||||
FILLRECT(Uint32, DRAW_SETPIXEL_ADD_RGB888);
|
||||
break;
|
||||
case SDL_BLENDMODE_MOD:
|
||||
BLENDRECT(Uint32, DRAW_SETPIXEL_MOD_RGB888);
|
||||
FILLRECT(Uint32, DRAW_SETPIXEL_MOD_RGB888);
|
||||
break;
|
||||
default:
|
||||
BLENDRECT(Uint32, DRAW_SETPIXEL_RGB888);
|
||||
FILLRECT(Uint32, DRAW_SETPIXEL_RGB888);
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
|
@ -101,16 +101,16 @@ SDL_BlendRect_ARGB8888(SDL_Surface * dst, SDL_Rect * dstrect, int blendMode,
|
|||
|
||||
switch (blendMode) {
|
||||
case SDL_BLENDMODE_BLEND:
|
||||
BLENDRECT(Uint32, DRAW_SETPIXEL_BLEND_ARGB8888);
|
||||
FILLRECT(Uint32, DRAW_SETPIXEL_BLEND_ARGB8888);
|
||||
break;
|
||||
case SDL_BLENDMODE_ADD:
|
||||
BLENDRECT(Uint32, DRAW_SETPIXEL_ADD_ARGB8888);
|
||||
FILLRECT(Uint32, DRAW_SETPIXEL_ADD_ARGB8888);
|
||||
break;
|
||||
case SDL_BLENDMODE_MOD:
|
||||
BLENDRECT(Uint32, DRAW_SETPIXEL_MOD_ARGB8888);
|
||||
FILLRECT(Uint32, DRAW_SETPIXEL_MOD_ARGB8888);
|
||||
break;
|
||||
default:
|
||||
BLENDRECT(Uint32, DRAW_SETPIXEL_ARGB8888);
|
||||
FILLRECT(Uint32, DRAW_SETPIXEL_ARGB8888);
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
|
@ -127,32 +127,32 @@ SDL_BlendRect_RGB(SDL_Surface * dst, SDL_Rect * dstrect, int blendMode,
|
|||
case 2:
|
||||
switch (blendMode) {
|
||||
case SDL_BLENDMODE_BLEND:
|
||||
BLENDRECT(Uint16, DRAW_SETPIXEL_BLEND_RGB);
|
||||
FILLRECT(Uint16, DRAW_SETPIXEL_BLEND_RGB);
|
||||
break;
|
||||
case SDL_BLENDMODE_ADD:
|
||||
BLENDRECT(Uint16, DRAW_SETPIXEL_ADD_RGB);
|
||||
FILLRECT(Uint16, DRAW_SETPIXEL_ADD_RGB);
|
||||
break;
|
||||
case SDL_BLENDMODE_MOD:
|
||||
BLENDRECT(Uint16, DRAW_SETPIXEL_MOD_RGB);
|
||||
FILLRECT(Uint16, DRAW_SETPIXEL_MOD_RGB);
|
||||
break;
|
||||
default:
|
||||
BLENDRECT(Uint16, DRAW_SETPIXEL_RGB);
|
||||
FILLRECT(Uint16, DRAW_SETPIXEL_RGB);
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
case 4:
|
||||
switch (blendMode) {
|
||||
case SDL_BLENDMODE_BLEND:
|
||||
BLENDRECT(Uint32, DRAW_SETPIXEL_BLEND_RGB);
|
||||
FILLRECT(Uint32, DRAW_SETPIXEL_BLEND_RGB);
|
||||
break;
|
||||
case SDL_BLENDMODE_ADD:
|
||||
BLENDRECT(Uint32, DRAW_SETPIXEL_ADD_RGB);
|
||||
FILLRECT(Uint32, DRAW_SETPIXEL_ADD_RGB);
|
||||
break;
|
||||
case SDL_BLENDMODE_MOD:
|
||||
BLENDRECT(Uint32, DRAW_SETPIXEL_MOD_RGB);
|
||||
FILLRECT(Uint32, DRAW_SETPIXEL_MOD_RGB);
|
||||
break;
|
||||
default:
|
||||
BLENDRECT(Uint32, DRAW_SETPIXEL_RGB);
|
||||
FILLRECT(Uint32, DRAW_SETPIXEL_RGB);
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
|
@ -173,16 +173,16 @@ SDL_BlendRect_RGBA(SDL_Surface * dst, SDL_Rect * dstrect, int blendMode,
|
|||
case 4:
|
||||
switch (blendMode) {
|
||||
case SDL_BLENDMODE_BLEND:
|
||||
BLENDRECT(Uint32, DRAW_SETPIXEL_BLEND_RGBA);
|
||||
FILLRECT(Uint32, DRAW_SETPIXEL_BLEND_RGBA);
|
||||
break;
|
||||
case SDL_BLENDMODE_ADD:
|
||||
BLENDRECT(Uint32, DRAW_SETPIXEL_ADD_RGBA);
|
||||
FILLRECT(Uint32, DRAW_SETPIXEL_ADD_RGBA);
|
||||
break;
|
||||
case SDL_BLENDMODE_MOD:
|
||||
BLENDRECT(Uint32, DRAW_SETPIXEL_MOD_RGBA);
|
||||
FILLRECT(Uint32, DRAW_SETPIXEL_MOD_RGBA);
|
||||
break;
|
||||
default:
|
||||
BLENDRECT(Uint32, DRAW_SETPIXEL_RGBA);
|
||||
FILLRECT(Uint32, DRAW_SETPIXEL_RGBA);
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
|
|
|
@ -322,12 +322,13 @@ do { \
|
|||
} \
|
||||
} \
|
||||
}
|
||||
#define DRAWLINE(x0, y0, x1, y1, op) BRESENHAM(x0, y0, x1, y1, op)
|
||||
|
||||
/*
|
||||
* Define blend fill macro
|
||||
*/
|
||||
|
||||
#define BLENDRECT(type, op) \
|
||||
#define FILLRECT(type, op) \
|
||||
do { \
|
||||
int w; \
|
||||
int width = dstrect->w; \
|
||||
|
|
|
@ -47,16 +47,16 @@ SDL_DrawLine(SDL_Surface * dst, int x1, int y1, int x2, int y2, Uint32 color)
|
|||
|
||||
switch (dst->format->BytesPerPixel) {
|
||||
case 1:
|
||||
BRESENHAM(x1, y1, x2, y2, SETPIXEL1);
|
||||
DRAWLINE(x1, y1, x2, y2, SETPIXEL1);
|
||||
break;
|
||||
case 2:
|
||||
BRESENHAM(x1, y1, x2, y2, SETPIXEL2);
|
||||
DRAWLINE(x1, y1, x2, y2, SETPIXEL2);
|
||||
break;
|
||||
case 3:
|
||||
SDL_Unsupported();
|
||||
return -1;
|
||||
case 4:
|
||||
BRESENHAM(x1, y1, x2, y2, SETPIXEL4);
|
||||
DRAWLINE(x1, y1, x2, y2, SETPIXEL4);
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue