+ qboolean gl20shaders;
+ qboolean amd_texture_texture4;
+ qboolean arb_depth_texture;
+ qboolean arb_draw_buffers;
+ qboolean arb_multitexture;
+ qboolean arb_occlusion_query;
+ 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 ati_separate_stencil;
+ qboolean ext_blend_minmax;
+ qboolean ext_blend_subtract;
+ qboolean ext_draw_range_elements;
+ qboolean ext_framebuffer_object;
+ qboolean ext_stencil_two_side;
+ qboolean ext_texture_3d;
+ qboolean ext_texture_compression_s3tc;
+ qboolean ext_texture_edge_clamp;
+ qboolean ext_texture_filter_anisotropic;
+}
+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;
+
+ renderpath_t renderpath;
+ qboolean forcevbo; // some renderpaths can not operate without it
+ qboolean useinterleavedarrays; // required by some renderpaths
+
+ 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;
+ unsigned int max_anisotropy;
+ unsigned int maxdrawbuffers;
+
+ viddef_support_t support;
+
+ // in RENDERPATH_SOFT this is a 32bpp native-endian ARGB framebuffer
+ // (native-endian ARGB meaning that in little endian it is BGRA bytes,
+ // in big endian it is ARGB byte order, the format is converted during
+ // blit to the window)
+ unsigned int *softpixels;
+ unsigned int *softdepthpixels;