📄 tnlstate.h
字号:
/* ************************************************************************* *\
** ************************************************************************* **
**
** INTEL Corporation Proprietary Information
**
** This listing is supplied under the terms of a license
** agreement with INTEL Corporation and may not be copied
** nor disclosed except in accordance with the terms of
** that agreement.
**
** Copyright (c) 2003 Intel Corporation.
** All Rights Reserved.
**
** ************************************************************************* **
\* ************************************************************************* */
/**************************************************************************
* Name : tnlstate.h
* Author : BCB
* Created : 05/11/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
**************************************************************************/
#ifndef _TNLSTATE_
#define _TNLSTATE_
#include "xform.h"
#define VARRAY_VERT_ENABLE 0x00000001
#define VARRAY_NORMAL_ENABLE 0x00000002
#define VARRAY_COLOR_ENABLE 0x00000004
#define VARRAY_SECONDARY_COLOR_ENABLE 0x00000008
#define VARRAY_TEXCOORD0_ENABLE 0x00000010
#define VARRAY_TEXCOORD1_ENABLE 0x00000020
typedef struct
{
CTL_ARRAY_FORMAT ctlFormat;
IMG_UINT8 *pui8Pointer;
IMG_UINT32 ui32Stride;
IMG_UINT32 ui32Size;
} GLESvertArrayPointerState;
typedef struct
{
GLESvertArrayPointerState sVPState;
GLESvertArrayPointerState sNPState;
GLESvertArrayPointerState sCPState;
GLESvertArrayPointerState sSCPState;
GLESvertArrayPointerState asTPState[GLES_MAX_TEXTURE_UNITS];
IMG_UINT32 ui32VertexNeeds;
IMG_UINT32 ui32ArrayEnables;
} GLESVertArrayMachine;
struct GLESprocsRec
{
/* Matrix stack operations */
IMG_VOID (*pfnPushMatrix)(GLESContext *gc);
IMG_VOID (*pfnPopMatrix)(GLESContext *gc);
MATRIX4* (*pfnGetCurrentMatrix)(GLESContext *gc, U32 bMakeDirty);
};
typedef struct GLEScurrentStateRec
{
CTLCOLOR4 Color;
CTLCOLOR4 SecondaryColor;
CTLVECTOR3 Normal;
CTLVECTOR4 aTextureCoords[GLES_MAX_TEXTURE_UNITS];
} GLEScurrentState;
typedef struct GLESmaterialStateRec
{
CTL_MATERIAL ctlMaterial;
} GLESmaterialState;
typedef struct GLESlightModelStateRec
{
// FIXME seperate Specular
CTLCOLOR4 Ambient;
CTLBOOL bTwoSided;
} GLESlightModelState;
#define GLES_LIGHT_ATTENUATION_CONSTANT 0
#define GLES_LIGHT_ATTENUATION_LINEAR 1
#define GLES_LIGHT_ATTENUATION_QUADRATIC 2
#define GLES_LIGHT_POINT (0x00000001)
#define GLES_LIGHT_SPOT (0x00000002)
#define GLES_LIGHT_TYPE_MASK (0x00000003)
#define GLES_LIGHT_SPECULAR_ENABLE HXF_SPECULAR_ENABLE //
#define GLES_LIGHT_LM_COLOR_CONSTANT HXF_LM_COLOR_CONSTANT //
#define GLES_LIGHT_ATTENUATION_DIRTY (0x00000100)
typedef struct
{
HUINT32 Flags;
HUINT32 MVPositionChangeCount; // change count of the last MV Matrix used to compute the light position in model space
HUINT32 MVDirectionChangeCount; // change count of the last MV Matrix used to compute the light direction in model space
CTL_LIGHT ctlLight;
} GLESlightSourceState;
//CT_ASSERT( 0 == ( sizeof( GLESlightSourceState ) & 7 ));
typedef struct
{
GLESlightModelState sModel;
GLESmaterialState sMaterial;
GLESlightSourceState sLights[GLES_MAX_LIGHTS];
} GLESlightState;
// Stub to allow Slaveport.c to compile
typedef struct _GLESvertex
{
GLEScoord sObj;
GLEScoord sNormal;
GLEScoord asTexture[GLES_MAX_TEXTURE_UNITS];
GLEScoord sClip;
GLEScolor sColor;
GLEScoord sWindow;
GLEScoord sEye;
GLEScoord ui32Flags;
IMG_FLOAT fFog;
} GLESvertex;
#endif /* _TNLSTATE_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -