mirror of
https://github.com/nzp-team/fteqw.git
synced 2024-11-29 07:02:12 +00:00
Working towards d3d+gl dual support again.
Fixed slow-rockets bug with high framerates. git-svn-id: https://svn.code.sf.net/p/fteqw/code/branches/wip@3608 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
parent
184954dd6f
commit
789197f58f
22 changed files with 1495 additions and 159 deletions
|
@ -1841,7 +1841,7 @@ void CL_LinkPacketEntities (void)
|
||||||
if (state->lightpflags & PFLAGS_FULLDYNAMIC)
|
if (state->lightpflags & PFLAGS_FULLDYNAMIC)
|
||||||
{
|
{
|
||||||
vec3_t colour;
|
vec3_t colour;
|
||||||
if (!colour[0] && !colour[1] && !colour[2])
|
if (!state->light[0] && !state->light[1] && !state->light[2])
|
||||||
{
|
{
|
||||||
colour[0] = colour[1] = colour[2] = 1;
|
colour[0] = colour[1] = colour[2] = 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1869,7 +1869,7 @@ texid_t GL_LoadTextureDDS(unsigned char *buffer, int filesize)
|
||||||
if (!qglCompressedTexImage2DARB)
|
if (!qglCompressedTexImage2DARB)
|
||||||
return r_nulltex;
|
return r_nulltex;
|
||||||
|
|
||||||
texnum = GL_AllocNewTexture();
|
texnum = GL_AllocNewTexture(fmtheader.dwWidth, fmtheader.dwHeight);
|
||||||
GL_Bind(texnum);
|
GL_Bind(texnum);
|
||||||
|
|
||||||
datasize = fmtheader.dwPitchOrLinearSize;
|
datasize = fmtheader.dwPitchOrLinearSize;
|
||||||
|
|
|
@ -150,7 +150,12 @@ void Draw_FunStringWidth(int x, int y, const void *str, int width);
|
||||||
// qbyte *Mod_LeafPVS (struct mleaf_s *leaf, struct model_s *model, qbyte *buffer);
|
// qbyte *Mod_LeafPVS (struct mleaf_s *leaf, struct model_s *model, qbyte *buffer);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
typedef union {
|
||||||
|
unsigned int num;
|
||||||
|
#ifdef D3DQUAKE
|
||||||
|
void *ptr;
|
||||||
|
#endif
|
||||||
|
} texid_t;
|
||||||
|
|
||||||
typedef struct rendererinfo_s {
|
typedef struct rendererinfo_s {
|
||||||
char *description;
|
char *description;
|
||||||
|
@ -177,6 +182,15 @@ typedef struct rendererinfo_s {
|
||||||
void (*Draw_Image) (float x, float y, float w, float h, float s1, float t1, float s2, float t2, mpic_t *pic); //gl-style scaled/coloured/subpic
|
void (*Draw_Image) (float x, float y, float w, float h, float s1, float t1, float s2, float t2, mpic_t *pic); //gl-style scaled/coloured/subpic
|
||||||
void (*Draw_ImageColours) (float r, float g, float b, float a);
|
void (*Draw_ImageColours) (float r, float g, float b, float a);
|
||||||
|
|
||||||
|
texid_t (*IMG_LoadTexture) (char *identifier, int width, int height, enum uploadfmt fmt, void *data, unsigned int flags);
|
||||||
|
texid_t (*IMG_LoadTexture8Pal24) (char *identifier, int width, int height, qbyte *data, qbyte *palette24, unsigned int flags);
|
||||||
|
texid_t (*IMG_LoadTexture8Pal32) (char *identifier, int width, int height, qbyte *data, qbyte *palette32, unsigned int flags);
|
||||||
|
texid_t (*IMG_LoadCompressed) (char *name);
|
||||||
|
texid_t (*IMG_FindTexture) (char *identifier);
|
||||||
|
texid_t (*IMG_AllocNewTexture) (int w, int h);
|
||||||
|
void (*IMG_Upload) (texid_t tex, char *name, enum uploadfmt fmt, void *data, void *palette, int width, int height, unsigned int flags);
|
||||||
|
void (*IMG_DestroyTexture) (texid_t tex);
|
||||||
|
|
||||||
void (*R_Init) (void);
|
void (*R_Init) (void);
|
||||||
void (*R_DeInit) (void);
|
void (*R_DeInit) (void);
|
||||||
void (*R_RenderView) (void); // must set r_refdef first
|
void (*R_RenderView) (void); // must set r_refdef first
|
||||||
|
@ -216,3 +230,14 @@ typedef struct rendererinfo_s {
|
||||||
|
|
||||||
char *alignment;
|
char *alignment;
|
||||||
} rendererinfo_t;
|
} rendererinfo_t;
|
||||||
|
|
||||||
|
#define rf currentrendererstate.renderer
|
||||||
|
|
||||||
|
#define R_LoadTexture rf->IMG_LoadTexture
|
||||||
|
#define R_LoadTexture8Pal24 rf->IMG_LoadTexture8Pal24
|
||||||
|
#define R_LoadTexture8Pal32 rf->IMG_LoadTexture8Pal32
|
||||||
|
#define R_LoadCompressed rf->IMG_LoadCompressed
|
||||||
|
#define R_FindTexture rf->IMG_FindTexture
|
||||||
|
#define R_AllocNewTexture rf->IMG_AllocNewTexture
|
||||||
|
#define R_Upload rf->IMG_Upload
|
||||||
|
#define R_DestroyTexture rf->IMG_DestroyTexture
|
||||||
|
|
|
@ -80,6 +80,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#pragma warning( error : 4020)
|
#pragma warning( error : 4020)
|
||||||
|
|
||||||
#pragma warning(error:4013)
|
#pragma warning(error:4013)
|
||||||
|
|
||||||
|
//msvc... shut the fuck up.
|
||||||
|
#define _CRT_SECURE_NO_DEPRECATE
|
||||||
|
#define _CRT_NONSTDC_NO_DEPRECATE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -32,12 +32,6 @@ extern int r_framecount;
|
||||||
struct msurface_s;
|
struct msurface_s;
|
||||||
struct batch_s;
|
struct batch_s;
|
||||||
|
|
||||||
typedef union {
|
|
||||||
unsigned int num;
|
|
||||||
#ifdef D3DQUAKE
|
|
||||||
void *ptr;
|
|
||||||
#endif
|
|
||||||
} texid_t;
|
|
||||||
static const texid_t r_nulltex = {0};
|
static const texid_t r_nulltex = {0};
|
||||||
#define TEXVALID(t) ((t).num!=0)
|
#define TEXVALID(t) ((t).num!=0)
|
||||||
|
|
||||||
|
@ -274,37 +268,6 @@ enum uploadfmt
|
||||||
TF_8PAL32
|
TF_8PAL32
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#if defined(GLQUAKE) && defined(D3DQUAKE)
|
|
||||||
#define R_LoadTexture8Pal32(skinname,width,height,data,palette,usemips,alpha) ((qrenderer == QR_DIRECT3D)?D3D_LoadTexture8Pal32(skinname, width, height, data, palette, usemips, alpha):GL_LoadTexture8Pal32(skinname, width, height, data, palette, usemips, alpha))
|
|
||||||
#define R_LoadTexture8Pal24(skinname,width,height,data,palette,usemips,alpha) ((qrenderer == QR_DIRECT3D)?D3D_LoadTexture8Pal24(skinname, width, height, data, palette, usemips, alpha):GL_LoadTexture8Pal24(skinname, width, height, data, palette, usemips, alpha))
|
|
||||||
|
|
||||||
#define R_FindTexture(name) ((qrenderer == QR_DIRECT3D)?D3D_FindTexture(name):GL_FindTexture(name))
|
|
||||||
#define R_LoadCompressed(name) ((qrenderer == QR_DIRECT3D)?D3D_LoadCompressed(name):GL_LoadCompressed(name))
|
|
||||||
#elif defined(D3DQUAKE)
|
|
||||||
#define R_LoadTexture8Pal32 D3D_LoadTexture8Pal32
|
|
||||||
#define R_LoadTexture8Pal24 D3D_LoadTexture8Pal24
|
|
||||||
|
|
||||||
#define R_FindTexture D3D_FindTexture
|
|
||||||
#define R_LoadCompressed D3D_LoadCompressed
|
|
||||||
|
|
||||||
#define R_AllocNewTexture D3D_AllocNewTexture
|
|
||||||
#define R_Upload D3D_UploadFmt
|
|
||||||
#define R_LoadTexture D3D_LoadTextureFmt
|
|
||||||
#define R_DestroyTexture(tno) 0
|
|
||||||
#elif defined(GLQUAKE)
|
|
||||||
#define R_LoadTexture8Pal32 GL_LoadTexture8Pal32
|
|
||||||
#define R_LoadTexture8Pal24 GL_LoadTexture8Pal24
|
|
||||||
|
|
||||||
#define R_FindTexture GL_FindTexture
|
|
||||||
#define R_LoadCompressed GL_LoadCompressed
|
|
||||||
|
|
||||||
#define R_AllocNewTexture(w,h) GL_AllocNewTexture()
|
|
||||||
#define R_Upload GL_UploadFmt
|
|
||||||
#define R_LoadTexture GL_LoadTextureFmt
|
|
||||||
#define R_DestroyTexture GL_DestroyTexture
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define R_LoadTexture8(id,w,h,d,f,t) R_LoadTexture(id,w,h,t?TF_TRANS8:TF_SOLID8,d,f)
|
#define R_LoadTexture8(id,w,h,d,f,t) R_LoadTexture(id,w,h,t?TF_TRANS8:TF_SOLID8,d,f)
|
||||||
#define R_LoadTexture32(id,w,h,d,f) R_LoadTexture(id,w,h,TF_RGBA32,d,f)
|
#define R_LoadTexture32(id,w,h,d,f) R_LoadTexture(id,w,h,TF_RGBA32,d,f)
|
||||||
#define R_LoadTextureFB(id,w,h,d,f) R_LoadTexture(id,w,h,TF_TRANS8_FULLBRIGHT,d,f)
|
#define R_LoadTextureFB(id,w,h,d,f) R_LoadTexture(id,w,h,TF_TRANS8_FULLBRIGHT,d,f)
|
||||||
|
@ -313,7 +276,7 @@ enum uploadfmt
|
||||||
|
|
||||||
/*it seems a little excessive to have to include glquake (and windows headers), just to load some textures/shaders for the backend*/
|
/*it seems a little excessive to have to include glquake (and windows headers), just to load some textures/shaders for the backend*/
|
||||||
#ifdef GLQUAKE
|
#ifdef GLQUAKE
|
||||||
texid_t GL_AllocNewTexture(void);
|
texid_t GL_AllocNewTexture(int w, int h);
|
||||||
void GL_UploadFmt(texid_t tex, char *name, enum uploadfmt fmt, void *data, void *palette, int width, int height, unsigned int flags);
|
void GL_UploadFmt(texid_t tex, char *name, enum uploadfmt fmt, void *data, void *palette, int width, int height, unsigned int flags);
|
||||||
texid_t GL_LoadTextureFmt (char *identifier, int width, int height, enum uploadfmt fmt, void *data, unsigned int flags);
|
texid_t GL_LoadTextureFmt (char *identifier, int width, int height, enum uploadfmt fmt, void *data, unsigned int flags);
|
||||||
void GL_DestroyTexture(texid_t tex);
|
void GL_DestroyTexture(texid_t tex);
|
||||||
|
|
|
@ -730,8 +730,6 @@ int (*Mod_SkinForName) (struct model_s *model, char *name);
|
||||||
int (*Mod_FrameForName) (struct model_s *model, char *name);
|
int (*Mod_FrameForName) (struct model_s *model, char *name);
|
||||||
float (*Mod_GetFrameDuration) (struct model_s *model, int framenum);
|
float (*Mod_GetFrameDuration) (struct model_s *model, int framenum);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
qboolean (*VID_Init) (rendererstate_t *info, unsigned char *palette);
|
qboolean (*VID_Init) (rendererstate_t *info, unsigned char *palette);
|
||||||
void (*VID_DeInit) (void);
|
void (*VID_DeInit) (void);
|
||||||
void (*VID_SetPalette) (unsigned char *palette);
|
void (*VID_SetPalette) (unsigned char *palette);
|
||||||
|
@ -777,6 +775,15 @@ rendererinfo_t dedicatedrendererinfo = {
|
||||||
NULL, //Draw_Image
|
NULL, //Draw_Image
|
||||||
NULL, //Draw_ImageColours
|
NULL, //Draw_ImageColours
|
||||||
|
|
||||||
|
NULL, //R_LoadTexture
|
||||||
|
NULL, //R_LoadTexture8Pal24
|
||||||
|
NULL, //R_LoadTexture8Pal32
|
||||||
|
NULL, //R_LoadCompressed
|
||||||
|
NULL, //R_FindTexture
|
||||||
|
NULL, //R_AllocNewTexture
|
||||||
|
NULL, //R_Upload
|
||||||
|
NULL, //R_DestroyTexture
|
||||||
|
|
||||||
NULL, //R_Init;
|
NULL, //R_Init;
|
||||||
NULL, //R_DeInit;
|
NULL, //R_DeInit;
|
||||||
NULL, //R_RenderView;
|
NULL, //R_RenderView;
|
||||||
|
|
|
@ -197,7 +197,9 @@ static BOOL (CALLBACK DSEnumCallback)(GUID FAR *guid, LPCSTR str1, LPCSTR str2,
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* new formatTag:*/
|
/* new formatTag:*/
|
||||||
|
#ifndef WAVE_FORMAT_EXTENSIBLE
|
||||||
# define WAVE_FORMAT_EXTENSIBLE (0xfffe)
|
# define WAVE_FORMAT_EXTENSIBLE (0xfffe)
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Speaker Positions:*/
|
/* Speaker Positions:*/
|
||||||
# define SPEAKER_FRONT_LEFT 0x1
|
# define SPEAKER_FRONT_LEFT 0x1
|
||||||
|
|
|
@ -38,6 +38,7 @@ typedef struct {
|
||||||
char glrenderer[MAX_QPATH];
|
char glrenderer[MAX_QPATH];
|
||||||
struct rendererinfo_s *renderer;
|
struct rendererinfo_s *renderer;
|
||||||
} rendererstate_t;
|
} rendererstate_t;
|
||||||
|
extern rendererstate_t currentrendererstate;
|
||||||
|
|
||||||
typedef struct vrect_s
|
typedef struct vrect_s
|
||||||
{
|
{
|
||||||
|
|
|
@ -90,6 +90,9 @@ typedef struct
|
||||||
unsigned int shaderbits;
|
unsigned int shaderbits;
|
||||||
unsigned int lastpasscount;
|
unsigned int lastpasscount;
|
||||||
|
|
||||||
|
mesh_t **meshlist;
|
||||||
|
unsigned int nummeshes;
|
||||||
|
|
||||||
D3DCOLOR passcolour;
|
D3DCOLOR passcolour;
|
||||||
|
|
||||||
IDirect3DVertexBuffer9 *dynxyz_buff;
|
IDirect3DVertexBuffer9 *dynxyz_buff;
|
||||||
|
@ -641,11 +644,13 @@ static void alphagenbyte(const shaderpass_t *pass, int cnt, const byte_vec4_t *s
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static unsigned int BE_GenerateColourMods(unsigned int vertcount, const shaderpass_t *pass, const mesh_t *meshlist)
|
static unsigned int BE_GenerateColourMods(unsigned int vertcount, const shaderpass_t *pass)
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
unsigned int ret = 0;
|
unsigned int ret = 0;
|
||||||
unsigned char *map;
|
unsigned char *map;
|
||||||
const mesh_t *m;
|
const mesh_t *m;
|
||||||
|
unsigned int mno;
|
||||||
qboolean usearray;
|
qboolean usearray;
|
||||||
|
|
||||||
if (pass->flags & SHADER_PASS_NOCOLORARRAY)
|
if (pass->flags & SHADER_PASS_NOCOLORARRAY)
|
||||||
|
@ -659,8 +664,12 @@ static unsigned int BE_GenerateColourMods(unsigned int vertcount, const shaderpa
|
||||||
|
|
||||||
ret |= D3D_VDEC_COL4B;
|
ret |= D3D_VDEC_COL4B;
|
||||||
allocvertexbuffer(shaderstate.dyncol_buff, &shaderstate.dyncol_offs, (void**)&map, vertcount*sizeof(D3DCOLOR));
|
allocvertexbuffer(shaderstate.dyncol_buff, &shaderstate.dyncol_offs, (void**)&map, vertcount*sizeof(D3DCOLOR));
|
||||||
for (m = meshlist, vertcount = 0; m; vertcount += m->numvertexes, m = m->next)
|
for (vertcount = 0, mno = 0; mno < shaderstate.nummeshes; mno++)
|
||||||
|
{
|
||||||
|
m = shaderstate.meshlist[mno];
|
||||||
memcpy((char*)map+vertcount*sizeof(D3DCOLOR), m->colors4b_array, m->numvertexes*sizeof(D3DCOLOR));
|
memcpy((char*)map+vertcount*sizeof(D3DCOLOR), m->colors4b_array, m->numvertexes*sizeof(D3DCOLOR));
|
||||||
|
vertcount += m->numvertexes;
|
||||||
|
}
|
||||||
IDirect3DVertexBuffer9_Unlock(shaderstate.dyncol_buff);
|
IDirect3DVertexBuffer9_Unlock(shaderstate.dyncol_buff);
|
||||||
IDirect3DDevice9_SetStreamSource(pD3DDev9, 1, shaderstate.dyncol_buff, shaderstate.dyncol_offs - vertcount*sizeof(D3DCOLOR), sizeof(D3DCOLOR));
|
IDirect3DDevice9_SetStreamSource(pD3DDev9, 1, shaderstate.dyncol_buff, shaderstate.dyncol_offs - vertcount*sizeof(D3DCOLOR), sizeof(D3DCOLOR));
|
||||||
}
|
}
|
||||||
|
@ -699,6 +708,7 @@ static unsigned int BE_GenerateColourMods(unsigned int vertcount, const shaderpa
|
||||||
IDirect3DDevice9_SetStreamSource(pD3DDev9, 1, NULL, 0, 0);
|
IDirect3DDevice9_SetStreamSource(pD3DDev9, 1, NULL, 0, 0);
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
/*********************************************************************************************************/
|
/*********************************************************************************************************/
|
||||||
/*========================================== texture coord generation =====================================*/
|
/*========================================== texture coord generation =====================================*/
|
||||||
|
@ -856,6 +866,7 @@ static void tcmod(const tcmod_t *tcmod, int cnt, const float *src, float *dst, c
|
||||||
|
|
||||||
static void GenerateTCMods(const shaderpass_t *pass, float *dest, const mesh_t *meshlist)
|
static void GenerateTCMods(const shaderpass_t *pass, float *dest, const mesh_t *meshlist)
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
unsigned int fvertex = 0;
|
unsigned int fvertex = 0;
|
||||||
for (; meshlist; meshlist = meshlist->next)
|
for (; meshlist; meshlist = meshlist->next)
|
||||||
{
|
{
|
||||||
|
@ -877,6 +888,7 @@ static void GenerateTCMods(const shaderpass_t *pass, float *dest, const mesh_t *
|
||||||
}
|
}
|
||||||
dest += meshlist->numvertexes*2;
|
dest += meshlist->numvertexes*2;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
//end texture coords
|
//end texture coords
|
||||||
|
@ -912,7 +924,7 @@ static void BE_DrawMeshChain_SetupPass(shaderpass_t *pass, unsigned int vertcoun
|
||||||
vdec = 0;
|
vdec = 0;
|
||||||
|
|
||||||
/*we only use one colour, generated from the first pass*/
|
/*we only use one colour, generated from the first pass*/
|
||||||
vdec |= BE_GenerateColourMods(vertcount, pass, meshchain);
|
vdec |= BE_GenerateColourMods(vertcount, pass);
|
||||||
|
|
||||||
for (; passno < lastpass; passno++)
|
for (; passno < lastpass; passno++)
|
||||||
{
|
{
|
||||||
|
@ -945,8 +957,9 @@ static void BE_DrawMeshChain_SetupPass(shaderpass_t *pass, unsigned int vertcoun
|
||||||
D3DBE_ApplyShaderBits(pass->shaderbits);
|
D3DBE_ApplyShaderBits(pass->shaderbits);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void BE_DrawMeshChain_Internal(mesh_t *meshchain)
|
static void BE_DrawMeshChain_Internal(void)
|
||||||
{
|
{
|
||||||
|
#ifdef FIXME
|
||||||
unsigned int vertcount, idxcount, idxfirst;
|
unsigned int vertcount, idxcount, idxfirst;
|
||||||
mesh_t *m;
|
mesh_t *m;
|
||||||
void *map;
|
void *map;
|
||||||
|
@ -987,15 +1000,17 @@ static void BE_DrawMeshChain_Internal(mesh_t *meshchain)
|
||||||
BE_DrawMeshChain_SetupPass(pass+passno, vertcount, meshchain);
|
BE_DrawMeshChain_SetupPass(pass+passno, vertcount, meshchain);
|
||||||
IDirect3DDevice9_DrawIndexedPrimitive(pD3DDev9, D3DPT_TRIANGLELIST, 0, 0, vertcount, idxfirst, idxcount/3);
|
IDirect3DDevice9_DrawIndexedPrimitive(pD3DDev9, D3DPT_TRIANGLELIST, 0, 0, vertcount, idxfirst, idxcount/3);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
void BE_DrawMeshChain(shader_t *shader, mesh_t *meshchain, vbo_t *vbo, texnums_t *texnums)
|
void BE_DrawMeshChain(shader_t *shader, mesh_t *meshchain, vbo_t *vbo, texnums_t *texnums)
|
||||||
{
|
{
|
||||||
shaderstate.curshader = shader;
|
shaderstate.curshader = shader;
|
||||||
shaderstate.curtexnums = texnums;
|
shaderstate.curtexnums = texnums;
|
||||||
|
shaderstate.meshlist = meshchain;
|
||||||
BE_DrawMeshChain_Internal(meshchain);
|
shaderstate.nummeshes = 1;
|
||||||
}
|
BE_DrawMeshChain_Internal();
|
||||||
|
}*/
|
||||||
|
|
||||||
void BE_SelectMode(backendmode_t mode, unsigned int flags)
|
void BE_SelectMode(backendmode_t mode, unsigned int flags)
|
||||||
{
|
{
|
||||||
|
@ -1174,6 +1189,7 @@ void BE_UploadAllLightmaps(void)
|
||||||
|
|
||||||
static void DrawSurfaceChain(msurface_t *s, shader_t *shader, vbo_t *vbo)
|
static void DrawSurfaceChain(msurface_t *s, shader_t *shader, vbo_t *vbo)
|
||||||
{ //doesn't merge surfaces, but tells gl to do each vertex arrayed surface individually, which means no vertex copying.
|
{ //doesn't merge surfaces, but tells gl to do each vertex arrayed surface individually, which means no vertex copying.
|
||||||
|
#ifdef FIXME
|
||||||
int i;
|
int i;
|
||||||
mesh_t *ml, *m;
|
mesh_t *ml, *m;
|
||||||
|
|
||||||
|
@ -1270,6 +1286,7 @@ static void DrawSurfaceChain(msurface_t *s, shader_t *shader, vbo_t *vbo)
|
||||||
BE_DrawMeshChain_Internal(lightmap[i]->meshchain);
|
BE_DrawMeshChain_Internal(lightmap[i]->meshchain);
|
||||||
lightmap[i]->meshchain = NULL;
|
lightmap[i]->meshchain = NULL;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static void BE_BaseTextureChain(msurface_t *first)
|
static void BE_BaseTextureChain(msurface_t *first)
|
||||||
|
|
|
@ -292,13 +292,13 @@ static LRESULT WINAPI D3D9_WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA
|
||||||
{
|
{
|
||||||
if ((short) HIWORD(wParam) > 0)
|
if ((short) HIWORD(wParam) > 0)
|
||||||
{
|
{
|
||||||
Key_Event(K_MWHEELUP, 0, true);
|
Key_Event(0, K_MWHEELUP, 0, true);
|
||||||
Key_Event(K_MWHEELUP, 0, false);
|
Key_Event(0, K_MWHEELUP, 0, false);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Key_Event(K_MWHEELDOWN, 0, true);
|
Key_Event(0, K_MWHEELDOWN, 0, true);
|
||||||
Key_Event(K_MWHEELDOWN, 0, false);
|
Key_Event(0, K_MWHEELDOWN, 0, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -595,8 +595,8 @@ static qboolean D3D9_VID_Init(rendererstate_t *info, unsigned char *palette)
|
||||||
vid.pixelheight = height;
|
vid.pixelheight = height;
|
||||||
vid.recalc_refdef = true;
|
vid.recalc_refdef = true;
|
||||||
|
|
||||||
vid.width = vid.conwidth = width;
|
vid.width = width;
|
||||||
vid.height = vid.conheight = height;
|
vid.height = height;
|
||||||
|
|
||||||
// pDD->lpVtbl->QueryInterface ((void*)pDD, &IID_IDirectDrawGammaControl, (void**)&pGammaControl);
|
// pDD->lpVtbl->QueryInterface ((void*)pDD, &IID_IDirectDrawGammaControl, (void**)&pGammaControl);
|
||||||
/* if (pGammaControl)
|
/* if (pGammaControl)
|
||||||
|
@ -656,20 +656,12 @@ resetD3D9();
|
||||||
/*a new model has been loaded*/
|
/*a new model has been loaded*/
|
||||||
static void (D3D9_R_NewMap) (void)
|
static void (D3D9_R_NewMap) (void)
|
||||||
{
|
{
|
||||||
int i;
|
|
||||||
r_worldentity.model = cl.worldmodel;
|
r_worldentity.model = cl.worldmodel;
|
||||||
R_AnimateLight();
|
R_AnimateLight();
|
||||||
Surf_BuildLightmaps();
|
Surf_BuildLightmaps();
|
||||||
|
|
||||||
/*wipe any lingering particles*/
|
/*wipe any lingering particles*/
|
||||||
P_ClearParticles();
|
P_ClearParticles();
|
||||||
|
|
||||||
for (i=0 ; i<cl.worldmodel->numtextures ; i++)
|
|
||||||
{
|
|
||||||
if (!cl.worldmodel->textures[i])
|
|
||||||
continue;
|
|
||||||
cl.worldmodel->textures[i]->texturechain = NULL;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
extern mleaf_t *r_viewleaf, *r_oldviewleaf;
|
extern mleaf_t *r_viewleaf, *r_oldviewleaf;
|
||||||
|
@ -848,27 +840,26 @@ static void (D3D9_SCR_UpdateScreen) (void)
|
||||||
|
|
||||||
#pragma message("Fixme: remove the code from here...")
|
#pragma message("Fixme: remove the code from here...")
|
||||||
{
|
{
|
||||||
|
unsigned int ow = vid.width, oh = vid.height;
|
||||||
extern cvar_t vid_conwidth, vid_conheight, vid_conautoscale;
|
extern cvar_t vid_conwidth, vid_conheight, vid_conautoscale;
|
||||||
if (vid_conautoscale.value)
|
if (vid_conautoscale.value)
|
||||||
{
|
{
|
||||||
vid.conwidth = vid.pixelwidth*vid_conautoscale.value;
|
vid.width = vid.pixelwidth*vid_conautoscale.value;
|
||||||
vid.conheight = vid.pixelheight*vid_conautoscale.value;
|
vid.height = vid.pixelheight*vid_conautoscale.value;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
vid.conwidth = vid_conwidth.value;
|
vid.width = vid_conwidth.value;
|
||||||
vid.conheight = vid_conheight.value;
|
vid.height = vid_conheight.value;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!vid.conwidth)
|
if (!vid.width)
|
||||||
vid.conwidth = vid.pixelwidth;
|
vid.width = vid.pixelwidth;
|
||||||
if (!vid.conheight)
|
if (!vid.height)
|
||||||
vid.conheight = vid.pixelheight;
|
vid.height = vid.pixelheight;
|
||||||
|
|
||||||
if (vid.width != vid.conwidth || vid.height != vid.conheight)
|
if (vid.width != ow || vid.height != oh)
|
||||||
vid.recalc_refdef = true;
|
vid.recalc_refdef = true;
|
||||||
vid.width = vid.conwidth;
|
|
||||||
vid.height = vid.conheight;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1094,18 +1085,18 @@ static void D3D9_SetupViewPort(void)
|
||||||
screenaspect = (float)r_refdef.vrect.width/r_refdef.vrect.height;
|
screenaspect = (float)r_refdef.vrect.width/r_refdef.vrect.height;
|
||||||
GL_InfinatePerspective(fov_x, fov_y, gl_mindist.value);
|
GL_InfinatePerspective(fov_x, fov_y, gl_mindist.value);
|
||||||
|
|
||||||
Matrix4_ModelViewMatrixFromAxis(r_view_matrix, vpn, vright, vup, r_refdef.vieworg);
|
Matrix4_ModelViewMatrixFromAxis(r_refdef.m_view, vpn, vright, vup, r_refdef.vieworg);
|
||||||
|
|
||||||
|
|
||||||
IDirect3DDevice9_SetTransform(pD3DDev9, D3DTS_PROJECTION, (D3DMATRIX*)r_projection_matrix);
|
IDirect3DDevice9_SetTransform(pD3DDev9, D3DTS_PROJECTION, (D3DMATRIX*)r_refdef.m_projection);
|
||||||
IDirect3DDevice9_SetTransform(pD3DDev9, D3DTS_VIEW, (D3DMATRIX*)r_view_matrix);
|
IDirect3DDevice9_SetTransform(pD3DDev9, D3DTS_VIEW, (D3DMATRIX*)r_refdef.m_view);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void (D3D9_R_RenderView) (void)
|
static void (D3D9_R_RenderView) (void)
|
||||||
{
|
{
|
||||||
D3D9_SetupViewPort();
|
D3D9_SetupViewPort();
|
||||||
d3d9error(IDirect3DDevice9_Clear(pD3DDev9, 0, NULL, D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0,0,0), 1, 0));
|
d3d9error(IDirect3DDevice9_Clear(pD3DDev9, 0, NULL, D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0,0,0), 1, 0));
|
||||||
R_SetFrustum (r_projection_matrix, r_view_matrix);
|
R_SetFrustum (r_refdef.m_projection, r_refdef.m_view);
|
||||||
if (!(r_refdef.flags & Q2RDF_NOWORLDMODEL))
|
if (!(r_refdef.flags & Q2RDF_NOWORLDMODEL))
|
||||||
Surf_DrawWorld();
|
Surf_DrawWorld();
|
||||||
P_DrawParticles ();
|
P_DrawParticles ();
|
||||||
|
@ -1175,10 +1166,6 @@ rendererinfo_t d3drendererinfo =
|
||||||
D3D9_R_AddStain,
|
D3D9_R_AddStain,
|
||||||
D3D9_R_LessenStains,
|
D3D9_R_LessenStains,
|
||||||
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
|
|
||||||
RMod_Init,
|
RMod_Init,
|
||||||
RMod_ClearAll,
|
RMod_ClearAll,
|
||||||
RMod_ForName,
|
RMod_ForName,
|
||||||
|
@ -1197,12 +1184,6 @@ rendererinfo_t d3drendererinfo =
|
||||||
|
|
||||||
D3D9_VID_Init,
|
D3D9_VID_Init,
|
||||||
D3D9_VID_DeInit,
|
D3D9_VID_DeInit,
|
||||||
D3D9_VID_LockBuffer,
|
|
||||||
D3D9_VID_UnlockBuffer,
|
|
||||||
D3D9_D_BeginDirectRect,
|
|
||||||
D3D9_D_EndDirectRect,
|
|
||||||
D3D9_VID_ForceLockState,
|
|
||||||
D3D9_VID_ForceUnlockedAndReturnState,
|
|
||||||
D3D9_VID_SetPalette,
|
D3D9_VID_SetPalette,
|
||||||
D3D9_VID_ShiftPalette,
|
D3D9_VID_ShiftPalette,
|
||||||
D3D9_VID_GetRGBInfo,
|
D3D9_VID_GetRGBInfo,
|
||||||
|
|
|
@ -45,11 +45,11 @@ Global
|
||||||
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.D3DDebug|x64.Build.0 = D3DDebug|x64
|
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.D3DDebug|x64.Build.0 = D3DDebug|x64
|
||||||
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.Debug Dedicated Server|Win32.ActiveCfg = Debug Dedicated Server|Win32
|
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.Debug Dedicated Server|Win32.ActiveCfg = Debug Dedicated Server|Win32
|
||||||
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.Debug Dedicated Server|Win32.Build.0 = Debug Dedicated Server|Win32
|
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.Debug Dedicated Server|Win32.Build.0 = Debug Dedicated Server|Win32
|
||||||
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.Debug Dedicated Server|x64.ActiveCfg = GLDebug|x64
|
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.Debug Dedicated Server|x64.ActiveCfg = Debug Dedicated Server|x64
|
||||||
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.Debug Dedicated Server|x64.Build.0 = GLDebug|x64
|
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.Debug Dedicated Server|x64.Build.0 = Debug Dedicated Server|x64
|
||||||
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.Debug|Win32.ActiveCfg = MDebug|Win32
|
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.Debug|Win32.ActiveCfg = MDebug|Win32
|
||||||
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.Debug|x64.ActiveCfg = MDebug|x64
|
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.Debug|x64.ActiveCfg = Debug Dedicated Server|x64
|
||||||
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.Debug|x64.Build.0 = MDebug|x64
|
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.Debug|x64.Build.0 = Debug Dedicated Server|x64
|
||||||
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.GLDebug|Win32.ActiveCfg = GLDebug|Win32
|
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.GLDebug|Win32.ActiveCfg = GLDebug|Win32
|
||||||
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.GLDebug|Win32.Build.0 = GLDebug|Win32
|
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.GLDebug|Win32.Build.0 = GLDebug|Win32
|
||||||
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.GLDebug|x64.ActiveCfg = GLDebug|x64
|
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.GLDebug|x64.ActiveCfg = GLDebug|x64
|
||||||
|
@ -60,8 +60,8 @@ Global
|
||||||
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.GLRelease|x64.Build.0 = GLRelease|x64
|
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.GLRelease|x64.Build.0 = GLRelease|x64
|
||||||
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.MDebug|Win32.ActiveCfg = MDebug|Win32
|
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.MDebug|Win32.ActiveCfg = MDebug|Win32
|
||||||
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.MDebug|Win32.Build.0 = MDebug|Win32
|
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.MDebug|Win32.Build.0 = MDebug|Win32
|
||||||
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.MDebug|x64.ActiveCfg = GLRelease|x64
|
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.MDebug|x64.ActiveCfg = MDebug|x64
|
||||||
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.MDebug|x64.Build.0 = GLRelease|x64
|
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.MDebug|x64.Build.0 = MDebug|x64
|
||||||
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.MinGLDebug|Win32.ActiveCfg = MinGLDebug|Win32
|
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.MinGLDebug|Win32.ActiveCfg = MinGLDebug|Win32
|
||||||
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.MinGLDebug|Win32.Build.0 = MinGLDebug|Win32
|
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.MinGLDebug|Win32.Build.0 = MinGLDebug|Win32
|
||||||
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.MinGLDebug|x64.ActiveCfg = MinGLDebug|x64
|
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.MinGLDebug|x64.ActiveCfg = MinGLDebug|x64
|
||||||
|
@ -84,39 +84,40 @@ Global
|
||||||
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.Release|x64.Build.0 = GLRelease|x64
|
{88BFEE0E-7BC0-43AD-9CCC-6B1A6E4C1364}.Release|x64.Build.0 = GLRelease|x64
|
||||||
{382E6790-D1CA-48F5-8E53-D114635EB61D}.D3DDebug|Win32.ActiveCfg = Debug|Win32
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.D3DDebug|Win32.ActiveCfg = Debug|Win32
|
||||||
{382E6790-D1CA-48F5-8E53-D114635EB61D}.D3DDebug|Win32.Build.0 = Debug|Win32
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.D3DDebug|Win32.Build.0 = Debug|Win32
|
||||||
{382E6790-D1CA-48F5-8E53-D114635EB61D}.D3DDebug|x64.ActiveCfg = Debug|x64
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.D3DDebug|x64.ActiveCfg = Debug|Win32
|
||||||
{382E6790-D1CA-48F5-8E53-D114635EB61D}.D3DDebug|x64.Build.0 = Debug|x64
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.D3DDebug|x64.Build.0 = Debug|Win32
|
||||||
{382E6790-D1CA-48F5-8E53-D114635EB61D}.Debug Dedicated Server|Win32.ActiveCfg = Debug|Win32
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.Debug Dedicated Server|Win32.ActiveCfg = Debug|Win32
|
||||||
{382E6790-D1CA-48F5-8E53-D114635EB61D}.Debug Dedicated Server|Win32.Build.0 = Debug|Win32
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.Debug Dedicated Server|Win32.Build.0 = Debug|Win32
|
||||||
{382E6790-D1CA-48F5-8E53-D114635EB61D}.Debug Dedicated Server|x64.ActiveCfg = Debug|Win32
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.Debug Dedicated Server|x64.ActiveCfg = Debug|Win32
|
||||||
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.Debug Dedicated Server|x64.Build.0 = Debug|Win32
|
||||||
{382E6790-D1CA-48F5-8E53-D114635EB61D}.Debug|Win32.ActiveCfg = Debug|Win32
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
{382E6790-D1CA-48F5-8E53-D114635EB61D}.Debug|Win32.Build.0 = Debug|Win32
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
{382E6790-D1CA-48F5-8E53-D114635EB61D}.Debug|x64.ActiveCfg = Debug|x64
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.Debug|x64.ActiveCfg = Debug|Win32
|
||||||
{382E6790-D1CA-48F5-8E53-D114635EB61D}.Debug|x64.Build.0 = Debug|x64
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.Debug|x64.Build.0 = Debug|Win32
|
||||||
{382E6790-D1CA-48F5-8E53-D114635EB61D}.GLDebug|Win32.ActiveCfg = Debug|Win32
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.GLDebug|Win32.ActiveCfg = Debug|Win32
|
||||||
{382E6790-D1CA-48F5-8E53-D114635EB61D}.GLDebug|Win32.Build.0 = Debug|Win32
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.GLDebug|Win32.Build.0 = Debug|Win32
|
||||||
{382E6790-D1CA-48F5-8E53-D114635EB61D}.GLDebug|x64.ActiveCfg = Debug|Win32
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.GLDebug|x64.ActiveCfg = Debug|Win32
|
||||||
{382E6790-D1CA-48F5-8E53-D114635EB61D}.GLDebug|x64.Build.0 = Debug|Win32
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.GLDebug|x64.Build.0 = Debug|Win32
|
||||||
{382E6790-D1CA-48F5-8E53-D114635EB61D}.GLRelease|Win32.ActiveCfg = Debug|Win32
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.GLRelease|Win32.ActiveCfg = Debug|Win32
|
||||||
{382E6790-D1CA-48F5-8E53-D114635EB61D}.GLRelease|Win32.Build.0 = Debug|Win32
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.GLRelease|Win32.Build.0 = Debug|Win32
|
||||||
{382E6790-D1CA-48F5-8E53-D114635EB61D}.GLRelease|x64.ActiveCfg = Debug|x64
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.GLRelease|x64.ActiveCfg = Debug|Win32
|
||||||
{382E6790-D1CA-48F5-8E53-D114635EB61D}.GLRelease|x64.Build.0 = Debug|x64
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.GLRelease|x64.Build.0 = Debug|Win32
|
||||||
{382E6790-D1CA-48F5-8E53-D114635EB61D}.MDebug|Win32.ActiveCfg = Debug|Win32
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.MDebug|Win32.ActiveCfg = Debug|Win32
|
||||||
{382E6790-D1CA-48F5-8E53-D114635EB61D}.MDebug|Win32.Build.0 = Debug|Win32
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.MDebug|Win32.Build.0 = Debug|Win32
|
||||||
{382E6790-D1CA-48F5-8E53-D114635EB61D}.MDebug|x64.ActiveCfg = Debug|Win32
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.MDebug|x64.ActiveCfg = Debug|Win32
|
||||||
{382E6790-D1CA-48F5-8E53-D114635EB61D}.MDebug|x64.Build.0 = Debug|Win32
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.MDebug|x64.Build.0 = Debug|Win32
|
||||||
{382E6790-D1CA-48F5-8E53-D114635EB61D}.MinGLDebug|Win32.ActiveCfg = Debug|Win32
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.MinGLDebug|Win32.ActiveCfg = Debug|Win32
|
||||||
{382E6790-D1CA-48F5-8E53-D114635EB61D}.MinGLDebug|Win32.Build.0 = Debug|Win32
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.MinGLDebug|Win32.Build.0 = Debug|Win32
|
||||||
{382E6790-D1CA-48F5-8E53-D114635EB61D}.MinGLDebug|x64.ActiveCfg = Debug|x64
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.MinGLDebug|x64.ActiveCfg = Debug|Win32
|
||||||
{382E6790-D1CA-48F5-8E53-D114635EB61D}.MinGLDebug|x64.Build.0 = Debug|x64
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.MinGLDebug|x64.Build.0 = Debug|Win32
|
||||||
{382E6790-D1CA-48F5-8E53-D114635EB61D}.MinGLRelease|Win32.ActiveCfg = Debug|Win32
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.MinGLRelease|Win32.ActiveCfg = Debug|Win32
|
||||||
{382E6790-D1CA-48F5-8E53-D114635EB61D}.MinGLRelease|Win32.Build.0 = Debug|Win32
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.MinGLRelease|Win32.Build.0 = Debug|Win32
|
||||||
{382E6790-D1CA-48F5-8E53-D114635EB61D}.MinGLRelease|x64.ActiveCfg = Debug|Win32
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.MinGLRelease|x64.ActiveCfg = Debug|Win32
|
||||||
{382E6790-D1CA-48F5-8E53-D114635EB61D}.MinGLRelease|x64.Build.0 = Debug|Win32
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.MinGLRelease|x64.Build.0 = Debug|Win32
|
||||||
{382E6790-D1CA-48F5-8E53-D114635EB61D}.MRelease|Win32.ActiveCfg = Debug|Win32
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.MRelease|Win32.ActiveCfg = Debug|Win32
|
||||||
{382E6790-D1CA-48F5-8E53-D114635EB61D}.MRelease|Win32.Build.0 = Debug|Win32
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.MRelease|Win32.Build.0 = Debug|Win32
|
||||||
{382E6790-D1CA-48F5-8E53-D114635EB61D}.MRelease|x64.ActiveCfg = Debug|Win32
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.MRelease|x64.ActiveCfg = Debug|x64
|
||||||
{382E6790-D1CA-48F5-8E53-D114635EB61D}.MRelease|x64.Build.0 = Debug|Win32
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.MRelease|x64.Build.0 = Debug|x64
|
||||||
{382E6790-D1CA-48F5-8E53-D114635EB61D}.Release Dedicated Server|Win32.ActiveCfg = Debug|Win32
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.Release Dedicated Server|Win32.ActiveCfg = Debug|Win32
|
||||||
{382E6790-D1CA-48F5-8E53-D114635EB61D}.Release Dedicated Server|Win32.Build.0 = Debug|Win32
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.Release Dedicated Server|Win32.Build.0 = Debug|Win32
|
||||||
{382E6790-D1CA-48F5-8E53-D114635EB61D}.Release Dedicated Server|x64.ActiveCfg = Debug|Win32
|
{382E6790-D1CA-48F5-8E53-D114635EB61D}.Release Dedicated Server|x64.ActiveCfg = Debug|Win32
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -6,6 +6,11 @@
|
||||||
|
|
||||||
#include "glquake.h"
|
#include "glquake.h"
|
||||||
#include "shader.h"
|
#include "shader.h"
|
||||||
|
#ifdef _WIN32
|
||||||
|
#include <malloc.h>
|
||||||
|
#else
|
||||||
|
#include <alloca.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#define LIGHTPASS_GLSL_SHARED "\
|
#define LIGHTPASS_GLSL_SHARED "\
|
||||||
varying vec2 tcbase;\n\
|
varying vec2 tcbase;\n\
|
||||||
|
@ -453,6 +458,10 @@ void GL_SelectVBO(int vbo)
|
||||||
}
|
}
|
||||||
void GL_SelectEBO(int vbo)
|
void GL_SelectEBO(int vbo)
|
||||||
{
|
{
|
||||||
|
extern cvar_t temp1;
|
||||||
|
if (temp1.ival && shaderstate.meshcount != 1)
|
||||||
|
vbo = 0;
|
||||||
|
|
||||||
#ifndef FORCESTATE
|
#ifndef FORCESTATE
|
||||||
if (shaderstate.currentebo != vbo)
|
if (shaderstate.currentebo != vbo)
|
||||||
#endif
|
#endif
|
||||||
|
@ -698,7 +707,7 @@ static texid_t T_Gen_CurrentRender(void)
|
||||||
}
|
}
|
||||||
// copy the scene to texture
|
// copy the scene to texture
|
||||||
if (!TEXVALID(shaderstate.temptexture))
|
if (!TEXVALID(shaderstate.temptexture))
|
||||||
shaderstate.temptexture = GL_AllocNewTexture();
|
shaderstate.temptexture = GL_AllocNewTexture(vwidth, vheight);
|
||||||
GL_Bind(shaderstate.temptexture);
|
GL_Bind(shaderstate.temptexture);
|
||||||
qglCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 0, 0, vwidth, vheight, 0);
|
qglCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 0, 0, vwidth, vheight, 0);
|
||||||
qglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
|
qglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
|
||||||
|
@ -1887,6 +1896,48 @@ static void BE_SubmitMeshChain(void)
|
||||||
int m;
|
int m;
|
||||||
mesh_t *mesh;
|
mesh_t *mesh;
|
||||||
|
|
||||||
|
if (!shaderstate.currentebo)
|
||||||
|
{
|
||||||
|
if (shaderstate.meshcount == 1)
|
||||||
|
{
|
||||||
|
mesh = shaderstate.meshes[0];
|
||||||
|
qglDrawRangeElements(GL_TRIANGLES, mesh->vbofirstvert, mesh->vbofirstvert+mesh->numvertexes, mesh->numindexes, GL_INDEX_TYPE, shaderstate.sourcevbo->indicies + mesh->vbofirstelement);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
index_t *ilst;
|
||||||
|
mesh = shaderstate.meshes[0];
|
||||||
|
startv = mesh->vbofirstvert;
|
||||||
|
endv = startv + mesh->numvertexes;
|
||||||
|
endi = mesh->numindexes;
|
||||||
|
for (m = 1; m < shaderstate.meshcount; m++)
|
||||||
|
{
|
||||||
|
mesh = shaderstate.meshes[m];
|
||||||
|
endi += mesh->numindexes;
|
||||||
|
|
||||||
|
if (startv > mesh->vbofirstvert)
|
||||||
|
startv = mesh->vbofirstvert;
|
||||||
|
if (endv < mesh->vbofirstvert+mesh->numvertexes)
|
||||||
|
endv = mesh->vbofirstvert+mesh->numvertexes;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ilst = alloca(endi*sizeof(index_t));
|
||||||
|
endi = 0;
|
||||||
|
for (m = 0; m < shaderstate.meshcount; m++)
|
||||||
|
{
|
||||||
|
mesh = shaderstate.meshes[m];
|
||||||
|
for (starti = 0; starti < mesh->numindexes; )
|
||||||
|
ilst[endi++] = mesh->vbofirstvert + mesh->indexes[starti++];
|
||||||
|
}
|
||||||
|
qglDrawRangeElements(GL_TRIANGLES, startv, endv, endi, GL_INDEX_TYPE, ilst);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
if (qglLockArraysEXT)
|
if (qglLockArraysEXT)
|
||||||
{
|
{
|
||||||
|
@ -2925,7 +2976,6 @@ static void BE_UpdateLightmaps(void)
|
||||||
continue;
|
continue;
|
||||||
if (lightmap[lm]->modified)
|
if (lightmap[lm]->modified)
|
||||||
{
|
{
|
||||||
extern cvar_t temp1;
|
|
||||||
glRect_t *theRect;
|
glRect_t *theRect;
|
||||||
lightmap[lm]->modified = false;
|
lightmap[lm]->modified = false;
|
||||||
theRect = &lightmap[lm]->rectchange;
|
theRect = &lightmap[lm]->rectchange;
|
||||||
|
|
|
@ -192,7 +192,7 @@ void R_Bloom_InitTextures(void)
|
||||||
data = Z_Malloc(size);
|
data = Z_Malloc(size);
|
||||||
memset(data, 255, size);
|
memset(data, 255, size);
|
||||||
if (!TEXVALID(bs.tx_screen))
|
if (!TEXVALID(bs.tx_screen))
|
||||||
bs.tx_screen = GL_AllocNewTexture();
|
bs.tx_screen = GL_AllocNewTexture(bs.scr_w, bs.scr_h);
|
||||||
GL_Bind(bs.tx_screen);
|
GL_Bind(bs.tx_screen);
|
||||||
qglTexImage2D (GL_TEXTURE_2D, 0, GL_RGB, bs.scr_w, bs.scr_h, 0, GL_RGBA, GL_UNSIGNED_BYTE, data);
|
qglTexImage2D (GL_TEXTURE_2D, 0, GL_RGB, bs.scr_w, bs.scr_h, 0, GL_RGBA, GL_UNSIGNED_BYTE, data);
|
||||||
qglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
qglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
||||||
|
|
|
@ -381,7 +381,7 @@ TRACE(("dbg: GLDraw_ReInit: Allocating upload buffers\n"));
|
||||||
GL_EndRendering ();
|
GL_EndRendering ();
|
||||||
GL_DoSwap();
|
GL_DoSwap();
|
||||||
|
|
||||||
cs_texture = GL_AllocNewTexture();
|
cs_texture = GL_AllocNewTexture(16, 16);
|
||||||
|
|
||||||
crosshair_shader = R_RegisterShader("crosshairshader",
|
crosshair_shader = R_RegisterShader("crosshairshader",
|
||||||
"{\n"
|
"{\n"
|
||||||
|
@ -397,7 +397,7 @@ TRACE(("dbg: GLDraw_ReInit: Allocating upload buffers\n"));
|
||||||
GL_SetupSceneProcessingTextures();
|
GL_SetupSceneProcessingTextures();
|
||||||
|
|
||||||
// save a texture slot for translated picture
|
// save a texture slot for translated picture
|
||||||
translate_texture = GL_AllocNewTexture();
|
translate_texture = GL_AllocNewTexture(0, 0);
|
||||||
|
|
||||||
//
|
//
|
||||||
// get the other pics we need
|
// get the other pics we need
|
||||||
|
@ -2406,7 +2406,7 @@ TRACE(("dbg: GL_LoadTexture: new %s\n", identifier));
|
||||||
gltextures = glt;
|
gltextures = glt;
|
||||||
|
|
||||||
strcpy (glt->identifier, identifier);
|
strcpy (glt->identifier, identifier);
|
||||||
glt->texnum = GL_AllocNewTexture();
|
glt->texnum = GL_AllocNewTexture(width, height);
|
||||||
glt->width = width;
|
glt->width = width;
|
||||||
glt->height = height;
|
glt->height = height;
|
||||||
glt->bpp = 8;
|
glt->bpp = 8;
|
||||||
|
@ -2446,7 +2446,7 @@ texid_t GL_LoadTextureFB (char *identifier, int width, int height, qbyte *data,
|
||||||
gltextures = glt;
|
gltextures = glt;
|
||||||
|
|
||||||
strcpy (glt->identifier, identifier);
|
strcpy (glt->identifier, identifier);
|
||||||
glt->texnum = GL_AllocNewTexture();
|
glt->texnum = GL_AllocNewTexture(width, height);
|
||||||
glt->width = width;
|
glt->width = width;
|
||||||
glt->height = height;
|
glt->height = height;
|
||||||
glt->bpp = 8;
|
glt->bpp = 8;
|
||||||
|
@ -2479,7 +2479,7 @@ texid_t GL_LoadTexture8Pal24 (char *identifier, int width, int height, qbyte *da
|
||||||
|
|
||||||
|
|
||||||
strcpy (glt->identifier, identifier);
|
strcpy (glt->identifier, identifier);
|
||||||
glt->texnum = GL_AllocNewTexture();
|
glt->texnum = GL_AllocNewTexture(width, height);
|
||||||
glt->width = width;
|
glt->width = width;
|
||||||
glt->height = height;
|
glt->height = height;
|
||||||
glt->bpp = 24;
|
glt->bpp = 24;
|
||||||
|
@ -2511,7 +2511,7 @@ texid_t GL_LoadTexture8Pal32 (char *identifier, int width, int height, qbyte *da
|
||||||
|
|
||||||
|
|
||||||
strcpy (glt->identifier, identifier);
|
strcpy (glt->identifier, identifier);
|
||||||
glt->texnum = GL_AllocNewTexture();
|
glt->texnum = GL_AllocNewTexture(width, height);
|
||||||
glt->width = width;
|
glt->width = width;
|
||||||
glt->height = height;
|
glt->height = height;
|
||||||
glt->bpp = 32;
|
glt->bpp = 32;
|
||||||
|
@ -2545,7 +2545,7 @@ texid_t GL_LoadTexture32 (char *identifier, int width, int height, void *data, u
|
||||||
gltextures = glt;
|
gltextures = glt;
|
||||||
|
|
||||||
strcpy (glt->identifier, identifier);
|
strcpy (glt->identifier, identifier);
|
||||||
glt->texnum = GL_AllocNewTexture();
|
glt->texnum = GL_AllocNewTexture(width, height);
|
||||||
glt->width = width;
|
glt->width = width;
|
||||||
glt->height = height;
|
glt->height = height;
|
||||||
glt->bpp = 32;
|
glt->bpp = 32;
|
||||||
|
@ -2579,7 +2579,7 @@ texid_t GL_LoadTexture32_BGRA (char *identifier, int width, int height, unsigned
|
||||||
gltextures = glt;
|
gltextures = glt;
|
||||||
|
|
||||||
strcpy (glt->identifier, identifier);
|
strcpy (glt->identifier, identifier);
|
||||||
glt->texnum = GL_AllocNewTexture();
|
glt->texnum = GL_AllocNewTexture(width, height);
|
||||||
glt->width = width;
|
glt->width = width;
|
||||||
glt->height = height;
|
glt->height = height;
|
||||||
glt->bpp = 32;
|
glt->bpp = 32;
|
||||||
|
@ -2626,7 +2626,7 @@ texid_t GL_LoadCompressed(char *name)
|
||||||
gltextures = glt;
|
gltextures = glt;
|
||||||
|
|
||||||
strcpy (glt->identifier, name);
|
strcpy (glt->identifier, name);
|
||||||
glt->texnum = GL_AllocNewTexture();
|
glt->texnum = GL_AllocNewTexture(0, 0);
|
||||||
glt->bpp = 32;
|
glt->bpp = 32;
|
||||||
glt->flags = 0;
|
glt->flags = 0;
|
||||||
|
|
||||||
|
@ -2661,7 +2661,7 @@ texid_t GL_LoadTexture8Grey (char *identifier, int width, int height, unsigned c
|
||||||
gltextures = glt;
|
gltextures = glt;
|
||||||
|
|
||||||
strcpy (glt->identifier, identifier);
|
strcpy (glt->identifier, identifier);
|
||||||
glt->texnum = GL_AllocNewTexture();
|
glt->texnum = GL_AllocNewTexture(width, height);
|
||||||
glt->width = width;
|
glt->width = width;
|
||||||
glt->height = height;
|
glt->height = height;
|
||||||
glt->bpp = 8;
|
glt->bpp = 8;
|
||||||
|
@ -2700,7 +2700,7 @@ texid_t GL_LoadTexture8Bump (char *identifier, int width, int height, unsigned c
|
||||||
gltextures = glt;
|
gltextures = glt;
|
||||||
|
|
||||||
strcpy (glt->identifier, identifier);
|
strcpy (glt->identifier, identifier);
|
||||||
glt->texnum = GL_AllocNewTexture();
|
glt->texnum = GL_AllocNewTexture(width, height);
|
||||||
glt->width = width;
|
glt->width = width;
|
||||||
glt->height = height;
|
glt->height = height;
|
||||||
glt->bpp = 8;
|
glt->bpp = 8;
|
||||||
|
|
|
@ -358,13 +358,13 @@ void GL_SetupSceneProcessingTextures (void)
|
||||||
|
|
||||||
scenepp_fisheye_texture = r_nulltex;
|
scenepp_fisheye_texture = r_nulltex;
|
||||||
|
|
||||||
sceneblur_texture = GL_AllocNewTexture();
|
sceneblur_texture = GL_AllocNewTexture(0, 0);
|
||||||
|
|
||||||
if (!gl_config.arb_shader_objects)
|
if (!gl_config.arb_shader_objects)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
scenepp_texture_warp = GL_AllocNewTexture();
|
scenepp_texture_warp = GL_AllocNewTexture(0, 0);
|
||||||
scenepp_texture_edge = GL_AllocNewTexture();
|
scenepp_texture_edge = GL_AllocNewTexture(0, 0);
|
||||||
|
|
||||||
// init warp texture - this specifies offset in
|
// init warp texture - this specifies offset in
|
||||||
for (y=0; y<PP_WARP_TEX_SIZE; y++)
|
for (y=0; y<PP_WARP_TEX_SIZE; y++)
|
||||||
|
@ -1638,7 +1638,7 @@ qboolean R_RenderScene_Fish(void)
|
||||||
|
|
||||||
if (!TEXVALID(scenepp_fisheye_texture))
|
if (!TEXVALID(scenepp_fisheye_texture))
|
||||||
{
|
{
|
||||||
scenepp_fisheye_texture = GL_AllocNewTexture();
|
scenepp_fisheye_texture = GL_AllocNewTexture(cmapsize, cmapsize);
|
||||||
|
|
||||||
qglDisable(GL_TEXTURE_2D);
|
qglDisable(GL_TEXTURE_2D);
|
||||||
qglEnable(GL_TEXTURE_CUBE_MAP_ARB);
|
qglEnable(GL_TEXTURE_CUBE_MAP_ARB);
|
||||||
|
|
|
@ -245,7 +245,7 @@ void GLR_ReInit (void)
|
||||||
extern int gl_bumpmappingpossible;
|
extern int gl_bumpmappingpossible;
|
||||||
|
|
||||||
|
|
||||||
netgraphtexture = GL_AllocNewTexture();
|
netgraphtexture = GL_AllocNewTexture(0, 0);
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
if (gl_bumpmappingpossible)
|
if (gl_bumpmappingpossible)
|
||||||
|
|
|
@ -1782,6 +1782,7 @@ void Shader_Shutdown (void)
|
||||||
|
|
||||||
void Shader_SetBlendmode (shaderpass_t *pass)
|
void Shader_SetBlendmode (shaderpass_t *pass)
|
||||||
{
|
{
|
||||||
|
#ifdef GLQUAKE /*FIXME: move to backnd*/
|
||||||
if (pass->texgen == T_GEN_DELUXMAP)
|
if (pass->texgen == T_GEN_DELUXMAP)
|
||||||
{
|
{
|
||||||
pass->blendmode = GL_DOT3_RGB_ARB;
|
pass->blendmode = GL_DOT3_RGB_ARB;
|
||||||
|
@ -1820,6 +1821,7 @@ void Shader_SetBlendmode (shaderpass_t *pass)
|
||||||
pass->blendmode = GL_DECAL;
|
pass->blendmode = GL_DECAL;
|
||||||
else
|
else
|
||||||
pass->blendmode = GL_MODULATE;
|
pass->blendmode = GL_MODULATE;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void Shader_Readpass (shader_t *shader, char **ptr)
|
void Shader_Readpass (shader_t *shader, char **ptr)
|
||||||
|
|
|
@ -1395,7 +1395,7 @@ void Sh_GenShadowMap (dlight_t *l, qbyte *lvis)
|
||||||
|
|
||||||
if (!TEXVALID(l->stexture))
|
if (!TEXVALID(l->stexture))
|
||||||
{
|
{
|
||||||
l->stexture = GL_AllocNewTexture();
|
l->stexture = GL_AllocNewTexture(smsize, smsize);
|
||||||
|
|
||||||
checkerror();
|
checkerror();
|
||||||
|
|
||||||
|
|
|
@ -304,7 +304,7 @@ qboolean GL_CheckExtension(char *extname)
|
||||||
return !!strstr(gl_extensions, extname);
|
return !!strstr(gl_extensions, extname);
|
||||||
}
|
}
|
||||||
|
|
||||||
texid_t GL_AllocNewTexture(void)
|
texid_t GL_AllocNewTexture(int w, int h)
|
||||||
{
|
{
|
||||||
texid_t r;
|
texid_t r;
|
||||||
qglGenTextures(1, &r.num);
|
qglGenTextures(1, &r.num);
|
||||||
|
@ -984,6 +984,15 @@ rendererinfo_t openglrendererinfo = {
|
||||||
R2D_Image,
|
R2D_Image,
|
||||||
R2D_ImageColours,
|
R2D_ImageColours,
|
||||||
|
|
||||||
|
GL_LoadTextureFmt,
|
||||||
|
GL_LoadTexture8Pal24,
|
||||||
|
GL_LoadTexture8Pal32,
|
||||||
|
GL_LoadCompressed,
|
||||||
|
GL_FindTexture,
|
||||||
|
GL_AllocNewTexture,
|
||||||
|
GL_UploadFmt,
|
||||||
|
GL_DestroyTexture,
|
||||||
|
|
||||||
GLR_Init,
|
GLR_Init,
|
||||||
GLR_DeInit,
|
GLR_DeInit,
|
||||||
GLR_RenderView,
|
GLR_RenderView,
|
||||||
|
|
|
@ -3361,6 +3361,8 @@ void SV_Frame (void)
|
||||||
svs.stats.idle += start - end;
|
svs.stats.idle += start - end;
|
||||||
end = start;
|
end = start;
|
||||||
svs.framenum++;
|
svs.framenum++;
|
||||||
|
if (svs.framenum > 0x10000)
|
||||||
|
svs.framenum = 0;
|
||||||
|
|
||||||
// keep the random time dependent
|
// keep the random time dependent
|
||||||
rand ();
|
rand ();
|
||||||
|
|
|
@ -1836,7 +1836,7 @@ void SV_RunEntity (edict_t *ent)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (ent->v->lastruntime == svs.framenum)
|
if ((unsigned int)ent->v->lastruntime == svs.framenum)
|
||||||
return;
|
return;
|
||||||
ent->v->lastruntime = svs.framenum;
|
ent->v->lastruntime = svs.framenum;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue