extern int cl_available;
-#define MAX_TEXTUREUNITS 16
+#define MAX_TEXTUREUNITS 32
typedef enum renderpath_e
{
- RENDERPATH_GL20,
+ RENDERPATH_GL32,
RENDERPATH_GLES2
}
renderpath_t;
typedef struct viddef_support_s
{
- qboolean gl20shaders;
- qboolean gl20shaders130; // indicates glBindFragDataLocation is available
- int glshaderversion; // typical values: 100 110 120 130 140 ...
+ int glshaderversion; // this is at least 150 (GL 3.2)
qboolean amd_texture_texture4;
- qboolean arb_depth_texture;
- qboolean arb_draw_buffers;
- qboolean arb_framebuffer_object;
- qboolean arb_multitexture;
- qboolean arb_occlusion_query;
- qboolean arb_query_buffer_object;
- qboolean arb_shadow;
- qboolean arb_texture_compression;
- qboolean arb_texture_cube_map;
- qboolean arb_texture_env_combine;
qboolean arb_texture_gather;
- qboolean arb_texture_non_power_of_two;
- qboolean arb_vertex_buffer_object;
- qboolean arb_uniform_buffer_object;
- qboolean ext_blend_minmax;
- qboolean ext_blend_subtract;
- qboolean ext_blend_func_separate;
- qboolean ext_draw_range_elements;
- qboolean ext_framebuffer_object;
- qboolean ext_packed_depth_stencil;
- qboolean ext_texture_3d;
qboolean ext_texture_compression_s3tc;
- qboolean ext_texture_edge_clamp;
qboolean ext_texture_filter_anisotropic;
qboolean ext_texture_srgb;
- qboolean arb_texture_float;
- qboolean arb_half_float_pixel;
- qboolean arb_half_float_vertex;
- qboolean arb_multisample;
+ qboolean arb_debug_output;
}
viddef_support_t;
qboolean sRGBcapable3D; // whether 3D rendering can be sRGB corrected (renderpath)
renderpath_t renderpath;
- qboolean forcevbo; // some renderpaths can not operate without it
- qboolean useinterleavedarrays; // required by some renderpaths
qboolean allowalphatocoverage; // indicates the GL_AlphaToCoverage function works on this renderpath and framebuffer
- unsigned int texunits;
- unsigned int teximageunits;
- unsigned int texarrayunits;
- unsigned int drawrangeelements_maxvertices;
- unsigned int drawrangeelements_maxindices;
-
unsigned int maxtexturesize_2d;
unsigned int maxtexturesize_3d;
unsigned int maxtexturesize_cubemap;
extern const char *gl_extensions;
// WGL, GLX, or AGL
extern const char *gl_platform;
-// another extensions list, containing platform-specific extensions that are
-// not in the main list
-extern const char *gl_platformextensions;
// name of driver library (opengl32.dll, libGL.so.1, or whatever)
extern char gl_driver[256];
void *GL_GetProcAddress(const char *name);
-qboolean GL_CheckExtension(const char *minglver_or_ext, const dllfunction_t *funcs, const char *disableparm, int silent);
+qboolean GL_CheckExtension(const char *name, const char *disableparm, int silent);
+qboolean GL_ExtensionSupported(const char *name);
void VID_Shared_Init(void);
-void GL_Init (void);
+void GL_Setup(void);
void VID_ClearExtensions(void);
-void VID_CheckExtensions(void);
void VID_Init (void);
// Called at startup
void VID_SetMouse (qboolean fullscreengrab, qboolean relative, qboolean hidecursor);
void VID_Finish (void);
-void VID_Restart_f(void);
+void VID_Restart_f(cmd_state_t *cmd);
void VID_Start(void);
void VID_Stop(void);