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

📄 color.cpp

📁 一个自己写的游戏引擎,用DirectX 写成
💻 CPP
字号:
//--------------------------------------------------
//  Desc: Color
//  Author: artsylee/2006.10.31
//--------------------------------------------------
#include "../stdafx.h"
#include "Color.h"

// Conversion to 16Bit color
ASINLINE WORD __stdcall RGB32TORGB555(DWORD color)
{
	BYTE r = (BYTE)((color>>16) & 0xff);
	BYTE g = (BYTE)((color>>8) & 0xff);
	BYTE b = (BYTE)((color) & 0xff);

	return ((r & 0xf8)<<7) | ((g & 0xf8)<<2) | ((b & 0xf8)>>3);
}

ASINLINE WORD __stdcall RGB32TORGB565(DWORD color)
{
	BYTE r = (BYTE)((color>>16) & 0xff);
	BYTE g = (BYTE)((color>>8) & 0xff);
	BYTE b = (BYTE)((color) & 0xff);

	return ((r & 0xf8)<<8) | ((g & 0xfc)<<3) | ((b & 0xf8)>>3);
}

// Conversion to 32Bit color
ASINLINE DWORD __stdcall MakeARGB(BYTE a, BYTE r, BYTE g, BYTE b)
{
	return (DWORD)((a<<24) | (r<<16) | (g<<8) | b);
}

ASINLINE DWORD __stdcall RGB555TORGB32(WORD color)
{
	BYTE r = (BYTE)((color>>7)&0xf8);
	BYTE g = (BYTE)((color>>2)&0xf8);
	BYTE b = (BYTE)((color<<3)&0xf8);

	return (DWORD)(0xff000000 | (r<<16) | (g<<8) | b);
}

ASINLINE DWORD __stdcall RGB565TORGB32(WORD color)
{
	BYTE r = (BYTE)((color>>8)&0xf8);
	BYTE g = (BYTE)((color>>3)&0xf8);
	BYTE b = (BYTE)((color<<3)&0xf8);

	return (DWORD)(0xff000000 | (r<<16) | (g<<8) | b);
}

// Conversion between COLORREF and 32Bit color
ASINLINE DWORD __stdcall MakeARGB(BYTE a, COLORREF color)
{
	return (a<<24)|(((BYTE)(color))<<16)|(color & 0x0000ff00)|((BYTE)(color>>16));
}

ASINLINE COLORREF __stdcall TORGB(DWORD color)
{
	return (color & 0x0000ff00)|(((BYTE)(color))<<16)|((BYTE)(color>>16));
}

ASINLINE DWORD __stdcall InVertColor(DWORD color)
{
	return SetA((0xffffffff - color), 0xff);
}

⌨️ 快捷键说明

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