X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=r_sky.c;h=d5b21c0d0ef348660dbdb8674b292a5c4975d3d0;hb=65c5c9c594e16a38c8eae6107ea2b93237a9367f;hp=6f1cb06ac2074c853c5f36b7420b15cad15a1a43;hpb=8fd8e96110f501587d3331139e694f54e4f32c9f;p=xonotic%2Fdarkplaces.git diff --git a/r_sky.c b/r_sky.c index 6f1cb06a..d5b21c0d 100644 --- a/r_sky.c +++ b/r_sky.c @@ -1,6 +1,8 @@ #include "quakedef.h" +#include "image.h" +// FIXME: fix skybox after vid_restart cvar_t r_sky = {CVAR_SAVE, "r_sky", "1"}; qboolean skyavailable_quake; qboolean skyavailable_box; @@ -73,7 +75,7 @@ int R_SetSkyBox(const char *sky) continue; } } - skyboxside[i] = R_LoadTexture(skytexturepool, va("skyboxside%d", i), image_width, image_height, image_rgba, TEXTYPE_RGBA, TEXF_PRECACHE); + skyboxside[i] = R_LoadTexture2D(skytexturepool, va("skyboxside%d", i), image_width, image_height, image_rgba, TEXTYPE_RGBA, TEXF_CLAMP | TEXF_PRECACHE, NULL); Mem_Free(image_rgba); } @@ -122,8 +124,8 @@ static void R_SkyBox(void) varray_vertex[i * 4 + 0] = (x) * 16.0f;\ varray_vertex[i * 4 + 1] = (y) * 16.0f;\ varray_vertex[i * 4 + 2] = (z) * 16.0f;\ - varray_texcoord[0][i * 4 + 0] = (s) * (254.0f/256.0f) + (1.0f/256.0f);\ - varray_texcoord[0][i * 4 + 1] = (t) * (254.0f/256.0f) + (1.0f/256.0f); + varray_texcoord[0][i * 4 + 0] = (s);\ + varray_texcoord[0][i * 4 + 1] = (t); memset(&m, 0, sizeof(m)); m.blendfunc1 = GL_ONE; @@ -206,10 +208,10 @@ static void skyspherecalc(void) for (i = 0;i <= skygridx;i++) { b = i * skygridxrecip; - x = cos(b * M_PI * 2); + x = cos((b + 0.5) * M_PI); v[0] = ax*x * dx; v[1] = ay*x * dy; - v[2] = -sin(b * M_PI * 2) * dz; + v[2] = -sin((b + 0.5) * M_PI) * dz; length = 3.0f / sqrt(v[0]*v[0]+v[1]*v[1]+(v[2]*v[2]*9)); *texcoord++ = v[0] * length; *texcoord++ = v[1] * length; @@ -357,7 +359,7 @@ void R_InitSky (qbyte *src, int bytesperpixel) for (j=0 ; j<128 ; j++) { p = src[i*256 + j + 128]; - rgba = &d_8to24table[p]; + rgba = &palette_complete[p]; trans[(i*128) + j] = *rgba; r += ((qbyte *)rgba)[0]; g += ((qbyte *)rgba)[1]; @@ -373,7 +375,7 @@ void R_InitSky (qbyte *src, int bytesperpixel) memcpy(skyupperlayerpixels, trans, 128*128*4); - solidskytexture = R_LoadTexture (skytexturepool, "sky_solidtexture", 128, 128, (qbyte *) trans, TEXTYPE_RGBA, TEXF_PRECACHE); + solidskytexture = R_LoadTexture2D(skytexturepool, "sky_solidtexture", 128, 128, (qbyte *) trans, TEXTYPE_RGBA, TEXF_PRECACHE, NULL); if (bytesperpixel == 4) { @@ -391,14 +393,14 @@ void R_InitSky (qbyte *src, int bytesperpixel) if (p == 0) trans[(i*128) + j] = transpix; else - trans[(i*128) + j] = d_8to24table[p]; + trans[(i*128) + j] = palette_complete[p]; } } } memcpy(skylowerlayerpixels, trans, 128*128*4); - alphaskytexture = R_LoadTexture (skytexturepool, "sky_alphatexture", 128, 128, (qbyte *) trans, TEXTYPE_RGBA, TEXF_ALPHA | TEXF_PRECACHE); + alphaskytexture = R_LoadTexture2D(skytexturepool, "sky_alphatexture", 128, 128, (qbyte *) trans, TEXTYPE_RGBA, TEXF_ALPHA | TEXF_PRECACHE, NULL); } void R_ResetQuakeSky(void)