static void DrawNoTrans(int x0, int y0, int XSize, int YSize, int BytesPerLine, const U8*pData) { if ((OldColorIndex != LCD_COLORINDEX) || (OldBkColorIndex != LCD_BKCOLORINDEX)) { int i; LCD_PIXELINDEX BkColorIndex = LCD_BKCOLORINDEX; LCD_PIXELINDEX ColorIndex = LCD_COLORINDEX; LCD_COLOR BkColor = LCD_Index2Color(BkColorIndex); LCD_COLOR Color = LCD_Index2Color(ColorIndex); aColor[0] = BkColor; for (i = 1; i < 3; i++) { U8 Intens; Intens = 5 * i; aColor[i] = LCD_AA_MixColors(Color, BkColor, Intens); } aColor[3] = Color; LCD_GetpPalConvTableUncached(&Palette); OldColorIndex = ColorIndex; OldBkColorIndex = BkColorIndex; } Bitmap.XSize = XSize; Bitmap.YSize = YSize; Bitmap.BytesPerLine = BytesPerLine; Bitmap.pData = pData; GL_DrawBitmap(&Bitmap, x0, y0); }
/********************************************************************* * * GUI_Index2Color */ GUI_COLOR GUI_Index2Color(int Index) { GUI_COLOR Color; GUI_LOCK(); Color = LCD_Index2Color(Index); GUI_UNLOCK(); return Color; }
/********************************************************************* * * GUI_GetColor */ GUI_COLOR GUI_GetColor(void) { GUI_COLOR r; GUI_LOCK(); r = LCD_Index2Color(LCD_GetColorIndex()); GUI_UNLOCK(); return r; }
GUI_COLOR GUI_Color2VisColor(GUI_COLOR color) { I16 Index; GUI_COLOR r; GUI_LOCK(); Index = LCD_Color2Index(color); r = LCD_Index2Color(Index); GUI_UNLOCK(); return r; }
/********************************************************************* * * _WriteAlphaToActiveAt */ static void _WriteAlphaToActiveAt(GUI_MEMDEV_Handle hMem, int Intens, int x, int y) { /* Make sure the memory handle is valid */ if (hMem) { GUI_MEMDEV * pDev = GUI_MEMDEV_H2P(hMem); GUI_USAGE_h hUsage = pDev->hUsage; GUI_USAGE* pUsage; int YSize = pDev->YSize; int yi; if (hUsage) { pUsage = GUI_USAGE_H2P(hUsage); for (yi = 0; yi < YSize; yi++) { int xOff = 0; int XSize; XSize = GUI_USAGE_GetNextDirty(pUsage, &xOff, yi); /* Draw the partial line which needs to be drawn */ for (; XSize; ) { U8* pData; pData = (U8*)GUI_MEMDEV__XY2PTREx(pDev, xOff, yi); do { LCD_COLOR Color, BkColor; int xPos, yPos, Index; if (pDev->BitsPerPixel == 8) { Index = *pData++; } else { Index = *(U16*)pData; pData += 2; } Color = LCD_Index2Color(Index); xPos = xOff + x; yPos = yi +y; BkColor = LCD_GetPixelColor(xPos, yPos); Color = LCD_MixColors256(Color, BkColor, Intens); Index = LCD_Color2Index(Color); LCD_SetPixelIndex(xPos, yPos, Index); xOff++; } while (--XSize); XSize = GUI_USAGE_GetNextDirty(pUsage, &xOff, yi); } } } } }
I32 LCD_GetDevCap(int Index) { switch (Index) { case LCD_DEVCAP_NUMCOLORS: return LCD_NUM_COLORS; case LCD_DEVCAP_XSIZE: return LCD_GetXSize(); case LCD_DEVCAP_YSIZE: return LCD_GetYSize(); case LCD_DEVCAP_VXSIZE: return LCD_VXSIZE; case LCD_DEVCAP_VYSIZE: return LCD_VYSIZE; case LCD_DEVCAP_CONTROLLER: return LCD_CONTROLLER; case LCD_DEVCAP_BITSPERPIXEL: return LCD_BITSPERPIXEL; } if ((Index >= LCD_DEVCAP_COLOR) && (Index < LCD_DEVCAP_COLOR+LCD_NUM_COLORS)) { return LCD_Index2Color(Index-LCD_DEVCAP_COLOR); } return 0; }
LCD_COLOR LCD_GetPixelColor(int x, int y) { return LCD_Index2Color(LCD_GetPixelIndex(x,y)); }