mirror of
https://github.com/id-Software/Wolf3D-iOS.git
synced 2024-11-10 07:22:02 +00:00
255 lines
5.7 KiB
C
255 lines
5.7 KiB
C
/*
|
|
|
|
Copyright (C) 1997-2001 Id Software, Inc.
|
|
|
|
This program is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU General Public License
|
|
as published by the Free Software Foundation; either version 2
|
|
of the License, or (at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
|
|
*/
|
|
|
|
#ifndef __OPENGL_LOCAL_H__
|
|
#define __OPENGL_LOCAL_H__
|
|
|
|
extern int glMaxTexSize; // maximum texture size
|
|
|
|
|
|
//===================================================================
|
|
|
|
|
|
extern void GL_SetDefaultState( void );
|
|
|
|
extern float gldepthmin, gldepthmax;
|
|
|
|
|
|
|
|
//====================================================
|
|
|
|
|
|
|
|
extern int gl_filter_min, gl_filter_max;
|
|
|
|
//
|
|
// view origin
|
|
//
|
|
extern vec3_t vup;
|
|
extern vec3_t vpn;
|
|
extern vec3_t vright;
|
|
extern vec3_t r_origin;
|
|
|
|
//
|
|
// screen size info
|
|
//
|
|
//extern refdef_t r_newrefdef;
|
|
extern int r_viewcluster, r_viewcluster2, r_oldviewcluster, r_oldviewcluster2;
|
|
|
|
extern cvar_t *r_norefresh;
|
|
extern cvar_t *r_lefthand;
|
|
extern cvar_t *r_speeds;
|
|
extern cvar_t *r_novis;
|
|
extern cvar_t *r_nocull;
|
|
|
|
|
|
extern cvar_t *gl_vertex_arrays;
|
|
|
|
extern cvar_t *gl_ext_swapinterval;
|
|
extern cvar_t *gl_ext_palettedtexture;
|
|
extern cvar_t *gl_ext_multitexture;
|
|
extern cvar_t *gl_ext_pointparameters;
|
|
extern cvar_t *gl_ext_compiled_vertex_array;
|
|
|
|
|
|
extern cvar_t *gl_nosubimage;
|
|
extern cvar_t *gl_bitdepth;
|
|
extern cvar_t *gl_mode;
|
|
extern cvar_t *gl_lightmap;
|
|
extern cvar_t *gl_shadows;
|
|
extern cvar_t *gl_dynamic;
|
|
extern cvar_t *gl_nobind;
|
|
extern cvar_t *gl_round_down;
|
|
extern cvar_t *gl_picmip;
|
|
extern cvar_t *gl_skymip;
|
|
extern cvar_t *gl_showtris;
|
|
extern cvar_t *gl_finish;
|
|
extern cvar_t *gl_ztrick;
|
|
extern cvar_t *gl_clear;
|
|
extern cvar_t *gl_cull;
|
|
extern cvar_t *gl_poly;
|
|
extern cvar_t *gl_texsort;
|
|
extern cvar_t *gl_polyblend;
|
|
extern cvar_t *gl_flashblend;
|
|
extern cvar_t *gl_lightmaptype;
|
|
extern cvar_t *gl_modulate;
|
|
extern cvar_t *gl_playermip;
|
|
extern cvar_t *gl_drawbuffer;
|
|
extern cvar_t *gl_driver;
|
|
extern cvar_t *gl_swapinterval;
|
|
extern cvar_t *gl_texturemode;
|
|
extern cvar_t *gl_saturatelighting;
|
|
|
|
extern cvar_t *r_fullscreen;
|
|
extern cvar_t *vid_gamma;
|
|
|
|
extern cvar_t *intensity;
|
|
|
|
extern int gl_lightmap_format;
|
|
extern int gl_solid_format;
|
|
extern int gl_alpha_format;
|
|
extern int gl_tex_alpha_format;
|
|
|
|
|
|
|
|
|
|
extern void R_Bind( int texnum );
|
|
extern void R_MBind( GLenum target, int texnum );
|
|
extern void R_TexEnv( GLenum value );
|
|
extern void R_EnableMultitexture( _boolean enable );
|
|
extern void R_SelectTexture( GLenum );
|
|
|
|
|
|
//====================================================================
|
|
|
|
|
|
extern int registration_sequence;
|
|
|
|
|
|
|
|
typedef struct
|
|
{
|
|
const char *renderer_string;
|
|
const char *vendor_string;
|
|
const char *version_string;
|
|
const char *extensions_string;
|
|
_boolean Version_1_2;
|
|
bool framebuffer_discard;
|
|
|
|
} glconfig_t;
|
|
|
|
typedef struct
|
|
{
|
|
float inverse_intensity;
|
|
_boolean fullscreen;
|
|
|
|
int prev_mode;
|
|
|
|
int lightmap_textures;
|
|
|
|
int currenttextures[2];
|
|
int currenttmu;
|
|
|
|
|
|
} glstate_t;
|
|
|
|
extern glconfig_t gl_config;
|
|
extern glstate_t gl_state;
|
|
|
|
|
|
//////////////////////////////////////////////////////
|
|
|
|
|
|
typedef struct
|
|
{
|
|
_boolean ARBMultiTexture;
|
|
int nTextureStages; // Number of texture stages supported
|
|
_boolean EXTTextureEnvCombine;
|
|
|
|
_boolean EXTTextureFilterAnisotropic;
|
|
float nMaxAnisotropy;
|
|
// NB: Fence extension is not here, because NVVertexArrayRange is false if GL_NV_fence is not here.
|
|
_boolean NVVertexArrayRange;
|
|
int NVVertexArrayRangeMaxVertex;
|
|
_boolean EXTTextureCompressionS3TC;
|
|
_boolean EXTVertexWeighting;
|
|
_boolean EXTSeparateSpecularColor;
|
|
_boolean NVTextureEnvCombine4;
|
|
_boolean ARBTextureCubeMap;
|
|
_boolean NVVertexProgram;
|
|
_boolean EXTVertexShader;
|
|
_boolean NVTextureShader;
|
|
// true if NVVertexProgram and if we know that VP is emulated
|
|
_boolean NVVertexProgramEmulated;
|
|
_boolean EXTSecondaryColor;
|
|
_boolean EXTBlendColor;
|
|
// NVVertexArrayRange2.
|
|
_boolean NVVertexArrayRange2;
|
|
// equal to GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV if possible, or GL_VERTEX_ARRAY_RANGE_NV
|
|
int NVStateVARWithoutFlush;
|
|
|
|
/* WGL ARB Extensions */
|
|
_boolean WGLARBPBuffer;
|
|
_boolean WGLARBPixelFormat;
|
|
_boolean WGLEXTSwapControl;
|
|
|
|
/* ATI Extensions */
|
|
_boolean ATIVertexArrayObject;
|
|
_boolean ATIMapObjectBuffer;
|
|
_boolean ATITextureEnvCombine3;
|
|
_boolean ATIEnvMapBumpMap;
|
|
_boolean ATIFragmentShader;
|
|
_boolean ATIXTextureEnvRoute;
|
|
|
|
/* ARB Extensions */
|
|
_boolean ARBTextureCompression;
|
|
_boolean ARBFragmentProgram;
|
|
_boolean ARBVertexBufferObject;
|
|
_boolean ARBVertexProgram;
|
|
|
|
/* Disable Hardware feature */
|
|
_boolean DisableHardwareVertexProgram;
|
|
_boolean DisableHardwareTextureShader;
|
|
|
|
} GL_Extensions;
|
|
|
|
extern GL_Extensions gl_ext;
|
|
|
|
|
|
extern void GL_ConfigExtensions( const char *glext );
|
|
|
|
extern void MYgluPerspective( GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar );
|
|
|
|
|
|
extern void PrintGLError( W32 err, const char *from );
|
|
|
|
|
|
|
|
|
|
/*
|
|
====================================================================
|
|
|
|
IMPLEMENTATION SPECIFIC FUNCTIONS
|
|
|
|
====================================================================
|
|
*/
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
void GLimp_BeginFrame();
|
|
_boolean GLimp_Init( void *hinstance, void *hWnd );
|
|
void GLimp_Shutdown( void );
|
|
int GLimp_SetMode( int *pwidth, int *pheight, int mode, _boolean fullscreen );
|
|
void GLimp_AppActivate( _boolean active );
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* __OPENGL_LOCAL_H__ */
|