83 lines
2.6 KiB
C
83 lines
2.6 KiB
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 : GUIDEMO_Lut.c
|
|
Purpose : Modify lookup table
|
|
----------------------------------------------------------------------
|
|
*/
|
|
|
|
#include "GUI.h"
|
|
#include "GUIDEMO.h"
|
|
#include "LCD_ConfDefaults.h" /* valid LCD configuration */
|
|
|
|
#if (LCD_BITSPERPIXEL > 2) && (LCD_BITSPERPIXEL <= 8)
|
|
|
|
/*********************************************************************
|
|
*
|
|
* Static functions
|
|
*
|
|
**********************************************************************
|
|
*/
|
|
|
|
static void _ModifyLUT(int RFaktor, int GFaktor, int BFaktor) {
|
|
int NumColors = LCD_GetDevCap(LCD_DEVCAP_NUMCOLORS);
|
|
int i;
|
|
for (i = 0; (i < NumColors) && !GUIDEMO_CheckCancel(); i++) {
|
|
U32 Color = LCD_GetDevCap(LCD_DEVCAP_COLOR + i);
|
|
U32 R = Color & 0xff;
|
|
U32 G = (Color >> 8) & 0xff;
|
|
U32 B = (Color >> 16) & 0xff;
|
|
/* Now modify color */
|
|
R = (R * RFaktor) / 100; if (R > 255) R = 255;
|
|
G = (G * GFaktor) / 100; if (G > 255) G = 255;
|
|
B = (B * BFaktor) / 100; if (B > 255) B = 255;
|
|
/* Write modified color into lookup table */
|
|
Color = R | (G << 8) | (B << 16);
|
|
GUI_SetLUTEntry((U8)i, Color);
|
|
}
|
|
}
|
|
|
|
/*********************************************************************
|
|
*
|
|
* GUIDEMO_DemoLUT
|
|
*
|
|
**********************************************************************
|
|
*/
|
|
|
|
void GUIDEMO_DemoLUT(void) {
|
|
int i;
|
|
GUIDEMO_ShowIntro("Modify LUT", "... after drawing color bars");
|
|
GUIDEMO_ShowColorBar();
|
|
for (i = 100; (i >= 0) && !GUIDEMO_CheckCancel(); i -= 2) {
|
|
_ModifyLUT(100, 100, i);
|
|
GUI_Delay(20);
|
|
}
|
|
for (i = 100; (i >= 0) && !GUIDEMO_CheckCancel(); i -= 2) {
|
|
_ModifyLUT(100, i, 0);
|
|
GUI_Delay(20);
|
|
}
|
|
for (i = 100; (i >= 0) && !GUIDEMO_CheckCancel(); i -= 2) {
|
|
_ModifyLUT(i, i, i);
|
|
GUI_Delay(20);
|
|
}
|
|
LCD_InitLUT();
|
|
GUIDEMO_Wait();
|
|
}
|
|
|
|
#else
|
|
|
|
void GUIDEMO_DemoLUT(void) {}
|
|
|
|
#endif
|