Centralized color transformations

git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@1876 8092fc87-c524-0410-9efc-e669fe64eaf9
This commit is contained in:
avolkov
2005-09-27 03:39:56 +00:00
parent ebbb835efc
commit b2eed518ed
3 changed files with 25 additions and 63 deletions
+11
View File
@@ -21,6 +21,7 @@
#include "tfb_draw.h" #include "tfb_draw.h"
#include "units.h" #include "units.h"
#include "libs/mathlib.h" #include "libs/mathlib.h"
#include "gfxother.h"
FRAMEPTR _CurFramePtr; FRAMEPTR _CurFramePtr;
@@ -245,3 +246,13 @@ RotateFrame (FRAMEPTR Frame, COUNT angle)
return Drawable; return Drawable;
} }
void
SetFrameTransparentColor (FRAMEPTR Frame, COLOR c32k)
{
TFB_Palette color;
COLORtoPalette (c32k, &color);
TFB_DrawCanvas_SetTransparentColor (Frame->image->NormalImg,
color.r, color.g, color.b, TRUE);
}
+2 -6
View File
@@ -18,6 +18,7 @@
#include "gfxintrn.h" #include "gfxintrn.h"
#include "tfb_prim.h" #include "tfb_prim.h"
#include "gfxother.h"
extern FRAME Build_Font_Effect (FRAME FramePtr, DWORD from, DWORD to, extern FRAME Build_Font_Effect (FRAME FramePtr, DWORD from, DWORD to,
@@ -258,12 +259,7 @@ _text_blt (PRECT pClipRect, PRIMITIVEPTR PrimPtr)
if (FontPtr == NULL) if (FontPtr == NULL)
return; return;
{ COLORtoPalette (_get_context_fg_color (), &color);
DWORD c32k = _get_context_fg_color () >> 8;
color.r = (UBYTE)((c32k >> (10 - (8 - 5))) & 0xF8);
color.g = (UBYTE)((c32k >> (5 - (8 - 5))) & 0xF8);
color.b = (UBYTE)((c32k << (8 - 5)) & 0xF8);
}
TextPtr = &PrimPtr->Object.Text; TextPtr = &PrimPtr->Object.Text;
s.origin.x = _save_stamp.origin.x; s.origin.x = _save_stamp.origin.x;
+12 -57
View File
@@ -21,6 +21,7 @@
#include "gfx_common.h" #include "gfx_common.h"
#include "tfb_draw.h" #include "tfb_draw.h"
#include "tfb_prim.h" #include "tfb_prim.h"
#include "gfxother.h"
HOT_SPOT HOT_SPOT
MAKE_HOT_SPOT (COORD x, COORD y) MAKE_HOT_SPOT (COORD x, COORD y)
@@ -88,12 +89,8 @@ void
ClearBackGround (PRECT pClipRect) ClearBackGround (PRECT pClipRect)
{ {
TFB_Palette color; TFB_Palette color;
DWORD c32k;
c32k = _get_context_bg_color () >> 8; //shift out color index COLORtoPalette (_get_context_bg_color (), &color);
color.r = (UBYTE)((c32k >> (10 - (8 - 5))) & 0xF8);
color.g = (UBYTE)((c32k >> (5 - (8 - 5))) & 0xF8);
color.b = (UBYTE)((c32k << (8 - 5)) & 0xF8);
TFB_Prim_FillRect (pClipRect, &color); TFB_Prim_FillRect (pClipRect, &color);
} }
@@ -144,7 +141,6 @@ DrawBatch (PPRIMITIVE lpBasePrim, PRIM_LINKS PrimLinks,
PPRIMITIVE lpWorkPrim; PPRIMITIVE lpWorkPrim;
RECT ClipRect; RECT ClipRect;
TFB_Palette color; TFB_Palette color;
DWORD c32k;
lpPrim = &lpBasePrim[CurIndex]; lpPrim = &lpBasePrim[CurIndex];
PrimType = GetPrimType (lpPrim); PrimType = GetPrimType (lpPrim);
@@ -156,29 +152,18 @@ DrawBatch (PPRIMITIVE lpBasePrim, PRIM_LINKS PrimLinks,
switch (PrimType) switch (PrimType)
{ {
case POINT_PRIM: case POINT_PRIM:
c32k = GetPrimColor (lpWorkPrim) >> 8; //shift out color index COLORtoPalette (GetPrimColor (lpWorkPrim), &color);
color.r = (UBYTE)((c32k >> (10 - (8 - 5))) & 0xF8);
color.g = (UBYTE)((c32k >> (5 - (8 - 5))) & 0xF8);
color.b = (UBYTE)((c32k << (8 - 5)) & 0xF8);
TFB_Prim_Point (&lpWorkPrim->Object.Point, &color); TFB_Prim_Point (&lpWorkPrim->Object.Point, &color);
break; break;
case STAMP_PRIM: case STAMP_PRIM:
TFB_Prim_Stamp (&lpWorkPrim->Object.Stamp); TFB_Prim_Stamp (&lpWorkPrim->Object.Stamp);
break; break;
case STAMPFILL_PRIM: case STAMPFILL_PRIM:
c32k = GetPrimColor (lpWorkPrim) >> 8; //shift out color index COLORtoPalette (GetPrimColor (lpWorkPrim), &color);
color.r = (UBYTE)((c32k >> (10 - (8 - 5))) & 0xF8);
color.g = (UBYTE)((c32k >> (5 - (8 - 5))) & 0xF8);
color.b = (UBYTE)((c32k << (8 - 5)) & 0xF8);
TFB_Prim_StampFill (&lpWorkPrim->Object.Stamp, &color); TFB_Prim_StampFill (&lpWorkPrim->Object.Stamp, &color);
break; break;
case LINE_PRIM: case LINE_PRIM:
c32k = GetPrimColor (lpWorkPrim) >> 8; //shift out color index COLORtoPalette (GetPrimColor (lpWorkPrim), &color);
color.r = (UBYTE)((c32k >> (10 - (8 - 5))) & 0xF8);
color.g = (UBYTE)((c32k >> (5 - (8 - 5))) & 0xF8);
color.b = (UBYTE)((c32k << (8 - 5)) & 0xF8);
TFB_Prim_Line (&lpWorkPrim->Object.Line, &color); TFB_Prim_Line (&lpWorkPrim->Object.Line, &color);
break; break;
case TEXT_PRIM: case TEXT_PRIM:
@@ -191,16 +176,10 @@ DrawBatch (PPRIMITIVE lpBasePrim, PRIM_LINKS PrimLinks,
_text_blt (&ClipRect, lpWorkPrim); _text_blt (&ClipRect, lpWorkPrim);
break; break;
case RECT_PRIM: case RECT_PRIM:
c32k = GetPrimColor (lpWorkPrim) >> 8; //shift out color index COLORtoPalette (GetPrimColor (lpWorkPrim), &color);
color.r = (UBYTE)((c32k >> (10 - (8 - 5))) & 0xF8);
color.g = (UBYTE)((c32k >> (5 - (8 - 5))) & 0xF8);
color.b = (UBYTE)((c32k << (8 - 5)) & 0xF8);
TFB_Prim_Rect (&lpWorkPrim->Object.Rect, &color); TFB_Prim_Rect (&lpWorkPrim->Object.Rect, &color);
case RECTFILL_PRIM: case RECTFILL_PRIM:
c32k = GetPrimColor (lpWorkPrim) >> 8; //shift out color index COLORtoPalette (GetPrimColor (lpWorkPrim), &color);
color.r = (UBYTE)((c32k >> (10 - (8 - 5))) & 0xF8);
color.g = (UBYTE)((c32k >> (5 - (8 - 5))) & 0xF8);
color.b = (UBYTE)((c32k << (8 - 5)) & 0xF8);
TFB_Prim_FillRect (&lpWorkPrim->Object.Rect, &color); TFB_Prim_FillRect (&lpWorkPrim->Object.Rect, &color);
break; break;
} }
@@ -243,13 +222,8 @@ DrawPoint (PPOINT lpPoint)
if (GraphicsSystemActive () && GetFrameValidRect (&ValidRect, &OldHot)) if (GraphicsSystemActive () && GetFrameValidRect (&ValidRect, &OldHot))
{ {
TFB_Palette color; TFB_Palette color;
DWORD c32k;
c32k = GetPrimColor (&_locPrim) >> 8; //shift out color index
color.r = (UBYTE)((c32k >> (10 - (8 - 5))) & 0xF8);
color.g = (UBYTE)((c32k >> (5 - (8 - 5))) & 0xF8);
color.b = (UBYTE)((c32k << (8 - 5)) & 0xF8);
COLORtoPalette (GetPrimColor (&_locPrim), &color);
TFB_Prim_Point (lpPoint, &color); TFB_Prim_Point (lpPoint, &color);
_CurFramePtr->HotSpot = OldHot; _CurFramePtr->HotSpot = OldHot;
} }
@@ -264,13 +238,8 @@ DrawRectangle (PRECT lpRect)
if (GraphicsSystemActive () && GetFrameValidRect (&ValidRect, &OldHot)) if (GraphicsSystemActive () && GetFrameValidRect (&ValidRect, &OldHot))
{ {
TFB_Palette color; TFB_Palette color;
DWORD c32k;
c32k = GetPrimColor (&_locPrim) >> 8; //shift out color index
color.r = (UBYTE)((c32k >> (10 - (8 - 5))) & 0xF8);
color.g = (UBYTE)((c32k >> (5 - (8 - 5))) & 0xF8);
color.b = (UBYTE)((c32k << (8 - 5)) & 0xF8);
COLORtoPalette (GetPrimColor (&_locPrim), &color);
TFB_Prim_Rect (lpRect, &color); TFB_Prim_Rect (lpRect, &color);
_CurFramePtr->HotSpot = OldHot; _CurFramePtr->HotSpot = OldHot;
} }
@@ -285,13 +254,8 @@ DrawFilledRectangle (PRECT lpRect)
if (GraphicsSystemActive () && GetFrameValidRect (&ValidRect, &OldHot)) if (GraphicsSystemActive () && GetFrameValidRect (&ValidRect, &OldHot))
{ {
TFB_Palette color; TFB_Palette color;
DWORD c32k;
c32k = GetPrimColor (&_locPrim) >> 8; //shift out color index
color.r = (UBYTE)((c32k >> (10 - (8 - 5))) & 0xF8);
color.g = (UBYTE)((c32k >> (5 - (8 - 5))) & 0xF8);
color.b = (UBYTE)((c32k << (8 - 5)) & 0xF8);
COLORtoPalette (GetPrimColor (&_locPrim), &color);
TFB_Prim_FillRect (lpRect, &color); TFB_Prim_FillRect (lpRect, &color);
_CurFramePtr->HotSpot = OldHot; _CurFramePtr->HotSpot = OldHot;
} }
@@ -306,13 +270,8 @@ DrawLine (PLINE lpLine)
if (GraphicsSystemActive () && GetFrameValidRect (&ValidRect, &OldHot)) if (GraphicsSystemActive () && GetFrameValidRect (&ValidRect, &OldHot))
{ {
TFB_Palette color; TFB_Palette color;
DWORD c32k;
c32k = GetPrimColor (&_locPrim) >> 8; //shift out color index
color.r = (UBYTE)((c32k >> (10 - (8 - 5))) & 0xF8);
color.g = (UBYTE)((c32k >> (5 - (8 - 5))) & 0xF8);
color.b = (UBYTE)((c32k << (8 - 5)) & 0xF8);
COLORtoPalette (GetPrimColor (&_locPrim), &color);
TFB_Prim_Line (lpLine, &color); TFB_Prim_Line (lpLine, &color);
_CurFramePtr->HotSpot = OldHot; _CurFramePtr->HotSpot = OldHot;
} }
@@ -340,12 +299,8 @@ DrawFilledStamp (PSTAMP stmp)
if (GraphicsSystemActive () && GetFrameValidRect (&ValidRect, &OldHot)) if (GraphicsSystemActive () && GetFrameValidRect (&ValidRect, &OldHot))
{ {
TFB_Palette color; TFB_Palette color;
DWORD c32k;
c32k = GetPrimColor (&_locPrim) >> 8; //shift out color index COLORtoPalette (GetPrimColor (&_locPrim), &color);
color.r = (UBYTE)((c32k >> (10 - (8 - 5))) & 0xF8);
color.g = (UBYTE)((c32k >> (5 - (8 - 5))) & 0xF8);
color.b = (UBYTE)((c32k << (8 - 5)) & 0xF8);
TFB_Prim_StampFill (stmp, &color); TFB_Prim_StampFill (stmp, &color);
_CurFramePtr->HotSpot = OldHot; _CurFramePtr->HotSpot = OldHot;
} }