示例#1
0
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);
}
示例#2
0
/*********************************************************************
*
*       GUI_Index2Color
*/
GUI_COLOR GUI_Index2Color(int Index) {
  GUI_COLOR Color;
  GUI_LOCK();
  Color = LCD_Index2Color(Index);
  GUI_UNLOCK();
  return Color;
}
示例#3
0
/*********************************************************************
*
*       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;  
}
示例#5
0
/*********************************************************************
*
*       _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);
        }
      }
    }
  }
}
示例#6
0
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;
}
示例#7
0
LCD_COLOR LCD_GetPixelColor(int x, int y) {
  return LCD_Index2Color(LCD_GetPixelIndex(x,y));
}