www.pudn.com > UCGUI390a.rar > LCDP0.c


/* 
********************************************************************************************************* 
*                                                uC/GUI 
*                        Universal graphic software for embedded applications 
* 
*                       (c) Copyright 2002, Micrium Inc., Weston, FL 
*                       (c) Copyright 2002, SEGGER Microcontroller Systeme GmbH 
* 
*              µC/GUI is protected by international copyright laws. Knowledge of the 
*              source code may not be used to write a similar product. This file may 
*              only be used in accordance with a license and should not be redistributed 
*              in any way. We appreciate your understanding and fairness. 
* 
---------------------------------------------------------------------- 
File        : LCDP0.C 
Purpose     : Color conversion routines for LCD-drivers 
---------------------------END-OF-HEADER------------------------------ 
*/ 
 
#include "LCD_Private.h"    /* inter modul definitions */ 
#include "GUI.h" 
 
/********************************************************************* 
* 
*       Public code, 1/2/4/8 bpp color, LUT 
* 
********************************************************************** 
*/ 
/********************************************************************* 
* 
*       LCD_Color2Index_0 
*/ 
unsigned LCD_Color2Index_0(LCD_COLOR Color, const LCD_PHYSPALETTE* pPhysPal) { 
  int i; 
  int NumEntries = pPhysPal->NumEntries; 
  int BestIndex = 0; 
  U32 BestDiff = 0xffffff; /* Initialize to worst match */ 
  const LCD_COLOR* pPalEntry; 
/* Try to find perfect match */ 
  i=0; pPalEntry = &pPhysPal->pPalEntries[0]; 
  do { 
	  if (Color==*(pPalEntry+i)) 
	    return i; 
  } while (++ipPalEntries[0]; 
  do { 
    U32 Diff = GUI_CalcColorDist (Color, *(pPalEntry+i)); 
    if (Diff < BestDiff) { 
      BestDiff  = Diff; 
      BestIndex = i; 
    } 
  } while (++i= (unsigned) pPhysPal->NumEntries) { 
    return 0;     /* Illegal index */ 
  } 
  return *(pPhysPal->pPalEntries+Index); 
} 
 
/********************************************************************* 
* 
*       LCD_GetIndexMask_0 
*/ 
unsigned LCD_GetIndexMask_0(void) { 
  return ((1 << LCD_BITSPERPIXEL) - 1); 
} 
 
/*************************** End of file ****************************/