123 lines
5.3 KiB
C
123 lines
5.3 KiB
C
#ifndef __gldlistopt_h_
|
|
#define __gldlistopt_h_
|
|
|
|
/*
|
|
** Copyright 1991, 1922, Silicon Graphics, Inc.
|
|
** All Rights Reserved.
|
|
**
|
|
** This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
|
|
** the contents of this file may not be disclosed to third parties, copied or
|
|
** duplicated in any form, in whole or in part, without the prior written
|
|
** permission of Silicon Graphics, Inc.
|
|
**
|
|
** RESTRICTED RIGHTS LEGEND:
|
|
** Use, duplication or disclosure by the Government is subject to restrictions
|
|
** as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
|
|
** and Computer Software clause at DFARS 252.227-7013, and/or in similar or
|
|
** successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
|
|
** rights reserved under the Copyright Laws of the United States.
|
|
**
|
|
** Display list state descriptions.
|
|
**
|
|
*/
|
|
|
|
#ifndef NT
|
|
|
|
/*
|
|
** Generic optimizer. This optimizer simply uses all of the generic
|
|
** optimizations.
|
|
*/
|
|
void FASTCALL __glDlistOptimizer(__GLcontext *gc, __GLcompiledDlist *cdlist);
|
|
|
|
/*
|
|
** Optimizer for multiple consecutive material changes. This routine
|
|
** combines a bunch of material changes into one quick material change.
|
|
*/
|
|
void FASTCALL __glDlistOptimizeMaterial(__GLcontext *gc, __GLcompiledDlist *cdlist);
|
|
|
|
|
|
/*
|
|
** Generic flags used for optimization (during gllc routines).
|
|
*/
|
|
#define __GL_DLFLAG_HAS_VERTEX 0x00000001
|
|
#define __GL_DLFLAG_HAS_NORMAL 0x00000002
|
|
#define __GL_DLFLAG_HAS_COLOR 0x00000004
|
|
#define __GL_DLFLAG_HAS_TEXCOORDS 0x00000008
|
|
#define __GL_DLFLAG_HAS_INDEX 0x00000010
|
|
#define __GL_DLFLAG_HAS_RASTERPOS 0x00000020
|
|
#define __GL_DLFLAG_HAS_RECT 0x00000040
|
|
#define __GL_DLFLAG_HAS_BEGIN 0x00000080
|
|
#define __GL_DLFLAG_HAS_MATERIAL 0x00000100
|
|
|
|
/*
|
|
** Generic opcodes created during generic dlist optimizations.
|
|
*/
|
|
#define __GL_GENERIC_DLIST_OPCODE 1000
|
|
#define __glop_Begin_LineLoop 1000
|
|
#define __glop_Begin_LineStrip 1001
|
|
#define __glop_Begin_Lines 1002
|
|
#define __glop_Begin_Points 1003
|
|
#define __glop_Begin_Polygon 1004
|
|
#define __glop_Begin_TriangleStrip 1005
|
|
#define __glop_Begin_TriangleFan 1006
|
|
#define __glop_Begin_Triangles 1007
|
|
#define __glop_Begin_QuadStrip 1008
|
|
#define __glop_Begin_Quads 1009
|
|
#define __glop_InvalidValue 1010
|
|
#define __glop_InvalidEnum 1011
|
|
#define __glop_InvalidOperation 1012
|
|
#define __glop_FastMaterial 1013
|
|
|
|
/*
|
|
** List execution functions.
|
|
*/
|
|
extern __GLlistExecFunc *__gl_GenericDlOps[];
|
|
extern const GLubyte * FASTCALL __glle_Begin_LineLoop(__GLcontext *gc, const GLubyte *);
|
|
extern const GLubyte * FASTCALL __glle_Begin_LineStrip(__GLcontext *gc, const GLubyte *);
|
|
extern const GLubyte * FASTCALL __glle_Begin_Lines(__GLcontext *gc, const GLubyte *);
|
|
extern const GLubyte * FASTCALL __glle_Begin_Points(__GLcontext *gc, const GLubyte *);
|
|
extern const GLubyte * FASTCALL __glle_Begin_Polygon(__GLcontext *gc, const GLubyte *);
|
|
extern const GLubyte * FASTCALL __glle_Begin_TriangleStrip(__GLcontext *gc, const GLubyte *);
|
|
extern const GLubyte * FASTCALL __glle_Begin_TriangleFan(__GLcontext *gc, const GLubyte *);
|
|
extern const GLubyte * FASTCALL __glle_Begin_Triangles(__GLcontext *gc, const GLubyte *);
|
|
extern const GLubyte * FASTCALL __glle_Begin_QuadStrip(__GLcontext *gc, const GLubyte *);
|
|
extern const GLubyte * FASTCALL __glle_Begin_Quads(__GLcontext *gc, const GLubyte *);
|
|
extern const GLubyte * FASTCALL __glle_FastMaterial(__GLcontext *gc, const GLubyte *);
|
|
extern void __gllc_Error(GLenum error);
|
|
#endif // !NT
|
|
|
|
extern const GLubyte * FASTCALL __glle_InvalidValue(__GLcontext *gc, const GLubyte *);
|
|
extern const GLubyte * FASTCALL __glle_InvalidEnum(__GLcontext *gc, const GLubyte *);
|
|
extern const GLubyte * FASTCALL __glle_InvalidOperation(__GLcontext *gc, const GLubyte *);
|
|
extern void __gllc_InvalidValue();
|
|
extern void __gllc_InvalidEnum();
|
|
extern void __gllc_InvalidOperation();
|
|
|
|
#ifdef NT
|
|
extern const GLubyte * FASTCALL __glle_PolyData_C3F_V3F(__GLcontext *gc, const GLubyte *PC);
|
|
extern const GLubyte * FASTCALL __glle_PolyData_N3F_V3F(__GLcontext *gc, const GLubyte *PC);
|
|
extern const GLubyte * FASTCALL __glle_PolyData_C3F_N3F_V3F(__GLcontext *gc, const GLubyte *PC);
|
|
extern const GLubyte * FASTCALL __glle_PolyData_C4F_N3F_V3F(__GLcontext *gc, const GLubyte *PC);
|
|
extern const GLubyte * FASTCALL __glle_PolyData_T2F_V3F(__GLcontext *gc, const GLubyte *PC);
|
|
extern const GLubyte * FASTCALL __glle_PolyData_T2F_C3F_V3F(__GLcontext *gc, const GLubyte *PC);
|
|
extern const GLubyte * FASTCALL __glle_PolyData_T2F_N3F_V3F(__GLcontext *gc, const GLubyte *PC);
|
|
extern const GLubyte * FASTCALL __glle_PolyData_T2F_C3F_N3F_V3F(__GLcontext *gc, const GLubyte *PC);
|
|
extern const GLubyte * FASTCALL __glle_PolyData_T2F_C4F_N3F_V3F(__GLcontext *gc, const GLubyte *PC);
|
|
extern const GLubyte * FASTCALL __glle_PolyMaterial(__GLcontext *gc, const GLubyte *PC);
|
|
extern const GLubyte * FASTCALL __glle_PolyData(__GLcontext *gc, const GLubyte *PC);
|
|
extern const GLubyte * FASTCALL __glle_Begin(__GLcontext *gc, const GLubyte *PC);
|
|
extern const GLubyte * FASTCALL __glle_End(__GLcontext *gc, const GLubyte *PC);
|
|
|
|
void APIENTRY __gllc_PolyMaterial(GLuint faceName, __GLmatChange *pdMat);
|
|
void APIENTRY __glDlistCompilePolyData(__GLcontext *gc, GLboolean bPartial);
|
|
|
|
#define DLIST_BEGIN_HAS_OTHER_COLOR 0x0001
|
|
#define DLIST_BEGIN_NO_MATCHING_END 0x0002
|
|
#define DLIST_BEGIN_HAS_CALLLIST 0x0004
|
|
#define DLIST_BEGIN_DRAWARRAYS 0x0008
|
|
#define DLIST_BEGIN_DRAWELEMENTS 0x0010
|
|
#define DLIST_BEGIN_HAS_CLAMP_COLOR 0x0020
|
|
#endif // NT
|
|
|
|
#endif /* __gldlistopt_h_ */
|