diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1779f0eb7..914d15f32 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -805,7 +805,6 @@ set( NOT_COMPILED_SOURCE_FILES ) set( FASTMATH_PCH_SOURCES - r_swrenderer.cpp r_3dfloors.cpp r_bsp.cpp r_draw.cpp diff --git a/src/posix/cocoa/i_video.mm b/src/posix/cocoa/i_video.mm index 702b9a61b..25401fbdd 100644 --- a/src/posix/cocoa/i_video.mm +++ b/src/posix/cocoa/i_video.mm @@ -48,7 +48,6 @@ #include "m_argv.h" #include "m_png.h" #include "r_renderer.h" -#include "r_swrenderer.h" #include "st_console.h" #include "stats.h" #include "textures.h" @@ -1617,15 +1616,13 @@ static void I_DeleteRenderer() void I_CreateRenderer() { - s_currentRenderer = vid_renderer; + //s_currentRenderer = vid_renderer; if (NULL == Renderer) { extern FRenderer* gl_CreateInterface(); - Renderer = 1 == s_currentRenderer - ? gl_CreateInterface() - : new FSoftwareRenderer; + Renderer = gl_CreateInterface(); atterm(I_DeleteRenderer); } } diff --git a/src/posix/sdl/hardware.cpp b/src/posix/sdl/hardware.cpp index b7cb7fe65..a73cb8d64 100644 --- a/src/posix/sdl/hardware.cpp +++ b/src/posix/sdl/hardware.cpp @@ -49,7 +49,6 @@ #include "m_argv.h" #include "sdlglvideo.h" #include "r_renderer.h" -#include "r_swrenderer.h" EXTERN_CVAR (Bool, ticker) EXTERN_CVAR (Bool, fullscreen) @@ -66,22 +65,16 @@ int currentrenderer; // [ZDoomGL] CUSTOM_CVAR (Int, vid_renderer, 1, CVAR_ARCHIVE | CVAR_GLOBALCONFIG | CVAR_NOINITCALL) { - // 0: Software renderer - // 1: OpenGL renderer - if (self != currentrenderer) { switch (self) { - case 0: - Printf("Switching to software renderer...\n"); - break; case 1: Printf("Switching to OpenGL renderer...\n"); break; default: - Printf("Unknown renderer (%d). Falling back to software renderer...\n", (int) vid_renderer); - self = 0; // make sure to actually switch to the software renderer + Printf("Unknown renderer (%d). Falling back to the OpenGL renderer...\n", (int) vid_renderer); + self = 1; // make sure to actually switch to the OpenGL renderer break; } Printf("You must restart " GAMENAME " to switch the renderer\n"); @@ -137,11 +130,10 @@ static void I_DeleteRenderer() void I_CreateRenderer() { - currentrenderer = vid_renderer; + //currentrenderer = vid_renderer; if (Renderer == NULL) { - if (currentrenderer==1) Renderer = gl_CreateInterface(); - else Renderer = new FSoftwareRenderer; + Renderer = gl_CreateInterface(); atterm(I_DeleteRenderer); } } diff --git a/src/posix/sdl/sdlvideo.cpp b/src/posix/sdl/sdlvideo.cpp index 04c3a3f2e..5f5dcdef8 100644 --- a/src/posix/sdl/sdlvideo.cpp +++ b/src/posix/sdl/sdlvideo.cpp @@ -11,7 +11,6 @@ #include "stats.h" #include "v_palette.h" #include "sdlvideo.h" -#include "r_swrenderer.h" #include "version.h" #include diff --git a/src/r_swrenderer.cpp b/src/r_swrenderer.cpp deleted file mode 100644 index 7eb1e13e9..000000000 --- a/src/r_swrenderer.cpp +++ /dev/null @@ -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; iRemap(); - } -} - -//=========================================================================== -// -// 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(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); -} - diff --git a/src/r_swrenderer.h b/src/r_swrenderer.h deleted file mode 100644 index 939547797..000000000 --- a/src/r_swrenderer.h +++ /dev/null @@ -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 diff --git a/src/win32/hardware.cpp b/src/win32/hardware.cpp index fd92694cd..49a7d81b4 100644 --- a/src/win32/hardware.cpp +++ b/src/win32/hardware.cpp @@ -47,7 +47,6 @@ #include "doomstat.h" #include "m_argv.h" #include "version.h" -#include "r_swrenderer.h" EXTERN_CVAR (Bool, ticker) EXTERN_CVAR (Bool, fullscreen) @@ -73,22 +72,16 @@ bool changerenderer; // [ZDoomGL] CUSTOM_CVAR (Int, vid_renderer, 1, CVAR_ARCHIVE | CVAR_GLOBALCONFIG | CVAR_NOINITCALL) { - // 0: Software renderer - // 1: OpenGL renderer - if (self != currentrenderer) { switch (self) { - case 0: - Printf("Switching to software renderer...\n"); - break; case 1: Printf("Switching to OpenGL renderer...\n"); break; default: - Printf("Unknown renderer (%d). Falling back to software renderer...\n", *vid_renderer); - self = 0; // make sure to actually switch to the software renderer + Printf("Unknown renderer (%d). Falling back to the OpenGL renderer...\n", *vid_renderer); + self = 1; // make sure to actually switch to the OpenGL renderer break; } //changerenderer = true; @@ -155,11 +148,10 @@ static void I_DeleteRenderer() void I_CreateRenderer() { - currentrenderer = vid_renderer; + //currentrenderer = vid_renderer; if (Renderer == NULL) { - if (currentrenderer==1) Renderer = gl_CreateInterface(); - else Renderer = new FSoftwareRenderer; + Renderer = gl_CreateInterface(); atterm(I_DeleteRenderer); } } diff --git a/src/win32/win32iface.h b/src/win32/win32iface.h index 9b2754eae..591e17a46 100644 --- a/src/win32/win32iface.h +++ b/src/win32/win32iface.h @@ -56,7 +56,6 @@ extern HANDLE FPSLimitEvent; class D3DTex; class D3DPal; -struct FSoftwareRenderer; class Win32Video : public IVideo { diff --git a/src/win32/win32video.cpp b/src/win32/win32video.cpp index 29bb905fb..10ae7a91f 100644 --- a/src/win32/win32video.cpp +++ b/src/win32/win32video.cpp @@ -69,7 +69,6 @@ #include "m_argv.h" #include "r_defs.h" #include "v_text.h" -#include "r_swrenderer.h" #include "version.h" #include "win32iface.h"