windows-nt/Source/XPSP1/NT/multimedia/opengl/gls/inc/glslib.h

197 lines
6.8 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
#if !defined(__glslib_h_)
#define __glslib_h_
/*
** Copyright 1995-2095, 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.
*/
/******************************************************************************
Constants
******************************************************************************/
#define __GLS_BOOLEAN 0x0001
#define __GLS_MAX_ALIGN_BYTES 8
#define __GLS_MAX_CALL_NESTING 64
#define __GLS_MAX_CAPTURE_NESTING 16
#define __GLS_MAX_OUT_ARGS 4
#define __GLS_VERSION_MAJOR 1
#define __GLS_VERSION_MINOR 0
#define __GLS_COMMAND_ALIGN_EVEN32_BIT 0x80000000
#define __GLS_COMMAND_ALIGN_ODD32_BIT 0x40000000
#define __GLS_COMMAND_0_PARAMS_BIT 0x20000000
#define __GLS_COMMAND_ATTRIB_MASK 0x0000FFFF
/******************************************************************************
Extensions
******************************************************************************/
// DrewB
#ifndef __GLS_PLATFORM_WIN32
#define __GL_EXT_abgr 1
#define __GL_EXT_blend_color 1
#define __GL_EXT_blend_logic_op 1
#define __GL_EXT_blend_minmax 1
#define __GL_EXT_blend_subtract 1
#define __GL_EXT_cmyka 1
#define __GL_EXT_convolution 1
#define __GL_EXT_copy_texture 1
#define __GL_EXT_histogram 1
#define __GL_EXT_packed_pixels 1
#define __GL_EXT_polygon_offset 1
#define __GL_EXT_rescale_normal 1
#define __GL_EXT_subtexture 1
#define __GL_EXT_texture 1
#define __GL_EXT_texture_object 1
#define __GL_EXT_texture3D 1
#define __GL_EXT_vertex_array 1
#else
#define __GL_EXT_paletted_texture 1
#define __GL_EXT_bgra 1
#define __GL_WIN_draw_range_elements 1
#endif
#if __GLS_PLATFORM_IRIX
#define __GL_SGI_color_matrix 1
#define __GL_SGI_color_table 1
#define __GL_SGI_texture_color_table 1
#define __GL_SGIS_component_select 1
#define __GL_SGIS_detail_texture 1
#define __GL_SGIS_multisample 1
#define __GL_SGIS_sharpen_texture 1
#define __GL_SGIS_texture_border_clamp 1
#define __GL_SGIS_texture4D 1
#define __GL_SGIX_interlace 1
#define __GL_SGIX_multisample 1
#define __GL_SGIX_pixel_texture 1
#define __GL_SGIX_pixel_tiles 1
#define __GL_SGIX_texture_multi_buffer 1
#if __GLS_PLATFORM_IRIX_FUTURE
#define __GL_SGIS_texture_edge_clamp 1
#define __GL_SGIS_texture_filter4 0
#define __GL_SGIS_texture_lod 1
#define __GL_SGIX_multipass 0
#define __GL_SGIX_sprite 0
#endif /* __GLS_PLATFORM_IRIX_FUTURE */
#endif /* __GLS_PLATFORM_IRIX */
/******************************************************************************
Macros
******************************************************************************/
#define __GL_ENUM_OFFSET(inEnum) (GLint)(inEnum % __GL_ENUMS_PER_PAGE)
#define __GL_ENUM_PAGE(inEnum) (GLint)(inEnum / __GL_ENUMS_PER_PAGE)
#define __GL_ENUM(inPage, inOffset) ( \
(inPage) * __GL_ENUMS_PER_PAGE + (inOffset) \
)
#define __GLS_ENUM_OFFSET(inEnum) (GLint)(inEnum % __GLS_ENUMS_PER_PAGE)
#define __GLS_ENUM_PAGE(inEnum) (GLint)(inEnum / __GLS_ENUMS_PER_PAGE)
#define __GLS_ENUM(inPage, inOffset) ( \
(inPage) * __GLS_ENUMS_PER_PAGE + (inOffset) \
)
#define __GLS_FORWARD
/******************************************************************************
Includes
******************************************************************************/
#include <glmf.h>
#include "glsint.h"
#include "glsutil.h"
#include "encoding.h"
#include "opcode.h"
#include "pixel.h"
#include "read.h"
#include "parser.h"
#include "ctx.h"
#include "platform.h"
#include "write.h"
#ifdef __GLS_PLATFORM_WIN32
// DrewB
#include "glssize.h"
#endif
/******************************************************************************
Global data
******************************************************************************/
extern const GLSenum __glsAllAPIs[__GLS_API_COUNT + 1];
extern const GLubyte *const __glAttribMaskString[__GL_ATTRIB_MASK_COUNT];
extern const GLbitfield __glAttribMaskVal[__GL_ATTRIB_MASK_COUNT];
extern __GLSdict *__glsContextDict;
extern __GLScontextList __glsContextList;
extern const GLubyte *const *const __glEnumString[__GL_ENUM_PAGE_COUNT];
extern const GLint __glEnumStringCount[__GL_ENUM_PAGE_COUNT];
extern const GLSfunc __glsDispatchCapture[__GLS_OPCODE_COUNT];
extern __GLSdecodeBinFunc __glsDispatchDecode_bin_default[__GLS_OPCODE_COUNT];
extern const __GLSdecodeBinFunc __glsDispatchDecode_bin_swap[
__GLS_OPCODE_COUNT
];
extern const __GLSdecodeTextFunc __glsDispatchDecode_text[__GLS_OPCODE_COUNT];
extern GLSfunc __glsDispatchExec[__GLS_OPCODE_COUNT];
extern const GLubyte *const *const __glsEnumString[__GLS_ENUM_PAGE_COUNT];
extern const GLint __glsEnumStringCount[__GLS_ENUM_PAGE_COUNT];
extern const GLubyte *const __glsExtensions;
extern const GLubyte *const __glsImageFlagsString[__GLS_IMAGE_FLAGS_COUNT];
extern const GLbitfield __glsImageFlagsVal[__GLS_IMAGE_FLAGS_COUNT];
extern const GLbitfield __glsOpcodeAttrib[__GLS_OPCODE_COUNT];
extern const GLubyte *const __glsOpcodeString[__GLS_OPCODE_COUNT];
extern const GLSopcode __glsOpcodesGL[];
extern const GLSopcode __glsOpcodesGLS[];
extern const GLint __glsOpcodesGLCount;
extern const GLint __glsOpcodesGLSCount;
extern __GLSparser *__glsParser;
#if __GLS_MAPPED_OPCODE_PAGE_COUNT
extern const GLint __glsOpPageMap[__GLS_MAPPED_OPCODE_PAGE_COUNT];
#endif /* __GLS_MAPPED_OPCODE_PAGE_COUNT */
/******************************************************************************
Global functions
******************************************************************************/
#define __GLS_RAISE_ERROR(inError) if (!__GLS_ERROR) __GLS_PUT_ERROR(inError)
#ifndef __GLS_PLATFORM_WIN32
// DrewB
extern void __glsCallError(GLSopcode inOpcode, GLSenum inError);
#define __GLS_CALL_ERROR(ctx, inOpcode, inError) \
__glsCallError(inOpcode, inError)
extern void __glsCallUnsupportedCommand(void);
#define __GLS_CALL_UNSUPPORTED_COMMAND(ctx) \
__glsCallUnsupportedCommand()
#else
extern void __glsCallError(__GLScontext *ctx,
GLSopcode inOpcode, GLSenum inError);
#define __GLS_CALL_ERROR(ctx, inOpcode, inError) \
__glsCallError(ctx, inOpcode, inError)
extern void __glsCallUnsupportedCommand(__GLScontext *ctx);
#define __GLS_CALL_UNSUPPORTED_COMMAND(ctx) \
__glsCallUnsupportedCommand(ctx)
#endif
#endif /* __glslib_h_ */