X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=vid.h;h=ff691aac3014552a750ab3adc02807aabccdc30f;hb=c5bf60e3d929f531d53934bbca772d03cf716a0a;hp=343e8f1815f71a92c3f3301e7d3c5fe104bdacba;hpb=5896a10952478d0f0f805aca72f1bb268ace7d81;p=xonotic%2Fdarkplaces.git diff --git a/vid.h b/vid.h index 343e8f18..ff691aac 100644 --- a/vid.h +++ b/vid.h @@ -33,23 +33,23 @@ typedef enum renderpath_e RENDERPATH_GL11, RENDERPATH_GL13, RENDERPATH_GL20, - RENDERPATH_CGGL, RENDERPATH_D3D9, RENDERPATH_D3D10, - RENDERPATH_D3D11 + RENDERPATH_D3D11, + RENDERPATH_SOFT, + RENDERPATH_GLES2 } renderpath_t; typedef struct viddef_support_s { + qboolean gl20shaders; + qboolean gl20shaders130; qboolean amd_texture_texture4; qboolean arb_depth_texture; qboolean arb_draw_buffers; - qboolean arb_fragment_shader; qboolean arb_multitexture; qboolean arb_occlusion_query; - qboolean arb_shader_objects; - qboolean arb_shading_language_100; qboolean arb_shadow; qboolean arb_texture_compression; qboolean arb_texture_cube_map; @@ -57,7 +57,6 @@ typedef struct viddef_support_s qboolean arb_texture_gather; qboolean arb_texture_non_power_of_two; qboolean arb_vertex_buffer_object; - qboolean arb_vertex_shader; qboolean ati_separate_stencil; qboolean ext_blend_minmax; qboolean ext_blend_subtract; @@ -68,6 +67,7 @@ typedef struct viddef_support_s qboolean ext_texture_compression_s3tc; qboolean ext_texture_edge_clamp; qboolean ext_texture_filter_anisotropic; + qboolean ext_texture_srgb; } viddef_support_t; @@ -99,10 +99,9 @@ typedef struct viddef_s int samples; qboolean stencil; - void *cgcontext; - renderpath_t renderpath; qboolean forcevbo; // some renderpaths can not operate without it + qboolean useinterleavedarrays; // required by some renderpaths unsigned int texunits; unsigned int teximageunits; @@ -117,6 +116,15 @@ typedef struct viddef_s 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; + + int forcetextype; // always use GL_BGRA for D3D, always use GL_RGBA for GLES, etc } viddef_t; // global video state @@ -130,6 +138,10 @@ extern cvar_t vid_hardwaregammasupported; extern qboolean vid_usinghwgamma; extern qboolean vid_supportrefreshrate; +extern cvar_t vid_soft; +extern cvar_t vid_soft_threads; +extern cvar_t vid_soft_interlace; + extern cvar_t vid_fullscreen; extern cvar_t vid_width; extern cvar_t vid_height; @@ -140,6 +152,7 @@ extern cvar_t vid_userefreshrate; extern cvar_t vid_vsync; extern cvar_t vid_mouse; extern cvar_t vid_grabkeyboard; +extern cvar_t vid_touchscreen; extern cvar_t vid_stick_mouse; extern cvar_t vid_resizable; extern cvar_t vid_minwidth; @@ -240,5 +253,6 @@ typedef struct vid_mode_t; size_t VID_ListModes(vid_mode_t *modes, size_t maxcount); size_t VID_SortModes(vid_mode_t *modes, size_t count, qboolean usebpp, qboolean userefreshrate, qboolean useaspect); +void VID_Soft_SharedSetup(void); #endif