📄 lcdwin.lst
字号:
}
} else {
for (;xsize > 0; xsize--,x++,p++) {
SETPIXEL(x, y, *p);
}
}
} else { /* Handle transparent bitmap */
if (pTrans) {
for (; xsize > 0; xsize--, x++, p++) {
pixel = *p;
if (pixel) {
SETPIXEL(x+0, y, *(pTrans+pixel));
}
}
} else {
for (; xsize > 0; xsize--, x++, p++) {
pixel = *p;
if (pixel) {
SETPIXEL(x+0, y, pixel);
}
}
}
C51 COMPILER V8.05a LCDWIN 04/11/2008 14:19:26 PAGE 9
}
}
#endif
/*
*********************************************************
* *
* Universal draw Bitmap routine *
* *
*********************************************************
*/
void LCD_L0_DrawBitmap (int x0, int y0,
int xsize, int ysize,
int BitsPerPixel,
int BytesPerLine,
const U8* pData, int Diff,
const LCD_PIXELINDEX* pTrans)
{
int i;
/*
Use DrawBitLineXBPP
*/
for (i=0; i<ysize; i++) {
switch (BitsPerPixel) {
case 1:
DrawBitLine1BPP(x0, i+y0, pData, Diff, xsize, pTrans);
break;
#if (LCD_MAX_LOG_COLORS > 2)
case 2:
DrawBitLine2BPP(x0, i+y0, pData, Diff, xsize, pTrans);
break;
#endif
#if (LCD_MAX_LOG_COLORS > 4)
case 4:
DrawBitLine4BPP(x0, i+y0, pData, Diff, xsize, pTrans);
break;
#endif
#if (LCD_MAX_LOG_COLORS > 16)
case 8:
DrawBitLine8BPP(x0, i+y0, pData, xsize, pTrans);
break;
#endif
#if (LCD_BITSPERPIXEL > 8)
case 16:
DrawBitLine16BPP(x0, i+y0, (const U16 *)pData, xsize, pTrans);
break;
#endif
}
pData += BytesPerLine;
}
}
/********************************************************
*
* LCD_L0_SetOrg
*
*********************************************************
Purpose: Sets the original position of the virtual display.
Has no function at this point with the PC-driver.
C51 COMPILER V8.05a LCDWIN 04/11/2008 14:19:26 PAGE 10
*/
int OrgX, OrgY;
void LCD_L0_SetOrg(int x, int y) {
OrgX = x;
OrgY = y;
}
/*
*********************************************************
* *
* Support for verification *
* *
*********************************************************
The following routines are implemented, but have no functionility
at this point. The reason is that these functions are supposed
to supervise the hardware, which for obvious reasons can not be
done in a simulation.
*/
#if LCD_VERIFY
int LCD_GetErrStat(void) {
return 0;
}
void LCD_ClrErrStat(void) {
}
int LCD_GetErrCnt (void) {
return 0;
}
#endif
/*
*********************************************************
* *
* LCD_On *
* LCD_Off *
* *
*********************************************************
(Not supported in Simulation)
*/
void LCD_Off (void) {}
void LCD_On (void) {}
/*
*********************************************************
* *
* LUT routines (lookup tables) *
* *
*********************************************************
*/
void LCD_L0_SetLUTEntry(U8 Pos, LCD_COLOR color) {
LCDSIM_SetLUTEntry(Pos, color);
}
/*
*********************************************************
* *
* LCD_Init : Init the display *
C51 COMPILER V8.05a LCDWIN 04/11/2008 14:19:26 PAGE 11
* *
*********************************************************
*/
int LCD_L0_Init(void) {
int x,y;
// Create Bitmaps to simulate LCD (pages)
for (x=0; x< LCD_XSIZE; x++)
for (y=0; y< LCD_YSIZE; y++)
SETPIXEL( x, y, BKCOLORINDEX);
return 0;
}
int LCD_L0_CheckInit(void) {
return 0;
}
/*
******************************************
* *
* Re-initialize LCD *
* *
******************************************
This routine is supplied for compatibility and interchangability of
"C"-sources with embedded versions of the driver. It has no real
effect in the PC-version as there is simply no need to re-initialize
the LCD since it is just simulated anyhow.
*/
void LCD_L0_ReInit (void) {}
unsigned LCD_L0_GetPixelIndex(int x, int y) {
return LCDSIM_GetPixelIndex(x,y);
}
/*
*********************************************************
* *
* LCD_L0_XorPixel *
* *
*********************************************************
Purpose: This routine is called by emWin. It writes 1 pixel into the
display.
*/
void LCD_L0_XorPixel(int x, int y) {
XORPIXEL(x, y);
}
/*
*********************************************************
* *
* LCD_L0_SetPixelIndex *
* *
*********************************************************
Purpose: This routine is called by emWin. It writes 1 pixel into the
display.
C51 COMPILER V8.05a LCDWIN 04/11/2008 14:19:26 PAGE 12
*/
void LCD_L0_SetPixelIndex(int x, int y, int ColorIndex) {
SETPIXEL(x, y, ColorIndex);
}
#else
684 void LCDWin(void) { } /* avoid empty object files */
685 #endif /* defined(WIN32) && defined(LCD_USE_WINSIM) */
686
687
688
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -