📄 texblend.h
字号:
/**************************************************************************
* Name : texblend.h
* Author : BCB
* Created : 20/05/2003
*
* Copyright : 2003 by Imagination Technologies Limited. All rights reserved.
* : No part of this software, either material or conceptual
* : may be copied or distributed, transmitted, transcribed,
* : stored in a retrieval system or translated into any
* : human or computer language in any form by any means,
* : electronic, mechanical, manual or other-wise, or
* : disclosed to third parties without the express written
* : permission of Imagination Technologies Limited, Unit 8, HomePark
* : Industrial Estate, King's Langley, Hertfordshire,
* : WD4 8LZ, U.K.
*
* Platform : ANSI
*
* $Date: 2003/12/15 19:31:37 $ $Revision: 1.2 $
* $Log: texblend.h $
**************************************************************************/
#ifndef _TEXBLEND_
#define _TEXBLEND_
/*****************************************************************/
/* Blend Mode Lookup Tables */
/*****************************************************************/
/*
* Texture Format Summary:
*
* GL_ALPHA: 8 (Blend ignores colour channels)
* GL_LUMINACE: 8 (Blend ignores alpha)
* GL_LUMINANCE_ALPHA: 8:8
* GL_RGB: 565, 8888 (Alpha set to 0xff for latter)
* GL_RGBA: 4444, 8888
*/
/*
* Texture blend list:
*
* GL_MODULATE:
* GL_DECAL:
* GL_BLEND:
* GL_REPLACE:
* GL_ADD:
*/
const static IMG_UINT32 aui32LayerBlendWord[GLES_MAX_TEXTURE_UNITS][GLES_NUM_TEX_FORMATS][GLES_NUM_TEX_BLENDS] =
{
{
/* GL_ALPHA : GL_MODULATE - C=Cdiff, A=Adiff*Atex */
{ (MBX1_TSPPL3_CS1SELONE |
MBX1_TSPPL3_CS2SELDIFFUSE |
MBX1_TSPPL3_CS3SELONE | MBX1_TSPPL3_INVCS3 |
MBX1_TSPPL3_CS4SELDIFFUSE |
MBX1_TSPPL3_AS1SELTEXTUREALPHA |
MBX1_TSPPL3_AS2SELDIFFUSEALPHA |
MBX1_TSPPL3_AS3SELONE | MBX1_TSPPL3_INVAS3 |
MBX1_TSPPL3_AS4SELDIFFUSEALPHA)
,
/* GL_ALPHA : GL_DECAL - undefined in spec, do a replace */
(MBX1_TSPPL3_CS1SELONE |
MBX1_TSPPL3_CS2SELDIFFUSE |
MBX1_TSPPL3_CS3SELONE | MBX1_TSPPL3_INVCS3 |
MBX1_TSPPL3_CS4SELDIFFUSE |
MBX1_TSPPL3_AS1SELONE |
MBX1_TSPPL3_AS2SELTEXTUREALPHA |
MBX1_TSPPL3_AS3SELONE | MBX1_TSPPL3_INVAS3 |
MBX1_TSPPL3_AS4SELDIFFUSEALPHA)
,
/* GL_ALPHA : GL_BLEND - C=Cdiff, A=Adiff*Atex */
(MBX1_TSPPL3_CS1SELONE |
MBX1_TSPPL3_CS2SELDIFFUSE |
MBX1_TSPPL3_CS3SELONE | MBX1_TSPPL3_INVCS3 |
MBX1_TSPPL3_CS4SELDIFFUSE |
MBX1_TSPPL3_AS1SELTEXTUREALPHA |
MBX1_TSPPL3_AS2SELDIFFUSEALPHA |
MBX1_TSPPL3_AS3SELONE | MBX1_TSPPL3_INVAS3 |
MBX1_TSPPL3_AS4SELDIFFUSEALPHA)
,
/* GL_ALPHA : GL_REPLACE - C=Cdiff, A=Atex */
(MBX1_TSPPL3_CS1SELONE |
MBX1_TSPPL3_CS2SELDIFFUSE |
MBX1_TSPPL3_CS3SELONE | MBX1_TSPPL3_INVCS3 |
MBX1_TSPPL3_CS4SELDIFFUSE |
MBX1_TSPPL3_AS1SELONE |
MBX1_TSPPL3_AS2SELTEXTUREALPHA |
MBX1_TSPPL3_AS3SELONE | MBX1_TSPPL3_INVAS3 |
MBX1_TSPPL3_AS4SELDIFFUSEALPHA)
,
/* GL_ALPHA : GL_ADD - C=Cdiff, A=Adiff*Atex*/
(MBX1_TSPPL3_CS1SELONE |
MBX1_TSPPL3_CS2SELDIFFUSE |
MBX1_TSPPL3_CS3SELONE | MBX1_TSPPL3_INVCS3 |
MBX1_TSPPL3_CS4SELDIFFUSE |
MBX1_TSPPL3_AS1SELTEXTUREALPHA |
MBX1_TSPPL3_AS2SELDIFFUSEALPHA |
MBX1_TSPPL3_AS3SELONE | MBX1_TSPPL3_INVAS3 |
MBX1_TSPPL3_AS4SELDIFFUSEALPHA)
}
,
/* GL_LUMINANCE : GL_MODULATE - C=Cdiff*Ltex, A=Adiff */
{ (MBX1_TSPPL3_CS1SELTEXTURE |
MBX1_TSPPL3_CS2SELDIFFUSE |
MBX1_TSPPL3_CS3SELONE | MBX1_TSPPL3_INVCS3 |
MBX1_TSPPL3_CS4SELDIFFUSE |
MBX1_TSPPL3_AS1SELONE |
MBX1_TSPPL3_AS2SELDIFFUSEALPHA |
MBX1_TSPPL3_AS3SELONE | MBX1_TSPPL3_INVAS3 |
MBX1_TSPPL3_AS4SELDIFFUSEALPHA)
,
/* GL_LUMINANCE : GL_DECAL - undefined in spec, do a replace */
(MBX1_TSPPL3_CS1SELONE |
MBX1_TSPPL3_CS2SELTEXTURE |
MBX1_TSPPL3_CS3SELONE | MBX1_TSPPL3_INVCS3 |
MBX1_TSPPL3_CS4SELDIFFUSE |
MBX1_TSPPL3_AS1SELONE |
MBX1_TSPPL3_AS2SELDIFFUSEALPHA |
MBX1_TSPPL3_AS3SELONE | MBX1_TSPPL3_INVAS3 |
MBX1_TSPPL3_AS4SELDIFFUSEALPHA)
,
/* GL_LUMINANCE : GL_BLEND - C=(1-Ltex)*Cdiff + Ltex*Cfactor, A=Adiff */
(MBX1_TSPPL3_CS1SELTEXTURE | MBX1_TSPPL3_INVCS1 |
MBX1_TSPPL3_CS2SELDIFFUSE |
MBX1_TSPPL3_CS3SELTEXTURE |
MBX1_TSPPL3_CS4SELFACTOR |
MBX1_TSPPL3_AS1SELONE |
MBX1_TSPPL3_AS2SELDIFFUSEALPHA |
MBX1_TSPPL3_AS3SELONE | MBX1_TSPPL3_INVAS3 |
MBX1_TSPPL3_AS4SELDIFFUSEALPHA)
,
/* GL_LUMINANCE : GL_REPLACE - C=Ltex, A=Adiff */
(MBX1_TSPPL3_CS1SELONE |
MBX1_TSPPL3_CS2SELTEXTURE |
MBX1_TSPPL3_CS3SELONE | MBX1_TSPPL3_INVCS3 |
MBX1_TSPPL3_CS4SELDIFFUSE |
MBX1_TSPPL3_AS1SELONE |
MBX1_TSPPL3_AS2SELDIFFUSEALPHA |
MBX1_TSPPL3_AS3SELONE | MBX1_TSPPL3_INVAS3 |
MBX1_TSPPL3_AS4SELDIFFUSEALPHA)
,
/* GL_LUMINANCE : GL_ADD - C=Cdiff+Ltex, A=Adiff */
(MBX1_TSPPL3_CS1SELONE |
MBX1_TSPPL3_CS2SELDIFFUSE |
MBX1_TSPPL3_CS3SELONE |
MBX1_TSPPL3_CS4SELTEXTURE |
MBX1_TSPPL3_AS1SELONE |
MBX1_TSPPL3_AS2SELDIFFUSEALPHA |
MBX1_TSPPL3_AS3SELONE | MBX1_TSPPL3_INVAS3 |
MBX1_TSPPL3_AS4SELDIFFUSEALPHA)
}
,
/* GL_LUMINANCE_ALPHA : GL_MODULATE - C=Cdiff*Ltex, A=Adiff*Atex */
{ (MBX1_TSPPL3_CS1SELTEXTURE |
MBX1_TSPPL3_CS2SELDIFFUSE |
MBX1_TSPPL3_CS3SELONE | MBX1_TSPPL3_INVCS3 |
MBX1_TSPPL3_CS4SELDIFFUSE |
MBX1_TSPPL3_AS1SELTEXTUREALPHA |
MBX1_TSPPL3_AS2SELDIFFUSEALPHA |
MBX1_TSPPL3_AS3SELONE | MBX1_TSPPL3_INVAS3 |
MBX1_TSPPL3_AS4SELDIFFUSEALPHA)
,
/* GL_LUMINANCE_ALPHA : GL_DECAL - undefined in spec, do a replace */
(MBX1_TSPPL3_CS1SELONE |
MBX1_TSPPL3_CS2SELTEXTURE |
MBX1_TSPPL3_CS3SELONE | MBX1_TSPPL3_INVCS3 |
MBX1_TSPPL3_CS4SELDIFFUSE |
MBX1_TSPPL3_AS1SELONE |
MBX1_TSPPL3_AS2SELDIFFUSEALPHA |
MBX1_TSPPL3_AS3SELONE | MBX1_TSPPL3_INVAS3 |
MBX1_TSPPL3_AS4SELDIFFUSEALPHA)
,
/* GL_LUMINANCE_ALPHA : GL_BLEND - C=(1-Ltex)*Cdiff + Ltex*Cfactor, A=Adiff*Atex */
(MBX1_TSPPL3_CS1SELTEXTURE | MBX1_TSPPL3_INVCS1 |
MBX1_TSPPL3_CS2SELDIFFUSE |
MBX1_TSPPL3_CS3SELTEXTURE |
MBX1_TSPPL3_CS4SELFACTOR |
MBX1_TSPPL3_AS1SELTEXTUREALPHA |
MBX1_TSPPL3_AS2SELDIFFUSEALPHA |
MBX1_TSPPL3_AS3SELONE | MBX1_TSPPL3_INVAS3 |
MBX1_TSPPL3_AS4SELDIFFUSEALPHA)
,
/* GL_LUMINANCE_ALPHA : GL_REPLACE - C=Ltex, A=Atex */
(MBX1_TSPPL3_CS1SELONE |
MBX1_TSPPL3_CS2SELTEXTURE |
MBX1_TSPPL3_CS3SELONE | MBX1_TSPPL3_INVCS3 |
MBX1_TSPPL3_CS4SELDIFFUSE |
MBX1_TSPPL3_AS1SELONE |
MBX1_TSPPL3_AS2SELTEXTUREALPHA |
MBX1_TSPPL3_AS3SELONE | MBX1_TSPPL3_INVAS3 |
MBX1_TSPPL3_AS4SELDIFFUSEALPHA)
,
/* GL_LUMINANCE_ALPHA : GL_ADD - C=Cdiff+Ltex, A=Adiff*Atex */
(MBX1_TSPPL3_CS1SELONE |
MBX1_TSPPL3_CS2SELDIFFUSE |
MBX1_TSPPL3_CS3SELONE |
MBX1_TSPPL3_CS4SELTEXTURE |
MBX1_TSPPL3_AS1SELTEXTUREALPHA |
MBX1_TSPPL3_AS2SELDIFFUSEALPHA |
MBX1_TSPPL3_AS3SELONE | MBX1_TSPPL3_INVAS3 |
MBX1_TSPPL3_AS4SELDIFFUSEALPHA)
}
,
/* GL_RGB : GL_MODULATE - C=Cdiff*Ctex, A=Adiff */
{ (MBX1_TSPPL3_CS1SELTEXTURE |
MBX1_TSPPL3_CS2SELDIFFUSE |
MBX1_TSPPL3_CS3SELONE | MBX1_TSPPL3_INVCS3 |
MBX1_TSPPL3_CS4SELDIFFUSE |
MBX1_TSPPL3_AS1SELONE |
MBX1_TSPPL3_AS2SELDIFFUSEALPHA |
MBX1_TSPPL3_AS3SELONE | MBX1_TSPPL3_INVAS3 |
MBX1_TSPPL3_AS4SELDIFFUSEALPHA)
,
/* GL_RGB : GL_DECAL - C=Ctex, A=Adiff */
(MBX1_TSPPL3_CS1SELONE |
MBX1_TSPPL3_CS2SELTEXTURE |
MBX1_TSPPL3_CS3SELONE | MBX1_TSPPL3_INVCS3 |
MBX1_TSPPL3_CS4SELDIFFUSE |
MBX1_TSPPL3_AS1SELONE |
MBX1_TSPPL3_AS2SELDIFFUSEALPHA |
MBX1_TSPPL3_AS3SELONE | MBX1_TSPPL3_INVAS3 |
MBX1_TSPPL3_AS4SELDIFFUSEALPHA)
,
/* GL_RGB : GL_BLEND - C=(1-Ctex)*Cdiff + Ctex*Cfactor, A=Adiff */
(MBX1_TSPPL3_CS1SELTEXTURE | MBX1_TSPPL3_INVCS1 |
MBX1_TSPPL3_CS2SELDIFFUSE |
MBX1_TSPPL3_CS3SELTEXTURE |
MBX1_TSPPL3_CS4SELFACTOR |
MBX1_TSPPL3_AS1SELONE |
MBX1_TSPPL3_AS2SELDIFFUSEALPHA |
MBX1_TSPPL3_AS3SELONE | MBX1_TSPPL3_INVAS3 |
MBX1_TSPPL3_AS4SELDIFFUSEALPHA)
,
/* GL_RGB : GL_REPLACE - C=Ctex, A=Adiff */
(MBX1_TSPPL3_CS1SELONE |
MBX1_TSPPL3_CS2SELTEXTURE |
MBX1_TSPPL3_CS3SELONE | MBX1_TSPPL3_INVCS3 |
MBX1_TSPPL3_CS4SELDIFFUSE |
MBX1_TSPPL3_AS1SELONE |
MBX1_TSPPL3_AS2SELDIFFUSEALPHA |
MBX1_TSPPL3_AS3SELONE | MBX1_TSPPL3_INVAS3 |
MBX1_TSPPL3_AS4SELDIFFUSEALPHA)
,
/* GL_RGB : GL_ADD - C=Cdiff+Ctex, A=Adiff */
(MBX1_TSPPL3_CS1SELONE |
MBX1_TSPPL3_CS2SELDIFFUSE |
MBX1_TSPPL3_CS3SELONE |
MBX1_TSPPL3_CS4SELTEXTURE |
MBX1_TSPPL3_AS1SELONE |
MBX1_TSPPL3_AS2SELDIFFUSEALPHA |
MBX1_TSPPL3_AS3SELONE | MBX1_TSPPL3_INVAS3 |
MBX1_TSPPL3_AS4SELDIFFUSEALPHA)
}
,
/* GL_RGBA : GL_MODULATE - C=Cdiff*Ctex, A=Adiff*Atex */
{ (MBX1_TSPPL3_CS1SELTEXTURE |
MBX1_TSPPL3_CS2SELDIFFUSE |
MBX1_TSPPL3_CS3SELONE | MBX1_TSPPL3_INVCS3 |
MBX1_TSPPL3_CS4SELDIFFUSE |
MBX1_TSPPL3_AS1SELTEXTUREALPHA |
MBX1_TSPPL3_AS2SELDIFFUSEALPHA |
MBX1_TSPPL3_AS3SELONE | MBX1_TSPPL3_INVAS3 |
MBX1_TSPPL3_AS4SELDIFFUSEALPHA)
,
/* GL_RGBA : GL_DECAL - C=Cdiff*(1-Atex) + Ctex*Atex, A=Adiff */
(MBX1_TSPPL3_CS1SELTEXTURE |
MBX1_TSPPL3_CS2SELTEXTUREALPHA |
MBX1_TSPPL3_CS3SELDIFFUSE |
MBX1_TSPPL3_CS4SELTEXTUREALPHA | MBX1_TSPPL3_INVCS4 |
MBX1_TSPPL3_AS1SELONE |
MBX1_TSPPL3_AS2SELDIFFUSEALPHA |
MBX1_TSPPL3_AS3SELONE | MBX1_TSPPL3_INVAS3 |
MBX1_TSPPL3_AS4SELDIFFUSEALPHA)
,
/* GL_RGBA : GL_BLEND - C=(1-Ctex)*Cdiff + Ctex*Cfactor, A=Adiff*Atex */
(MBX1_TSPPL3_CS1SELTEXTURE | MBX1_TSPPL3_INVCS1 |
MBX1_TSPPL3_CS2SELDIFFUSE |
MBX1_TSPPL3_CS3SELTEXTURE |
MBX1_TSPPL3_CS4SELFACTOR |
MBX1_TSPPL3_AS1SELTEXTUREALPHA |
MBX1_TSPPL3_AS2SELDIFFUSEALPHA |
MBX1_TSPPL3_AS3SELONE | MBX1_TSPPL3_INVAS3 |
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -