+ int glshaderversion; // this is at least 150 (GL 3.2)
+ qboolean amd_texture_texture4;
+ qboolean arb_texture_gather;
+ qboolean ext_texture_compression_s3tc;
+ qboolean ext_texture_filter_anisotropic;
+ qboolean ext_texture_srgb;
+ qboolean arb_debug_output;
+}
+viddef_support_t;
+
+typedef struct viddef_mode_s
+{
+ int width;
+ int height;
+ int bitsperpixel;
+ qboolean fullscreen;
+ float refreshrate;
+ qboolean userefreshrate;
+ qboolean stereobuffer;
+ int samples;
+}
+viddef_mode_t;
+
+typedef struct viddef_s
+{
+ // these are set by VID_Mode
+ viddef_mode_t mode;
+ // used in many locations in the renderer
+ int width;
+ int height;
+ int bitsperpixel;
+ qboolean fullscreen;
+ float refreshrate;
+ qboolean userefreshrate;
+ qboolean stereobuffer;
+ int samples;
+ qboolean stencil;
+ qboolean sRGB2D; // whether 2D rendering is sRGB corrected (based on sRGBcapable2D)
+ qboolean sRGB3D; // whether 3D rendering is sRGB corrected (based on sRGBcapable3D)
+ qboolean sRGBcapable2D; // whether 2D rendering can be sRGB corrected (renderpath)
+ qboolean sRGBcapable3D; // whether 3D rendering can be sRGB corrected (renderpath)
+
+ renderpath_t renderpath;
+ qboolean allowalphatocoverage; // indicates the GL_AlphaToCoverage function works on this renderpath and framebuffer
+
+ unsigned int maxtexturesize_2d;
+ unsigned int maxtexturesize_3d;
+ unsigned int maxtexturesize_cubemap;
+ unsigned int max_anisotropy;
+ unsigned int maxdrawbuffers;
+
+ viddef_support_t support;
+
+ int forcetextype; // always use GL_BGRA for D3D, always use GL_RGBA for GLES, etc