⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vramop.h

📁 一个操作系统源代码 用于嵌入式设备 在Vc++环境下仿真 成功移植到多款处理器上
💻 H
字号:
#ifndef VRAMOP_H
#define VRAMOP_H

#include <sys\wintype.h>
#include <sys\cdevice.h>

#define VRAMMap( x2, y2, x1, y1, vram )\
{\
	*(x2) = (x1) < (vram)->lcdx ? 0 : (x1) - (vram)->lcdx;\
	*(y2) = (y1) < (vram)->lcdy ? 0 : (y1) - (vram)->lcdy;\
	if( *(x2) >= LCD_WIDTH )\
		*(x2) = LCD_WIDTH -1;\
	if( *(y2) >= LCD_HEIGHT )\
		*(y2) = LCD_HEIGHT -1;\
}

//GetNextLine 获取指定行的下一行的行首像素的物理地址
#define GetNextLine( nextPixelPos, nextBitOffset, pixelPos, bitOffset, vram ) \
{\
	*(nextPixelPos) = (pixelPos) + ( vram )->widthInUnit;\
	(*(nextBitOffset)) = ( bitOffset );\
}

extern const PIXEL PixelMask;

extern void newGetPixel( PIXEL *pixelValue, PIXEL *pixelPos, CHAR bitOffset );
extern void GetPixelPosition( PIXEL **pixelPos, CHAR *bitOffset, VRAM *vram, WORD x, WORD y );
extern void GetNextPixelPosition( PIXEL **nextPixelPos, CHAR *newBitOffset, PIXEL *pixelPos, CHAR bitOffset );
extern void GetNextPixel( PIXEL *pixelValue, PIXEL *pixelPos, CHAR bitOffset );
extern void GetLine( PIXEL **pixelPos, CHAR *bitOffset, VRAM *vram, WORD y );
//extern void GetNextLine( PIXEL **nextPixelPos, CHAR *nextBitOffset, PIXEL *pixelPos, CHAR bitOffset, VRAM *vram );
extern void newSetPixel( PIXEL *pixelPos, CHAR bitOffset, PIXEL pixelValue );
extern void PixelOp( PIXEL *desPixelPos, CHAR desBitOffset, PIXEL srcValue, WORD op );
extern void PixelMaskOp( PIXEL *desPixelPos, PIXEL srcValue, PIXEL srcMask, WORD op );
extern void UnitMaskOp( WORD *desPixelPos, WORD srcValue, WORD srcMask, WORD op );
extern void InvertPixel( PIXEL *desPixelPos, CHAR desBitOffset );
extern void SetLine( PIXEL *linePos, CHAR bitOffset, WORD len, PIXEL lineValue );
extern void LineUnicolorOp( PIXEL *desLinePos, CHAR desBitOffset, WORD len, PIXEL srcValue, WORD op );
extern void LineUnicolorMaskOp( PIXEL *desLinePos, CHAR desBitOffset, WORD len, PIXEL srcValue, WORD mask, WORD op );
extern void InvertLine( PIXEL *desLinePos, CHAR desBitOffset, WORD len );
extern void LineOp( PIXEL *desLinePos, CHAR desBitOffset, PIXEL *srcLinePos, CHAR srcBitOffset, WORD len, WORD op );
extern void BlockUnicolorOp( PIXEL *desLinePos, CHAR desBitOffset, WORD width, WORD height, PIXEL srcValue, WORD op, VRAM *vram );
extern void BlockUnicolorMaskOp( PIXEL *desLinePos, CHAR desBitOffset, WORD width, WORD height, PIXEL srcValue, WORD mask, WORD op, VRAM *vram );
extern void InvertBlock( PIXEL *desLinePos, CHAR desBitOffset, WORD width, WORD height, VRAM *vram );
extern void BlockOp( PIXEL *desLinePos, CHAR desBitOffset, PIXEL *srcLinePos, CHAR srcBitOffset, WORD width, WORD height, WORD op, VRAM *desVram, VRAM *srcVram );

extern VRAM *GetVRAM( WORD width, WORD height );
extern void FreeVRAM( VRAM *vram );
extern PIXEL *GetBlock( WORD width, WORD height );
extern DWORD GetVRAMSize( VRAM *vram );

extern void LinearColorMap( BYTE *color, BYTE index, BYTE maxColor, BYTE maxIndex);
extern BOOL InitialPalette( void );

extern void VertLineUnicolorOp( PIXEL *desLinePos, CHAR desBitOffset, WORD len, PIXEL srcValue, WORD mask, WORD op, VRAM *vram );

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -