Fixed up some stuff so it actually compiles now. Also corrected pixel offsets on d3d chars so fonts are like in GL. Removed the unneeded gl_ppl file.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/branches/wip@3403 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
parent
260713ec34
commit
f6b3416ce7
11 changed files with 66 additions and 5714 deletions
|
@ -6,8 +6,11 @@
|
|||
refdef_t r_refdef;
|
||||
vec3_t r_origin, vpn, vright, vup;
|
||||
entity_t r_worldentity;
|
||||
entity_t *currententity;
|
||||
entity_t *currententity; //nnggh
|
||||
model_t *currentmodel; //fixme: remove? or fix.
|
||||
int sh_shadowframe; //index for msurf->shadowframe
|
||||
int r_framecount;
|
||||
struct texture_s *r_notexture_mip;
|
||||
|
||||
|
||||
void R_InitParticleTexture (void);
|
||||
|
|
|
@ -63,6 +63,8 @@ FTE_DEPRECATED unsigned conheight;
|
|||
|
||||
unsigned pixelwidth;
|
||||
unsigned pixelheight;
|
||||
|
||||
float pixeloffset; //Add this to the 1:1 vertex coord to place quads and stuff in the right places.
|
||||
} viddef_t;
|
||||
|
||||
extern viddef_t vid; // global video state
|
||||
|
|
|
@ -1198,17 +1198,17 @@ void Matrix4_OrthographicD3D(float *proj, float xmin, float xmax, float ymax, fl
|
|||
proj[0] = 2/(xmax-xmin);
|
||||
proj[4] = 0;
|
||||
proj[8] = 0;
|
||||
proj[12] = (xmax+xmin)/(xmax-xmin);
|
||||
proj[12] = (xmax+xmin)/(xmin-xmax);
|
||||
|
||||
proj[1] = 0;
|
||||
proj[5] = 2/(ymax-ymin);
|
||||
proj[9] = 0;
|
||||
proj[13] = (ymax+ymin)/(ymax-ymin);
|
||||
proj[13] = (ymax+ymin)/(ymin-ymax);
|
||||
|
||||
proj[2] = 0;
|
||||
proj[6] = 0;
|
||||
proj[10] = -2/(zfar-znear);
|
||||
proj[14] = (zfar+znear)/(zfar-znear);
|
||||
proj[10] = 1/(znear-zfar);
|
||||
proj[14] = znear/(znear-zfar);
|
||||
|
||||
proj[3] = 0;
|
||||
proj[7] = 0;
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
#include "quakedef.h"
|
||||
#ifdef D3DQUAKE
|
||||
#include "shader.h"
|
||||
|
||||
#include <d3d9.h>
|
||||
|
@ -156,4 +157,5 @@ void BE_SelectMode(backendmode_t mode, unsigned int flags)
|
|||
|
||||
void BE_ClearVBO(vbo_t *vbo)
|
||||
{
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#include "quakedef.h"
|
||||
|
||||
#ifdef D3DQUAKE
|
||||
#include <d3d9.h>
|
||||
LPDIRECT3DDEVICE9 pD3DDev9;
|
||||
|
||||
|
@ -284,3 +284,4 @@ texid_t D3D_FindTexture (char *identifier)
|
|||
{
|
||||
return r_nulltex;
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -70,28 +70,6 @@ RECT window_rect;
|
|||
int window_x, window_y;
|
||||
|
||||
|
||||
/*
|
||||
struct texture_s *r_notexture_mip;
|
||||
|
||||
int r_framecount;
|
||||
|
||||
mleaf_t *r_viewleaf;
|
||||
|
||||
#define MAX_MOD_KNOWN 1024
|
||||
int mod_numknown;
|
||||
model_t mod_known[MAX_MOD_KNOWN];
|
||||
model_t *loadmodel;
|
||||
model_t *currentmodel;
|
||||
char loadname[32];
|
||||
qbyte *mod_base;
|
||||
|
||||
model_t *lightmodel;
|
||||
int relitsurface;
|
||||
|
||||
mpic_t *draw_disc; // also used on sbar
|
||||
|
||||
int d3d9width, d3d9height;
|
||||
*/
|
||||
void BuildGammaTable (float g, float c);
|
||||
static void D3D9_VID_GenPaletteTables (unsigned char *palette)
|
||||
{
|
||||
|
@ -333,10 +311,10 @@ static LRESULT WINAPI D3D9_WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARA
|
|||
case WM_SIZE:
|
||||
if (!vid_initializing)
|
||||
{
|
||||
GetWindowRect(mainwindow, &window_rect);
|
||||
GetClientRect(mainwindow, &window_rect);
|
||||
// force width/height to be updated
|
||||
// glwidth = window_rect.right - window_rect.left;
|
||||
// glheight = window_rect.bottom - window_rect.top;
|
||||
vid.pixelwidth = window_rect.right - window_rect.left;
|
||||
vid.pixelheight = window_rect.bottom - window_rect.top;
|
||||
// Cvar_ForceCallback(&vid_conautoscale);
|
||||
// Cvar_ForceCallback(&vid_conwidth);
|
||||
}
|
||||
|
@ -400,7 +378,7 @@ static void resetD3D9(void)
|
|||
|
||||
/*clear the screen to black as soon as we start up, so there's no lingering framebuffer state*/
|
||||
IDirect3DDevice9_BeginScene(pD3DDev9);
|
||||
IDirect3DDevice9_Clear(pD3DDev9, 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0);
|
||||
IDirect3DDevice9_Clear(pD3DDev9, 0, NULL, D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0);
|
||||
IDirect3DDevice9_EndScene(pD3DDev9);
|
||||
IDirect3DDevice9_Present(pD3DDev9, NULL, NULL, NULL, NULL);
|
||||
|
||||
|
@ -431,6 +409,7 @@ static void initD3D9(HWND hWnd, rendererstate_t *info)
|
|||
int i;
|
||||
int numadaptors;
|
||||
int err;
|
||||
RECT rect;
|
||||
D3DADAPTER_IDENTIFIER9 inf;
|
||||
extern cvar_t _vid_wait_override;
|
||||
|
||||
|
@ -509,6 +488,8 @@ static void initD3D9(HWND hWnd, rendererstate_t *info)
|
|||
*s = 0;
|
||||
Con_Printf("D3D9: Using device %s\n", inf.Description);
|
||||
|
||||
vid.numpages = d3dpp.BackBufferCount;
|
||||
|
||||
if (d3dpp.Windowed) //fullscreen we get positioned automagically.
|
||||
{ //windowed, we get positioned at 0,0... which is often going to be on the wrong screen
|
||||
//the user can figure it out from here
|
||||
|
@ -526,7 +507,11 @@ static void initD3D9(HWND hWnd, rendererstate_t *info)
|
|||
memset(&mi, 0, sizeof(mi));
|
||||
mi.cbSize = sizeof(mi);
|
||||
pGetMonitorInfoA(hm, &mi);
|
||||
MoveWindow(d3dpp.hDeviceWindow, mi.rcWork.left, mi.rcWork.top, d3dpp.BackBufferWidth, d3dpp.BackBufferHeight, false);
|
||||
rect.left = rect.top = 0;
|
||||
rect.right = d3dpp.BackBufferWidth;
|
||||
rect.bottom = d3dpp.BackBufferHeight;
|
||||
AdjustWindowRectEx(&rect, WS_OVERLAPPEDWINDOW, FALSE, 0);
|
||||
MoveWindow(d3dpp.hDeviceWindow, mi.rcWork.left, mi.rcWork.top, rect.right-rect.left, rect.bottom-rect.top, false);
|
||||
}
|
||||
return; //successful
|
||||
}
|
||||
|
@ -546,6 +531,8 @@ static qboolean D3D9_VID_Init(rendererstate_t *info, unsigned char *palette)
|
|||
DWORD bpp = info->bpp;
|
||||
DWORD zbpp = 16;
|
||||
DWORD flags = 0;
|
||||
DWORD wstyle;
|
||||
RECT rect;
|
||||
MSG msg;
|
||||
|
||||
extern cvar_t vid_conwidth;
|
||||
|
@ -573,13 +560,16 @@ static qboolean D3D9_VID_Init(rendererstate_t *info, unsigned char *palette)
|
|||
RegisterClass(&wc);
|
||||
|
||||
if (info->fullscreen)
|
||||
mainwindow = CreateWindow(CLASSNAME, "Direct3D", 0, 0, 0, width, height, NULL, NULL, NULL, NULL);
|
||||
wstyle = 0;
|
||||
else
|
||||
mainwindow = CreateWindow(CLASSNAME, "Direct3D", WS_OVERLAPPEDWINDOW, 0, 0, width, height, NULL, NULL, NULL, NULL);
|
||||
/*
|
||||
width = vid_conwidth.value;
|
||||
height = vid_conheight.value;
|
||||
*/
|
||||
wstyle = WS_OVERLAPPEDWINDOW;
|
||||
|
||||
rect.left = rect.top = 0;
|
||||
rect.right = info->width;
|
||||
rect.bottom = info->height;
|
||||
AdjustWindowRectEx(&rect, wstyle, FALSE, 0);
|
||||
mainwindow = CreateWindow(CLASSNAME, "Direct3D", wstyle, 0, 0, rect.right-rect.left, rect.bottom-rect.top, NULL, NULL, NULL, NULL);
|
||||
|
||||
// Try as specified.
|
||||
|
||||
initD3D9(mainwindow, info);
|
||||
|
@ -608,6 +598,7 @@ static qboolean D3D9_VID_Init(rendererstate_t *info, unsigned char *palette)
|
|||
// pD3DX->lpVtbl->GetBufferSize((void*)pD3DX, &width, &height);
|
||||
vid.pixelwidth = width;
|
||||
vid.pixelheight = height;
|
||||
vid.pixeloffset = -0.5;
|
||||
vid.recalc_refdef = true;
|
||||
|
||||
vid.width = vid.conwidth = width;
|
||||
|
@ -627,7 +618,7 @@ static qboolean D3D9_VID_Init(rendererstate_t *info, unsigned char *palette)
|
|||
|
||||
|
||||
resetD3D9();
|
||||
/*
|
||||
|
||||
|
||||
|
||||
IDirect3DDevice9_SetRenderState(pD3DDev9, D3DRS_ALPHAFUNC, D3DCMP_GREATER );
|
||||
|
@ -645,7 +636,7 @@ resetD3D9();
|
|||
|
||||
IDirect3DDevice9_SetRenderState(pD3DDev9, D3DRS_ZFUNC, D3DCMP_LESSEQUAL);
|
||||
|
||||
*/
|
||||
|
||||
GetWindowRect(mainwindow, &window_rect);
|
||||
|
||||
|
||||
|
@ -778,7 +769,6 @@ static void D3D9_Set2D (void)
|
|||
// IDirect3DDevice9_EndScene(pD3DDev9);
|
||||
|
||||
Matrix4_OrthographicD3D(m, 0, vid.width, 0, vid.height, -100, 100);
|
||||
d3dx_ortho(m);
|
||||
IDirect3DDevice9_SetTransform(pD3DDev9, D3DTS_PROJECTION, (D3DMATRIX*)m);
|
||||
|
||||
Matrix4_Identity(m);
|
||||
|
@ -1138,9 +1128,7 @@ static void (D3D9_R_Init) (void)
|
|||
static void (D3D9_R_DeInit) (void)
|
||||
{
|
||||
}
|
||||
static void (D3D9_R_ReInit) (void)
|
||||
{
|
||||
}
|
||||
|
||||
static void (D3D9_R_RenderView) (void)
|
||||
{
|
||||
d3d9error(IDirect3DDevice9_Clear(pD3DDev9, 0, NULL, D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0,0,0), 1, 0));
|
||||
|
@ -1184,29 +1172,28 @@ rendererinfo_t d3drendererinfo =
|
|||
},
|
||||
QR_DIRECT3D,
|
||||
|
||||
R_SafePicFromWad,
|
||||
R_SafeCachePic,
|
||||
R2D_SafePicFromWad,
|
||||
R2D_SafeCachePic,
|
||||
D3D9_Draw_Init,
|
||||
D3D9_Draw_ReInit,
|
||||
D3D9_Draw_Crosshair,
|
||||
R_ScalePic,
|
||||
R_SubPic,
|
||||
R2D_ScalePic,
|
||||
R2D_SubPic,
|
||||
D3D9_Draw_TransPicTranslate,
|
||||
R_ConsoleBackground,
|
||||
R_EditorBackground,
|
||||
R_TileClear,
|
||||
R2D_ConsoleBackground,
|
||||
R2D_EditorBackground,
|
||||
R2D_TileClear,
|
||||
D3D9_Draw_Fill,
|
||||
D3D9_Draw_FillRGB,
|
||||
D3D9_Draw_FadeScreen,
|
||||
D3D9_Draw_BeginDisc,
|
||||
D3D9_Draw_EndDisc,
|
||||
|
||||
R_Image,
|
||||
R_ImageColours,
|
||||
R2D_Image,
|
||||
R2D_ImageColours,
|
||||
|
||||
R2D_Init,
|
||||
D3D9_R_Init,
|
||||
D3D9_R_DeInit,
|
||||
D3D9_R_ReInit,
|
||||
D3D9_R_RenderView,
|
||||
|
||||
D3D9_R_NewMap,
|
||||
|
|
|
@ -29369,44 +29369,16 @@
|
|||
Name="d3d"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\d3dm\d3d_backend.c"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="GLDebug|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\d3dm\d3d_image.c"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="GLDebug|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\d3dm\d3d_sucks.c"
|
||||
RelativePath="..\d3d\d3d_backend.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\d3dm\vid_d3d.c"
|
||||
RelativePath="..\d3d\d3d_image.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\d3d\vid_d3d.c"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="GLDebug|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Filter>
|
||||
</Filter>
|
||||
|
|
|
@ -1033,8 +1033,8 @@ int Font_DrawChar(int px, int py, unsigned int charcode)
|
|||
|
||||
if (c->texplane >= DEFAULTPLANE)
|
||||
{
|
||||
sx = ((px+c->left)*(int)vid.width) / (float)vid.pixelwidth;
|
||||
sy = ((py+c->top)*(int)vid.height) / (float)vid.pixelheight;
|
||||
sx = ((px+vid.pixeloffset+c->left)*(int)vid.width) / (float)vid.pixelwidth;
|
||||
sy = ((py+vid.pixeloffset+c->top)*(int)vid.height) / (float)vid.pixelheight;
|
||||
sw = ((curfont->charheight)*vid.width) / (float)vid.pixelwidth;
|
||||
sh = ((curfont->charheight)*vid.height) / (float)vid.pixelheight;
|
||||
|
||||
|
@ -1045,10 +1045,10 @@ int Font_DrawChar(int px, int py, unsigned int charcode)
|
|||
}
|
||||
else
|
||||
{
|
||||
sx = ((px+c->left)*(int)vid.width) / (float)vid.pixelwidth;
|
||||
sy = ((py+c->top)*(int)vid.height) / (float)vid.pixelheight;
|
||||
sw = ((c->bmw)*vid.width) / (float)vid.pixelwidth;
|
||||
sh = ((c->bmh)*vid.height) / (float)vid.pixelheight;
|
||||
sx = ((px-0.5+c->left)*(int)vid.width) / (float)vid.pixelwidth;
|
||||
sy = ((py-0.5+c->top)*(int)vid.height) / (float)vid.pixelheight;
|
||||
sw = ((c->bmw+1)*vid.width) / (float)vid.pixelwidth;
|
||||
sh = ((c->bmh+1)*vid.height) / (float)vid.pixelheight;
|
||||
v = Font_BeginChar(fontplanes.texnum[c->texplane]);
|
||||
}
|
||||
|
||||
|
|
5616
engine/gl/gl_ppl.c
5616
engine/gl/gl_ppl.c
File diff suppressed because it is too large
Load diff
|
@ -46,7 +46,7 @@ entity_t r_worldentity;
|
|||
vec3_t modelorg, r_entorigin;
|
||||
|
||||
int r_visframecount; // bumped when going to a new PVS
|
||||
int r_framecount; // used for dlight push checking
|
||||
extern int r_framecount; // used for dlight push checking
|
||||
|
||||
float r_wateralphaval; //allowed or not...
|
||||
|
||||
|
|
|
@ -501,6 +501,7 @@ qboolean VID_SetWindowedMode (rendererstate_t *info)
|
|||
vid.conwidth = info->width;
|
||||
vid.width = vid.conwidth;
|
||||
vid.height = vid.conheight;
|
||||
vid.pixeloffset = 0;
|
||||
|
||||
vid.numpages = 2;
|
||||
|
||||
|
|
Loading…
Reference in a new issue