X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=vid.h;h=91c42f0a932558b968e7a2d63a0373327cfe0cfb;hb=ec7ee625a4be90290e99cf04d53fd5b9d45e1a88;hp=7302386a301d9e6c78d8947c30033271e430c16d;hpb=33cefdeb9044350e531ca015aafcb44dc644c178;p=xonotic%2Fdarkplaces.git diff --git a/vid.h b/vid.h index 7302386a..91c42f0a 100644 --- a/vid.h +++ b/vid.h @@ -75,6 +75,9 @@ typedef struct viddef_support_s 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; } viddef_support_t; @@ -108,8 +111,8 @@ typedef struct viddef_s 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, v_hwgamma) - qboolean sRGBcapable3D; // whether 3D rendering can be sRGB corrected (renderpath, v_hwgamma) + qboolean sRGBcapable2D; // whether 2D rendering can be sRGB corrected (renderpath) + qboolean sRGBcapable3D; // whether 3D rendering can be sRGB corrected (renderpath) renderpath_t renderpath; qboolean forcevbo; // some renderpaths can not operate without it @@ -174,8 +177,6 @@ void VID_EnableJoystick(qboolean enable); extern qboolean vid_hidden; extern qboolean vid_activewindow; -extern cvar_t vid_hardwaregammasupported; -extern qboolean vid_usinghwgamma; extern qboolean vid_supportrefreshrate; extern cvar_t vid_soft; @@ -221,7 +222,6 @@ extern cvar_t v_color_grey_b; extern cvar_t v_color_white_r; extern cvar_t v_color_white_g; extern cvar_t v_color_white_b; -extern cvar_t v_hwgamma; // brand of graphics chip extern const char *gl_vendor; @@ -263,20 +263,9 @@ qboolean VID_InitMode(viddef_mode_t *mode); // allocates and opens an appropriate OpenGL context (and its window) -// sets hardware gamma correction, returns false if the device does not -// support gamma control -// (ONLY called by VID_UpdateGamma and VID_RestoreSystemGamma) -int VID_SetGamma(unsigned short *ramps, int rampsize); -// gets hardware gamma correction, returns false if the device does not -// support gamma control -// (ONLY called by VID_UpdateGamma and VID_RestoreSystemGamma) -int VID_GetGamma(unsigned short *ramps, int rampsize); -// makes sure ramp arrays are big enough and calls VID_GetGamma/VID_SetGamma +// updates cachegamma variables and bumps vid_gammatables_serial if anything changed // (ONLY to be called from VID_Finish!) -void VID_UpdateGamma(qboolean force, int rampsize); -// turns off hardware gamma ramps immediately -// (called from various shutdown/deactivation functions) -void VID_RestoreSystemGamma(void); +void VID_UpdateGamma(void); qboolean VID_HasScreenKeyboardSupport(void); void VID_ShowKeyboard(qboolean show); @@ -293,6 +282,7 @@ void VID_Stop(void); extern unsigned int vid_gammatables_serial; // so other subsystems can poll if gamma parameters have changed; this starts with 0 and gets increased by 1 each time the gamma parameters get changed and VID_BuildGammaTables should be called again extern qboolean vid_gammatables_trivial; // this is set to true if all color control values are at default setting, and it therefore would make no sense to use the gamma table void VID_BuildGammaTables(unsigned short *ramps, int rampsize); // builds the current gamma tables into an array (needs 3*rampsize items) +void VID_ApplyGammaToColor(const float *rgb, float *out); // applies current gamma settings to a color (0-1 range) typedef struct {