Trying to fix bugs.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/branches/wip@3797 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
Spoike 2011-05-27 17:59:31 +00:00
parent 646fd03f44
commit ccc0750de0
6 changed files with 41 additions and 24 deletions

View file

@ -396,26 +396,23 @@ void QCBUILTIN PF_CL_drawcolouredstring (progfuncs_t *prinst, struct globalvars_
void QCBUILTIN PF_CL_stringwidth(progfuncs_t *prinst, struct globalvars_s *pr_globals) void QCBUILTIN PF_CL_stringwidth(progfuncs_t *prinst, struct globalvars_s *pr_globals)
{ {
char *text = PR_GetStringOfs(prinst, OFS_PARM0); char *text = PR_GetStringOfs(prinst, OFS_PARM0);
qboolean usecolours = G_FLOAT(OFS_PARM1); int usecolours = G_FLOAT(OFS_PARM1);
float fontsize; float fontsize;
if (*prinst->callargc > 2) if (*prinst->callargc > 2)
fontsize = G_FLOAT(OFS_PARM2); fontsize = G_FLOAT(OFS_PARM2);
else else
fontsize = 1; fontsize = 1;
if (mp_globs.drawfontscale) if (mp_globs.drawfontscale)
fontsize *= mp_globs.drawfontscale[1]; fontsize *= mp_globs.drawfontscale[1];
if (usecolours) if (usecolours)
{ {
conchar_t buffer[2048], *str; conchar_t buffer[2048], *end;
float px, py; float px, py;
COM_ParseFunString(CON_WHITEMASK, text, buffer, sizeof(buffer), false); end = COM_ParseFunString(CON_WHITEMASK, text, buffer, sizeof(buffer), false);
str = buffer;
Font_BeginScaledString(font_conchar, 0, 0, &px, &py); Font_BeginScaledString(font_conchar, 0, 0, &px, &py);
while(*str) px = Font_LineWidth(buffer, end);
{
px += Font_CharWidth(*str++);
}
Font_EndString(font_conchar); Font_EndString(font_conchar);
if (mp_globs.drawfontscale) if (mp_globs.drawfontscale)

View file

@ -58,28 +58,18 @@ extern cvar_t r_stainfadeammount;
static int lightmap_shift; static int lightmap_shift;
int Surf_LightmapShift (model_t *model) int Surf_LightmapShift (model_t *model)
{ {
extern cvar_t gl_overbright_all, gl_lightmap_shift; extern cvar_t gl_overbright_all, gl_overbright, gl_lightmap_shift;
if (gl_overbright_all.ival || (model->engineflags & MDLF_NEEDOVERBRIGHT)) if (gl_overbright_all.ival || (model->engineflags & MDLF_NEEDOVERBRIGHT))
lightmap_shift = bound(0, gl_lightmap_shift.ival, 2); lightmap_shift = bound(0, gl_lightmap_shift.ival + gl_overbright.ival, 2);
else else
lightmap_shift = 0; lightmap_shift = 0;
return lightmap_shift; return lightmap_shift;
} }
void Surf_RebuildLightmap (void)
{
int i;
msurface_t *surf;
if (cl.worldmodel)
for (i=0, surf = cl.worldmodel->surfaces; i<cl.worldmodel->numsurfaces ; i++, surf++)
surf->cached_dlight=-1;//force it
}
void Surf_RebuildLightmap_Callback (struct cvar_s *var, char *oldvalue) void Surf_RebuildLightmap_Callback (struct cvar_s *var, char *oldvalue)
{ {
Surf_RebuildLightmap(); Mod_RebuildLightmaps();
} }
//radius, x y z, r g b //radius, x y z, r g b

View file

@ -344,6 +344,7 @@ struct model_s *RMod_ForName (char *name, qboolean crash);
struct model_s *RMod_FindName (char *name); struct model_s *RMod_FindName (char *name);
void *RMod_Extradata (struct model_s *mod); // handles caching void *RMod_Extradata (struct model_s *mod); // handles caching
void RMod_TouchModel (char *name); void RMod_TouchModel (char *name);
void Mod_RebuildLightmaps (void);
struct mleaf_s *RMod_PointInLeaf (struct model_s *model, float *p); struct mleaf_s *RMod_PointInLeaf (struct model_s *model, float *p);

View file

@ -258,8 +258,9 @@ cvar_t gl_mindist = SCVARF ("gl_mindist", "4",
cvar_t gl_motionblur = SCVARF ("gl_motionblur", "0", cvar_t gl_motionblur = SCVARF ("gl_motionblur", "0",
CVAR_ARCHIVE); CVAR_ARCHIVE);
cvar_t gl_motionblurscale = SCVAR ("gl_motionblurscale", "1"); cvar_t gl_motionblurscale = SCVAR ("gl_motionblurscale", "1");
cvar_t gl_overbright = SCVARF ("gl_overbright", "1", cvar_t gl_overbright = CVARFC ("gl_overbright", "1",
CVAR_ARCHIVE); CVAR_ARCHIVE,
Surf_RebuildLightmap_Callback);
cvar_t gl_overbright_all = SCVARF ("gl_overbright_all", "0", cvar_t gl_overbright_all = SCVARF ("gl_overbright_all", "0",
CVAR_ARCHIVE); CVAR_ARCHIVE);
cvar_t gl_picmip = SCVAR ("gl_picmip", "0"); cvar_t gl_picmip = SCVAR ("gl_picmip", "0");

View file

@ -285,6 +285,24 @@ void RMod_Think (void)
#endif #endif
} }
void Mod_RebuildLightmaps (void)
{
int i, j;
msurface_t *surf;
model_t *mod;
for (i=0 , mod=mod_known ; i<mod_numknown ; i++, mod++)
{
if (mod->needload)
continue;
if (mod->type == mod_brush)
{
for (j=0, surf = mod->surfaces; j<mod->numsurfaces ; j++, surf++)
surf->cached_dlight=-1;//force it
}
}
}
/* /*
=================== ===================

View file

@ -359,7 +359,17 @@ void GL_CheckExtensions (void *(*getglfunction) (char *name), float ver)
{ {
/*in gl3.0 things are depricated but not removed*/ /*in gl3.0 things are depricated but not removed*/
/*in gl3.1 depricated things are removed unless compatibility is present*/ /*in gl3.1 depricated things are removed unless compatibility is present*/
if (gl_config.glversion >= 3.1) /*in gl3.2 there's a profile flag we can query*/
if (gl_config.glversion > 3.1)
{
GLint profile = 0;
#define GL_CONTEXT_PROFILE_MASK 0x9126
#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002
qglGetIntegerv(GL_CONTEXT_PROFILE_MASK, &profile);
gl_config.nofixedfunc = !(profile & GL_CONTEXT_COMPATIBILITY_PROFILE_BIT);
}
else if (gl_config.glversion == 3.1)
gl_config.nofixedfunc = !GL_CheckExtension("GL_ARB_compatibility"); gl_config.nofixedfunc = !GL_CheckExtension("GL_ARB_compatibility");
else else
gl_config.nofixedfunc = false; gl_config.nofixedfunc = false;