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

📄 tnlstate.h

📁 Lido PXA270平台开发板的最新BSP,包括源代码
💻 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 + -