mirror of
https://github.com/ZDoom/qzdoom-gpl.git
synced 2025-03-07 09:22:11 +00:00
Removal of the software renderer, part 1.
This commit is contained in:
parent
45bcd8b31c
commit
eec89b7575
9 changed files with 10 additions and 376 deletions
|
@ -805,7 +805,6 @@ set( NOT_COMPILED_SOURCE_FILES
|
||||||
)
|
)
|
||||||
|
|
||||||
set( FASTMATH_PCH_SOURCES
|
set( FASTMATH_PCH_SOURCES
|
||||||
r_swrenderer.cpp
|
|
||||||
r_3dfloors.cpp
|
r_3dfloors.cpp
|
||||||
r_bsp.cpp
|
r_bsp.cpp
|
||||||
r_draw.cpp
|
r_draw.cpp
|
||||||
|
|
|
@ -48,7 +48,6 @@
|
||||||
#include "m_argv.h"
|
#include "m_argv.h"
|
||||||
#include "m_png.h"
|
#include "m_png.h"
|
||||||
#include "r_renderer.h"
|
#include "r_renderer.h"
|
||||||
#include "r_swrenderer.h"
|
|
||||||
#include "st_console.h"
|
#include "st_console.h"
|
||||||
#include "stats.h"
|
#include "stats.h"
|
||||||
#include "textures.h"
|
#include "textures.h"
|
||||||
|
@ -1617,15 +1616,13 @@ static void I_DeleteRenderer()
|
||||||
|
|
||||||
void I_CreateRenderer()
|
void I_CreateRenderer()
|
||||||
{
|
{
|
||||||
s_currentRenderer = vid_renderer;
|
//s_currentRenderer = vid_renderer;
|
||||||
|
|
||||||
if (NULL == Renderer)
|
if (NULL == Renderer)
|
||||||
{
|
{
|
||||||
extern FRenderer* gl_CreateInterface();
|
extern FRenderer* gl_CreateInterface();
|
||||||
|
|
||||||
Renderer = 1 == s_currentRenderer
|
Renderer = gl_CreateInterface();
|
||||||
? gl_CreateInterface()
|
|
||||||
: new FSoftwareRenderer;
|
|
||||||
atterm(I_DeleteRenderer);
|
atterm(I_DeleteRenderer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,7 +49,6 @@
|
||||||
#include "m_argv.h"
|
#include "m_argv.h"
|
||||||
#include "sdlglvideo.h"
|
#include "sdlglvideo.h"
|
||||||
#include "r_renderer.h"
|
#include "r_renderer.h"
|
||||||
#include "r_swrenderer.h"
|
|
||||||
|
|
||||||
EXTERN_CVAR (Bool, ticker)
|
EXTERN_CVAR (Bool, ticker)
|
||||||
EXTERN_CVAR (Bool, fullscreen)
|
EXTERN_CVAR (Bool, fullscreen)
|
||||||
|
@ -66,22 +65,16 @@ int currentrenderer;
|
||||||
// [ZDoomGL]
|
// [ZDoomGL]
|
||||||
CUSTOM_CVAR (Int, vid_renderer, 1, CVAR_ARCHIVE | CVAR_GLOBALCONFIG | CVAR_NOINITCALL)
|
CUSTOM_CVAR (Int, vid_renderer, 1, CVAR_ARCHIVE | CVAR_GLOBALCONFIG | CVAR_NOINITCALL)
|
||||||
{
|
{
|
||||||
// 0: Software renderer
|
|
||||||
// 1: OpenGL renderer
|
|
||||||
|
|
||||||
if (self != currentrenderer)
|
if (self != currentrenderer)
|
||||||
{
|
{
|
||||||
switch (self)
|
switch (self)
|
||||||
{
|
{
|
||||||
case 0:
|
|
||||||
Printf("Switching to software renderer...\n");
|
|
||||||
break;
|
|
||||||
case 1:
|
case 1:
|
||||||
Printf("Switching to OpenGL renderer...\n");
|
Printf("Switching to OpenGL renderer...\n");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
Printf("Unknown renderer (%d). Falling back to software renderer...\n", (int) vid_renderer);
|
Printf("Unknown renderer (%d). Falling back to the OpenGL renderer...\n", (int) vid_renderer);
|
||||||
self = 0; // make sure to actually switch to the software renderer
|
self = 1; // make sure to actually switch to the OpenGL renderer
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
Printf("You must restart " GAMENAME " to switch the renderer\n");
|
Printf("You must restart " GAMENAME " to switch the renderer\n");
|
||||||
|
@ -137,11 +130,10 @@ static void I_DeleteRenderer()
|
||||||
|
|
||||||
void I_CreateRenderer()
|
void I_CreateRenderer()
|
||||||
{
|
{
|
||||||
currentrenderer = vid_renderer;
|
//currentrenderer = vid_renderer;
|
||||||
if (Renderer == NULL)
|
if (Renderer == NULL)
|
||||||
{
|
{
|
||||||
if (currentrenderer==1) Renderer = gl_CreateInterface();
|
Renderer = gl_CreateInterface();
|
||||||
else Renderer = new FSoftwareRenderer;
|
|
||||||
atterm(I_DeleteRenderer);
|
atterm(I_DeleteRenderer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,6 @@
|
||||||
#include "stats.h"
|
#include "stats.h"
|
||||||
#include "v_palette.h"
|
#include "v_palette.h"
|
||||||
#include "sdlvideo.h"
|
#include "sdlvideo.h"
|
||||||
#include "r_swrenderer.h"
|
|
||||||
#include "version.h"
|
#include "version.h"
|
||||||
|
|
||||||
#include <SDL.h>
|
#include <SDL.h>
|
||||||
|
|
|
@ -1,302 +0,0 @@
|
||||||
/*
|
|
||||||
** r_swrender.cpp
|
|
||||||
** Software renderer interface
|
|
||||||
**
|
|
||||||
**---------------------------------------------------------------------------
|
|
||||||
** Copyright 2011 Christoph Oelckers
|
|
||||||
** All rights reserved.
|
|
||||||
**
|
|
||||||
** Redistribution and use in source and binary forms, with or without
|
|
||||||
** modification, are permitted provided that the following conditions
|
|
||||||
** are met:
|
|
||||||
**
|
|
||||||
** 1. Redistributions of source code must retain the above copyright
|
|
||||||
** notice, this list of conditions and the following disclaimer.
|
|
||||||
** 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
** notice, this list of conditions and the following disclaimer in the
|
|
||||||
** documentation and/or other materials provided with the distribution.
|
|
||||||
** 3. The name of the author may not be used to endorse or promote products
|
|
||||||
** derived from this software without specific prior written permission.
|
|
||||||
**
|
|
||||||
** THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
|
||||||
** IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
||||||
** OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
|
||||||
** IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
||||||
** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
|
||||||
** NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
||||||
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
||||||
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
||||||
** THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
**---------------------------------------------------------------------------
|
|
||||||
**
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include "r_local.h"
|
|
||||||
#include "v_palette.h"
|
|
||||||
#include "v_video.h"
|
|
||||||
#include "m_png.h"
|
|
||||||
#include "r_bsp.h"
|
|
||||||
#include "r_swrenderer.h"
|
|
||||||
#include "r_3dfloors.h"
|
|
||||||
#include "textures/textures.h"
|
|
||||||
#include "r_data/voxels.h"
|
|
||||||
|
|
||||||
|
|
||||||
class FArchive;
|
|
||||||
void R_SWRSetWindow(int windowSize, int fullWidth, int fullHeight, int stHeight, int trueratio);
|
|
||||||
void R_SetupColormap(player_t *);
|
|
||||||
void R_SetupFreelook();
|
|
||||||
void R_InitRenderer();
|
|
||||||
|
|
||||||
extern float LastFOV;
|
|
||||||
|
|
||||||
//==========================================================================
|
|
||||||
//
|
|
||||||
// DCanvas :: Init
|
|
||||||
//
|
|
||||||
//==========================================================================
|
|
||||||
|
|
||||||
void FSoftwareRenderer::Init()
|
|
||||||
{
|
|
||||||
R_InitRenderer();
|
|
||||||
}
|
|
||||||
|
|
||||||
//==========================================================================
|
|
||||||
//
|
|
||||||
// DCanvas :: UsesColormap
|
|
||||||
//
|
|
||||||
//==========================================================================
|
|
||||||
|
|
||||||
bool FSoftwareRenderer::UsesColormap() const
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
//===========================================================================
|
|
||||||
//
|
|
||||||
// Texture precaching
|
|
||||||
//
|
|
||||||
//===========================================================================
|
|
||||||
|
|
||||||
void FSoftwareRenderer::PrecacheTexture(FTexture *tex, int cache)
|
|
||||||
{
|
|
||||||
if (tex != NULL)
|
|
||||||
{
|
|
||||||
if (cache & FTextureManager::HIT_Columnmode)
|
|
||||||
{
|
|
||||||
const FTexture::Span *spanp;
|
|
||||||
tex->GetColumn(0, &spanp);
|
|
||||||
}
|
|
||||||
else if (cache != 0)
|
|
||||||
{
|
|
||||||
tex->GetPixels ();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
tex->Unload ();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//===========================================================================
|
|
||||||
//
|
|
||||||
// Render the view
|
|
||||||
//
|
|
||||||
//===========================================================================
|
|
||||||
|
|
||||||
void FSoftwareRenderer::RenderView(player_t *player)
|
|
||||||
{
|
|
||||||
R_RenderActorView (player->mo);
|
|
||||||
// [RH] Let cameras draw onto textures that were visible this frame.
|
|
||||||
FCanvasTextureInfo::UpdateAll ();
|
|
||||||
}
|
|
||||||
|
|
||||||
//==========================================================================
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//==========================================================================
|
|
||||||
|
|
||||||
void FSoftwareRenderer::RemapVoxels()
|
|
||||||
{
|
|
||||||
for (unsigned i=0; i<Voxels.Size(); i++)
|
|
||||||
{
|
|
||||||
Voxels[i]->Remap();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//===========================================================================
|
|
||||||
//
|
|
||||||
// Render the view to a savegame picture
|
|
||||||
//
|
|
||||||
//===========================================================================
|
|
||||||
|
|
||||||
void FSoftwareRenderer::WriteSavePic (player_t *player, FILE *file, int width, int height)
|
|
||||||
{
|
|
||||||
DCanvas *pic = new DSimpleCanvas (width, height);
|
|
||||||
PalEntry palette[256];
|
|
||||||
|
|
||||||
// Take a snapshot of the player's view
|
|
||||||
pic->ObjectFlags |= OF_Fixed;
|
|
||||||
pic->Lock ();
|
|
||||||
R_RenderViewToCanvas (player->mo, pic, 0, 0, width, height);
|
|
||||||
screen->GetFlashedPalette (palette);
|
|
||||||
M_CreatePNG (file, pic->GetBuffer(), palette, SS_PAL, width, height, pic->GetPitch());
|
|
||||||
pic->Unlock ();
|
|
||||||
pic->Destroy();
|
|
||||||
pic->ObjectFlags |= OF_YesReallyDelete;
|
|
||||||
delete pic;
|
|
||||||
}
|
|
||||||
|
|
||||||
//===========================================================================
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//===========================================================================
|
|
||||||
|
|
||||||
void FSoftwareRenderer::DrawRemainingPlayerSprites()
|
|
||||||
{
|
|
||||||
R_DrawRemainingPlayerSprites();
|
|
||||||
}
|
|
||||||
|
|
||||||
//===========================================================================
|
|
||||||
//
|
|
||||||
// Get max. view angle (renderer specific information so it goes here now)
|
|
||||||
//
|
|
||||||
//===========================================================================
|
|
||||||
#define MAX_DN_ANGLE 56 // Max looking down angle
|
|
||||||
#define MAX_UP_ANGLE 32 // Max looking up angle
|
|
||||||
|
|
||||||
int FSoftwareRenderer::GetMaxViewPitch(bool down)
|
|
||||||
{
|
|
||||||
return down ? MAX_DN_ANGLE : MAX_UP_ANGLE;
|
|
||||||
}
|
|
||||||
|
|
||||||
//==========================================================================
|
|
||||||
//
|
|
||||||
// OnModeSet
|
|
||||||
//
|
|
||||||
// Called from V_SetResolution()
|
|
||||||
//
|
|
||||||
//==========================================================================
|
|
||||||
|
|
||||||
void FSoftwareRenderer::OnModeSet ()
|
|
||||||
{
|
|
||||||
R_MultiresInit ();
|
|
||||||
|
|
||||||
RenderTarget = screen;
|
|
||||||
screen->Lock (true);
|
|
||||||
R_SetupBuffer ();
|
|
||||||
screen->Unlock ();
|
|
||||||
}
|
|
||||||
|
|
||||||
//===========================================================================
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//===========================================================================
|
|
||||||
|
|
||||||
void FSoftwareRenderer::ErrorCleanup ()
|
|
||||||
{
|
|
||||||
fakeActive = 0;
|
|
||||||
fake3D = 0;
|
|
||||||
while (CurrentSkybox)
|
|
||||||
{
|
|
||||||
R_3D_DeleteHeights();
|
|
||||||
R_3D_LeaveSkybox();
|
|
||||||
}
|
|
||||||
R_3D_ResetClip();
|
|
||||||
R_3D_DeleteHeights();
|
|
||||||
}
|
|
||||||
|
|
||||||
//===========================================================================
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//===========================================================================
|
|
||||||
|
|
||||||
void FSoftwareRenderer::ClearBuffer(int color)
|
|
||||||
{
|
|
||||||
memset(RenderTarget->GetBuffer(), color, RenderTarget->GetPitch() * RenderTarget->GetHeight());
|
|
||||||
}
|
|
||||||
|
|
||||||
//===========================================================================
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//===========================================================================
|
|
||||||
|
|
||||||
void FSoftwareRenderer::SetWindow (int windowSize, int fullWidth, int fullHeight, int stHeight, int trueratio)
|
|
||||||
{
|
|
||||||
R_SWRSetWindow(windowSize, fullWidth, fullHeight, stHeight, trueratio);
|
|
||||||
}
|
|
||||||
|
|
||||||
//===========================================================================
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//===========================================================================
|
|
||||||
|
|
||||||
void FSoftwareRenderer::SetupFrame(player_t *player)
|
|
||||||
{
|
|
||||||
R_SetupColormap(player);
|
|
||||||
R_SetupFreelook();
|
|
||||||
}
|
|
||||||
|
|
||||||
//==========================================================================
|
|
||||||
//
|
|
||||||
// R_CopyStackedViewParameters
|
|
||||||
//
|
|
||||||
//==========================================================================
|
|
||||||
|
|
||||||
void FSoftwareRenderer::CopyStackedViewParameters()
|
|
||||||
{
|
|
||||||
R_CopyStackedViewParameters();
|
|
||||||
}
|
|
||||||
|
|
||||||
//==========================================================================
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//==========================================================================
|
|
||||||
|
|
||||||
void FSoftwareRenderer::RenderTextureView (FCanvasTexture *tex, AActor *viewpoint, int fov)
|
|
||||||
{
|
|
||||||
BYTE *Pixels = const_cast<BYTE*>(tex->GetPixels());
|
|
||||||
DSimpleCanvas *Canvas = tex->GetCanvas();
|
|
||||||
|
|
||||||
// curse Doom's overuse of global variables in the renderer.
|
|
||||||
// These get clobbered by rendering to a camera texture but they need to be preserved so the final rendering can be done with the correct palette.
|
|
||||||
unsigned char *savecolormap = fixedcolormap;
|
|
||||||
FSpecialColormap *savecm = realfixedcolormap;
|
|
||||||
|
|
||||||
float savedfov = LastFOV;
|
|
||||||
R_SetFOV ((float)fov);
|
|
||||||
R_RenderViewToCanvas (viewpoint, Canvas, 0, 0, tex->GetWidth(), tex->GetHeight(), tex->bFirstUpdate);
|
|
||||||
R_SetFOV (savedfov);
|
|
||||||
if (Pixels == Canvas->GetBuffer())
|
|
||||||
{
|
|
||||||
FTexture::FlipSquareBlockRemap (Pixels, tex->GetWidth(), tex->GetHeight(), GPalette.Remap);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
FTexture::FlipNonSquareBlockRemap (Pixels, Canvas->GetBuffer(), tex->GetWidth(), tex->GetHeight(), Canvas->GetPitch(), GPalette.Remap);
|
|
||||||
}
|
|
||||||
tex->SetUpdated();
|
|
||||||
fixedcolormap = savecolormap;
|
|
||||||
realfixedcolormap = savecm;
|
|
||||||
}
|
|
||||||
|
|
||||||
//==========================================================================
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//
|
|
||||||
//==========================================================================
|
|
||||||
|
|
||||||
sector_t *FSoftwareRenderer::FakeFlat(sector_t *sec, sector_t *tempsec, int *floorlightlevel, int *ceilinglightlevel, bool back)
|
|
||||||
{
|
|
||||||
return R_FakeFlat(sec, tempsec, floorlightlevel, ceilinglightlevel, back);
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,41 +0,0 @@
|
||||||
#ifndef __R_SWRENDERER_H
|
|
||||||
#define __R_SWRENDERER_H
|
|
||||||
|
|
||||||
#include "r_renderer.h"
|
|
||||||
|
|
||||||
struct FSoftwareRenderer : public FRenderer
|
|
||||||
{
|
|
||||||
// Can be overridden so that the colormaps for sector color/fade won't be built.
|
|
||||||
virtual bool UsesColormap() const;
|
|
||||||
|
|
||||||
// precache one texture
|
|
||||||
virtual void PrecacheTexture(FTexture *tex, int cache);
|
|
||||||
|
|
||||||
// render 3D view
|
|
||||||
virtual void RenderView(player_t *player);
|
|
||||||
|
|
||||||
// Remap voxel palette
|
|
||||||
virtual void RemapVoxels();
|
|
||||||
|
|
||||||
// renders view to a savegame picture
|
|
||||||
virtual void WriteSavePic (player_t *player, FILE *file, int width, int height);
|
|
||||||
|
|
||||||
// draws player sprites with hardware acceleration (only useful for software rendering)
|
|
||||||
virtual void DrawRemainingPlayerSprites();
|
|
||||||
|
|
||||||
virtual int GetMaxViewPitch(bool down);
|
|
||||||
|
|
||||||
void OnModeSet ();
|
|
||||||
void ErrorCleanup ();
|
|
||||||
void ClearBuffer(int color);
|
|
||||||
void Init();
|
|
||||||
void SetWindow (int windowSize, int fullWidth, int fullHeight, int stHeight, int trueratio);
|
|
||||||
void SetupFrame(player_t *player);
|
|
||||||
void CopyStackedViewParameters();
|
|
||||||
void RenderTextureView (FCanvasTexture *tex, AActor *viewpoint, int fov);
|
|
||||||
sector_t *FakeFlat(sector_t *sec, sector_t *tempsec, int *floorlightlevel, int *ceilinglightlevel, bool back);
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -47,7 +47,6 @@
|
||||||
#include "doomstat.h"
|
#include "doomstat.h"
|
||||||
#include "m_argv.h"
|
#include "m_argv.h"
|
||||||
#include "version.h"
|
#include "version.h"
|
||||||
#include "r_swrenderer.h"
|
|
||||||
|
|
||||||
EXTERN_CVAR (Bool, ticker)
|
EXTERN_CVAR (Bool, ticker)
|
||||||
EXTERN_CVAR (Bool, fullscreen)
|
EXTERN_CVAR (Bool, fullscreen)
|
||||||
|
@ -73,22 +72,16 @@ bool changerenderer;
|
||||||
// [ZDoomGL]
|
// [ZDoomGL]
|
||||||
CUSTOM_CVAR (Int, vid_renderer, 1, CVAR_ARCHIVE | CVAR_GLOBALCONFIG | CVAR_NOINITCALL)
|
CUSTOM_CVAR (Int, vid_renderer, 1, CVAR_ARCHIVE | CVAR_GLOBALCONFIG | CVAR_NOINITCALL)
|
||||||
{
|
{
|
||||||
// 0: Software renderer
|
|
||||||
// 1: OpenGL renderer
|
|
||||||
|
|
||||||
if (self != currentrenderer)
|
if (self != currentrenderer)
|
||||||
{
|
{
|
||||||
switch (self)
|
switch (self)
|
||||||
{
|
{
|
||||||
case 0:
|
|
||||||
Printf("Switching to software renderer...\n");
|
|
||||||
break;
|
|
||||||
case 1:
|
case 1:
|
||||||
Printf("Switching to OpenGL renderer...\n");
|
Printf("Switching to OpenGL renderer...\n");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
Printf("Unknown renderer (%d). Falling back to software renderer...\n", *vid_renderer);
|
Printf("Unknown renderer (%d). Falling back to the OpenGL renderer...\n", *vid_renderer);
|
||||||
self = 0; // make sure to actually switch to the software renderer
|
self = 1; // make sure to actually switch to the OpenGL renderer
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
//changerenderer = true;
|
//changerenderer = true;
|
||||||
|
@ -155,11 +148,10 @@ static void I_DeleteRenderer()
|
||||||
|
|
||||||
void I_CreateRenderer()
|
void I_CreateRenderer()
|
||||||
{
|
{
|
||||||
currentrenderer = vid_renderer;
|
//currentrenderer = vid_renderer;
|
||||||
if (Renderer == NULL)
|
if (Renderer == NULL)
|
||||||
{
|
{
|
||||||
if (currentrenderer==1) Renderer = gl_CreateInterface();
|
Renderer = gl_CreateInterface();
|
||||||
else Renderer = new FSoftwareRenderer;
|
|
||||||
atterm(I_DeleteRenderer);
|
atterm(I_DeleteRenderer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,7 +56,6 @@ extern HANDLE FPSLimitEvent;
|
||||||
|
|
||||||
class D3DTex;
|
class D3DTex;
|
||||||
class D3DPal;
|
class D3DPal;
|
||||||
struct FSoftwareRenderer;
|
|
||||||
|
|
||||||
class Win32Video : public IVideo
|
class Win32Video : public IVideo
|
||||||
{
|
{
|
||||||
|
|
|
@ -69,7 +69,6 @@
|
||||||
#include "m_argv.h"
|
#include "m_argv.h"
|
||||||
#include "r_defs.h"
|
#include "r_defs.h"
|
||||||
#include "v_text.h"
|
#include "v_text.h"
|
||||||
#include "r_swrenderer.h"
|
|
||||||
#include "version.h"
|
#include "version.h"
|
||||||
|
|
||||||
#include "win32iface.h"
|
#include "win32iface.h"
|
||||||
|
|
Loading…
Reference in a new issue