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

📄 palette.c

📁 基于东南大学开发的SEP3203的ARM7中的所有驱动
💻 C
字号:
#include "gpc.h"
//#include <simdrv\export\driver.h>

DWORD	SysPalette1[] = {
GPC_WHITE, GPC_BLACK };

DWORD	SysPalette2[] = {
GPC_WHITE, GPC_LIGHTGREY, GPC_DARKGREY, GPC_BLACK };

DWORD	SysPalette4[] = {
0x00000000, 0x00000080, 0x000000ff, 0x00008000,
0x00008080, 0x0000ff00, 0x0000ffff, 0x00555555, 
0x00800000, 0x00800080, 0x00808000, 0x00aaaaaa, 
0x00ff0000, 0x00ff00ff, 0x00ffff00, 0x00ffffff };

DWORD	SysPalette8[] = {
0x00000000, 0x00000040, 0x00000080, 0x000000ff, 0x00002000, 0x00002040, 0x00002080, 0x000020ff, 
0x00004000, 0x00004040, 0x00004080, 0x000040ff, 0x00006000, 0x00006040, 0x00006080, 0x000060ff, 
0x00008000, 0x00008040, 0x00008080, 0x000080ff, 0x0000a000, 0x0000a040, 0x0000a080, 0x0000a0ff, 
0x0000c000, 0x0000c040, 0x0000c080, 0x0000c0ff, 0x0000ff00, 0x0000ff40, 0x0000ff80, 0x0000ffff, 
0x00200000, 0x00200040, 0x00200080, 0x002000ff, 0x00202000, 0x00202040, 0x00202080, 0x002020ff, 
0x00204000, 0x00204040, 0x00204080, 0x002040ff, 0x00206000, 0x00206040, 0x00206080, 0x002060ff, 
0x00208000, 0x00208040, 0x00208080, 0x002080ff, 0x0020a000, 0x0020a040, 0x0020a080, 0x0020a0ff, 
0x0020c000, 0x0020c040, 0x0020c080, 0x0020c0ff, 0x0020ff00, 0x0020ff40, 0x0020ff80, 0x0020ffff, 
0x00400000, 0x00400040, 0x00400080, 0x004000ff, 0x00402000, 0x00402040, 0x00402080, 0x004020ff, 
0x00404000, 0x00404040, 0x00404080, 0x004040ff, 0x00406000, 0x00406040, 0x00406080, 0x004060ff, 
0x00408000, 0x00408040, 0x00408080, 0x004080ff, 0x0040a000, 0x0040a040, 0x0040a080, 0x0040a0ff, 
0x0040c000, 0x0040c040, 0x0040c080, 0x0040c0ff, 0x0040ff00, 0x0040ff40, 0x0040ff80, 0x0040ffff, 
0x00600000, 0x00600040, 0x00600080, 0x006000ff, 0x00602000, 0x00602040, 0x00602080, 0x006020ff, 
0x00604000, 0x00604040, 0x00604080, 0x006040ff, 0x00606000, 0x00606040, 0x00606080, 0x006060ff, 
0x00608000, 0x00608040, 0x00608080, 0x006080ff, 0x0060a000, 0x0060a040, 0x0060a080, 0x0060a0ff, 
0x0060c000, 0x0060c040, 0x0060c080, 0x0060c0ff, 0x0060ff00, 0x0060ff40, 0x0060ff80, 0x0060ffff, 
0x00800000, 0x00800040, 0x00800080, 0x008000ff, 0x00802000, 0x00802040, 0x00802080, 0x008020ff, 
0x00804000, 0x00804040, 0x00804080, 0x008040ff, 0x00000014, 0x00806081, 0x00806080, 0x008060ff, 
0x00808000, 0x00808040, 0x00808080, 0x008080ff, 0x0080a000, 0x0080a040, 0x0080a080, 0x0080a0ff, 
0x0080c000, 0x0080c040, 0x0080c080, 0x0080c0ff, 0x0080ff00, 0x0080ff40, 0x0080ff80, 0x0080ffff, 
0x00a00000, 0x00a00040, 0x00a00080, 0x00a000ff, 0x00a02000, 0x00a02040, 0x00a02080, 0x00a020ff, 
0x00a04000, 0x00a04040, 0x00a04080, 0x00a040ff, 0x00a06000, 0x00a06040, 0x00a06080, 0x00a060ff, 
0x00a08000, 0x00a08040, 0x00a08080, 0x00a080ff, 0x00a0a000, 0x00a0a040, 0x00a0a080, 0x00a0a0ff, 
0x00a0c000, 0x00a0c040, 0x00a0c080, 0x00a0c0ff, 0x00a0ff00, 0x00a0ff40, 0x00a0ff80, 0x00a0ffff, 
0x00c00000, 0x00c00040, 0x00c00080, 0x00c000ff, 0x00c02000, 0x00c02040, 0x00c02080, 0x00c020ff, 
0x00c04000, 0x00c04040, 0x00c04080, 0x00c040ff, 0x00c06000, 0x00c06040, 0x00c06080, 0x00c060ff, 
0x00c08000, 0x00c08040, 0x00c08080, 0x00c080ff, 0x00c0a000, 0x00c0a040, 0x00c0a080, 0x00c0a0ff, 
0x00c0c000, 0x00c0c040, 0x00c0c080, 0x00c0c0ff, 0x00c0ff00, 0x00c0ff40, 0x00c0ff80, 0x00c0ffff, 
0x00ff0000, 0x00ff0040, 0x00ff0080, 0x00ff00ff, 0x00ff2000, 0x00ff2040, 0x00ff2080, 0x00ff20ff, 
0x00ff4000, 0x00ff4040, 0x00ff4080, 0x00ff40ff, 0x00ff6000, 0x00ff6040, 0x00ff6080, 0x00ff60ff, 
0x00ff8000, 0x00ff8040, 0x00ff8080, 0x00ff80ff, 0x00ffa000, 0x00ffa040, 0x00ffa080, 0x00ffa0ff, 
0x00ffc000, 0x00ffc040, 0x00ffc080, 0x00ffc0ff, 0x00ffff00, 0x00ffff40, 0x00ffff80, 0x00ffffff
};

DWORD SysPalette0[] = {0};

DWORD *seGetSysPalette( BYTE bitcount )
{
	DWORD *palette;

	switch( bitcount )
	{
		case 1:
			palette = SysPalette1;
			break;
		case 2:
			palette = SysPalette2;
			break;
		case 4:
			palette = SysPalette4;
			break;
		case 8:
			palette = SysPalette8;
			break;
		default:
			if( bitcount < 8 || bitcount % 3 == 0 )
				palette = SysPalette0;
			else
				palette = NULL;
			break;
	}
	return palette;
}

DWORD seBMPIndexToRGB( BYTE bitcount, DWORD index )
{
	DWORD	color = 0;

	if( bitcount < 8 )
		color = index | ( index << 8 ) | ( index << 16 );
	else
	{
		if( bitcount == 24 )
			color = index;
		else
		{
			BYTE i, n = bitcount/3;
			BYTE mask = MAKEMASK( n );

			for( i = 0; i < bitcount; i++ )
			{
				color = ( color << n ) | ( ( index & mask ) * 0xff / mask );
				index = index >> n;
			}
		}
	}
	
	return color;
}

⌨️ 快捷键说明

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