📄 tstable.h
字号:
/*****************************************************************************
Name : TSSTABLE.H
Title : Texture stage lookup table generation
C Author : Ben Bowman
Created : 27/11/2003
Copyright : 2003 by Imaginations 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 Imaginations Technologies Limited, HomePark
Industrial Estate, King's Langley, Hertfordshire,
WD4 8LZ, U.K.
Description : Tools for generating and using a lookup table for mapping
OGLES texture/alpha operations and arguments to HW control words.
Version : $Revision: 1.5 $
Modifications :
$Log: tstable.h $
*****************************************************************************/
/*
Color and Alpha Op layer-control tables.
*/
extern IMG_UINT32 ui32ColorOpLCtlTable[];
extern IMG_UINT32 ui32AlphaOpLCtlTable[];
/*
Texture stage Color-op codes
*/
/* Operation defines */
/* Interpolate must come first as it is the only 3 operand operation */
#define GLES_COMBINEOP_INTERPOLATE 0x00000000
#define GLES_COMBINEOP_REPLACE 0x00000001
#define GLES_COMBINEOP_MODULATE 0x00000002
#define GLES_COMBINEOP_ADD 0x00000003
#define GLES_COMBINEOP_ADD_SIGNED 0x00000004
#define GLES_COMBINEOP_SUBTRACT 0x00000005
#define GLES_COMBINEOP_DOT3_RGB 0x00000006
#define GLES_COMBINEOP_DOT3_RGBA 0x00000007
#define GLES_COMBINEOP_OPCLEAR 0xFFFFFFF8
#define GLES_COMBINEOP_OPSHIFT 0
/* Scale defines */
#define GLES_COMBINEOP_SCALE_ONE 0x00000000
#define GLES_COMBINEOP_SCALE_TWO 0x00000010
#define GLES_COMBINEOP_SCALE_FOUR 0x00000020
#define GLES_COMBINEOP_SCALECLEAR 0xFFFFFFCF
#define GLES_COMBINEOP_SCALESHIFT 4
/*
Number of color ops
*/
#define GLES_COLOROP2_COUNT 7
#define GLES_COLOROP3_COUNT 1
/*
Number of alpha ops
*/
#define GLES_ALPHAOP2_COUNT 5
#define GLES_ALPHAOP3_COUNT 1
/*
* Combiner sources
*/
/* Src defines */
#define GLES_COMBINESRC_PRIMARY 0x00000000
#define GLES_COMBINESRC_PREVIOUS 0x00000001
#define GLES_COMBINESRC_TEXTURE 0x00000002
#define GLES_COMBINESRC_CONSTANT 0x00000003
#define GLES_COMBINESRC_SRCCLEAR 0xFFFFFFFC
#define GLES_COMBINESRC_SRCSHIFT 0
/* Operand defines */
#define GLES_COMBINESRC_OPERANDALPHA 0x00000004
#define GLES_COMBINESRC_OPERANDONEMINUS 0x00000008
#define GLES_COMBINESRC_OPERANDCLEAR 0xFFFFFFF3
#define GLES_COMBINESRC_SRCMASK 0x00000007
/*
Number of operand arguments in table - but don't encode one-minus in the table
*/
#define GLES_COLORARG_COUNT 8
#define GLES_ALPHAARG_COUNT 4
/*
Texture stage color source codes - one for each possible HW
color source
*/
#define GLES_COLORSOURCE_DIFFUSE (GLES_COMBINESRC_PRIMARY)
#define GLES_COLORSOURCE_CURRENT (GLES_COMBINESRC_PREVIOUS)
#define GLES_COLORSOURCE_TEXTURE (GLES_COMBINESRC_TEXTURE)
#define GLES_COLORSOURCE_FACTOR (GLES_COMBINESRC_CONSTANT)
#define GLES_COLORSOURCE_DIFFUSEALPHA (GLES_COMBINESRC_PRIMARY | GLES_COMBINESRC_OPERANDALPHA)
#define GLES_COLORSOURCE_CURRENTALPHA (GLES_COMBINESRC_PREVIOUS | GLES_COMBINESRC_OPERANDALPHA)
#define GLES_COLORSOURCE_TEXTUREALPHA (GLES_COMBINESRC_TEXTURE | GLES_COMBINESRC_OPERANDALPHA)
#define GLES_COLORSOURCE_FACTORALPHA (GLES_COMBINESRC_CONSTANT | GLES_COMBINESRC_OPERANDALPHA)
#define GLES_COLORSOURCE_INVDIFFUSE (GLES_COMBINESRC_PRIMARY | GLES_COMBINESRC_OPERANDONEMINUS)
#define GLES_COLORSOURCE_INVCURRENT (GLES_COMBINESRC_PREVIOUS | GLES_COMBINESRC_OPERANDONEMINUS)
#define GLES_COLORSOURCE_INVTEXTURE (GLES_COMBINESRC_TEXTURE | GLES_COMBINESRC_OPERANDONEMINUS)
#define GLES_COLORSOURCE_INVFACTOR (GLES_COMBINESRC_CONSTANT | GLES_COMBINESRC_OPERANDONEMINUS)
#define GLES_COLORSOURCE_INVDIFFUSEALPHA (GLES_COLORSOURCE_DIFFUSEALPHA | GLES_COMBINESRC_OPERANDONEMINUS)
#define GLES_COLORSOURCE_INVCURRENTALPHA (GLES_COLORSOURCE_CURRENTALPHA | GLES_COMBINESRC_OPERANDONEMINUS)
#define GLES_COLORSOURCE_INVTEXTUREALPHA (GLES_COLORSOURCE_TEXTUREALPHA | GLES_COMBINESRC_OPERANDONEMINUS)
#define GLES_COLORSOURCE_INVFACTORALPHA (GLES_COLORSOURCE_FACTORALPHA | GLES_COMBINESRC_OPERANDONEMINUS)
/*
The following color sources are not available as SGL args.
NB: 'ANY' and 'INVANY' are used to represent an arbitrary source,
and are available for all the HW sources.
*/
#define GLES_COLORSOURCE_ONE 16
#define GLES_COLORSOURCE_ZERO 17
#define GLES_COLORSOURCE_ANY 18
#define GLES_COLORSOURCE_INVANY 19
/*
Texture stage alpha source codes - one for each possible HW
alpha source
*/
#define GLES_ALPHASOURCE_DIFFUSEALPHA (GLES_COMBINESRC_PRIMARY | GLES_COMBINESRC_OPERANDALPHA)
#define GLES_ALPHASOURCE_CURRENTALPHA (GLES_COMBINESRC_PREVIOUS | GLES_COMBINESRC_OPERANDALPHA)
#define GLES_ALPHASOURCE_TEXTUREALPHA (GLES_COMBINESRC_TEXTURE | GLES_COMBINESRC_OPERANDALPHA)
#define GLES_ALPHASOURCE_FACTORALPHA (GLES_COMBINESRC_CONSTANT | GLES_COMBINESRC_OPERANDALPHA)
#define GLES_ALPHASOURCE_INVDIFFUSEALPHA 4
#define GLES_ALPHASOURCE_INVCURRENTALPHA 5
#define GLES_ALPHASOURCE_INVTEXTUREALPHA 6
#define GLES_ALPHASOURCE_INVFACTORALPHA 7
/*
he following alpha sources are not available as SGL args
NB: 'DUALOFFSETALPHA' and 'OFFSETALPHA2' are special source codes that
map to the MBX1 AS1/3 alpha sources which set both sources in a pair
(i.e. AS1+2 or AS3+4). These are valid for AS1 or AS3 only.
'ANY' is used to represent an arbitrary source, and is available for
all the HW sources.
*/
#define GLES_ALPHASOURCE_ONE 8
#define GLES_ALPHASOURCE_ZERO 9
#define GLES_ALPHASOURCE_ANY 10
#define GLES_ALPHASOURCE_INVANY 11
#define GLES_COLORARG1OFF_SCALE 1
#define GLES_COLORARG2OFF_SCALE (GLES_COLORARG_COUNT)
#define GLES_COLORARG3OFF_SCALE (GLES_COLORARG_COUNT * GLES_COLORARG_COUNT)
#define GLES_COLOROP2OFF_SCALE (GLES_COLORARG3OFF_SCALE)
#define GLES_COLOROP3OFF_SCALE (GLES_COLORARG_COUNT * GLES_COLORARG_COUNT * GLES_COLORARG_COUNT)
#define COLOR_SWIZ_MASK 0x00000007
#define COLOR_SWIZ_SHIFT 0
#define GLES_ALPHAARG1OFF_SCALE 1
#define GLES_ALPHAARG2OFF_SCALE (GLES_ALPHAARG_COUNT)
#define GLES_ALPHAARG3OFF_SCALE (GLES_ALPHAARG_COUNT*GLES_ALPHAARG_COUNT)
#define GLES_ALPHAOP2OFF_SCALE (GLES_ALPHAARG3OFF_SCALE)
#define GLES_ALPHAOP3OFF_SCALE (GLES_ALPHAARG_COUNT * GLES_ALPHAARG_COUNT * GLES_ALPHAARG_COUNT)
#define ALPHA_SWIZ_MASK 0x70000000
#define ALPHA_SWIZ_SHIFT 28
/*****************************************************************************
End of file (TSSTABLE.H)
*****************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -