Ejemplo n.º 1
0
/*********************************************************************
*
*       GUI_USAGE_Select
*/
void GUI_USAGE_Select(GUI_USAGE_Handle hUsage) {
    GUI_MEMDEV * pDev;
    GUI_LOCK();
    pDev = GUI_MEMDEV_H2P(GUI_Context.hDevData);
    pDev->hUsage = hUsage;
    GUI_UNLOCK();
}
Ejemplo n.º 2
0
/*********************************************************************
*
*       GUI_MEMDEV_GetDataPtr
*/
void* GUI_MEMDEV_GetDataPtr(GUI_MEMDEV_Handle hMem) {
  GUI_MEMDEV* pDev;
  void *pData;
  GUI_LOCK();                   /* Needed so the memory management does not complain */
  pDev  = GUI_MEMDEV_H2P(hMem);
  GUI_UNLOCK();
  pData = (void*)(pDev + 1);
  return pData;
}
Ejemplo n.º 3
0
/*********************************************************************
*
*       _MarkRect
*/
static void _MarkRect(int x0, int y0, int x1, int y1) {
  GUI_MEASDEV* pDev = (GUI_MEASDEV*)(GUI_MEMDEV_H2P(GUI_Context.hDevData));
  if (x0 < pDev->rUsed.x0)
    pDev->rUsed.x0 = x0;
  if (x1 > pDev->rUsed.x1)
    pDev->rUsed.x1 = x1;
  if (y1 < pDev->rUsed.y0)
    pDev->rUsed.y0 = y0;
  if (y1 > pDev->rUsed.y1)
    pDev->rUsed.y1 = y1;
}
Ejemplo n.º 4
0
/*********************************************************************
*
*       _MarkPixel
*/
static void _MarkPixel(int x, int y) {
  GUI_MEASDEV* pDev = (GUI_MEASDEV*)(GUI_MEMDEV_H2P(GUI_Context.hDevData));
  if (x < pDev->rUsed.x0)
    pDev->rUsed.x0 = x;
  if (x > pDev->rUsed.x1)
    pDev->rUsed.x1 = x;
  if (y < pDev->rUsed.y0)
    pDev->rUsed.y0 = y;
  if (y > pDev->rUsed.y1)
    pDev->rUsed.y1 = y;
}
Ejemplo n.º 5
0
/*********************************************************************
*
*       _XY2PTR
*/
static PIXELINDEX* _XY2PTR(int x, int y) {
  GUI_MEMDEV* pDev = GUI_MEMDEV_H2P(GUI_Context.hDevData);
  U8 *pData = (U8*)(pDev + 1);
  #if GUI_DEBUG_LEVEL >= GUI_DEBUG_LEVEL_CHECK_ALL
    if ((x >= pDev->x0+pDev->XSize) | (x<pDev->x0) | (y >= pDev->y0+pDev->YSize) | (y<pDev->y0)) {
      GUI_DEBUG_ERROROUT2("_XY2PTR: parameters out of bounds",x,y);
    }
  #endif
  pData += (GUI_ALLOC_DATATYPE_U)(y - pDev->y0) * (GUI_ALLOC_DATATYPE_U)pDev->BytesPerLine;
  return ((PIXELINDEX*)pData) + x - pDev->x0;
}
Ejemplo n.º 6
0
/*********************************************************************
*
*       GUI_MEMDEV_Clear
*/
void GUI_MEMDEV_Clear(GUI_MEMDEV_Handle hMem) {
  if (!hMem) {
    if ((hMem = GUI_Context.hDevData) == 0) {
      return;
    }
  }
  {
    GUI_MEMDEV* pDev;
    GUI_USAGE_h hUsage;
    GUI_LOCK();
    pDev = GUI_MEMDEV_H2P(hMem);  /* Convert to pointer */
    hUsage = pDev->hUsage; 
    if (hUsage) {
      GUI_USAGE* pUsage = GUI_USAGE_H2P(hUsage);
      GUI_USAGE_Clear(pUsage);
    }
    GUI_UNLOCK();
  }
}
Ejemplo n.º 7
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);
        }
      }
    }
  }
}