mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-13 16:07:45 +00:00
- moved more code out of 'gl'.
This commit is contained in:
parent
e6efee61b1
commit
df15f00a21
6 changed files with 30 additions and 33 deletions
|
@ -1,7 +1,7 @@
|
||||||
#ifndef __GL_DRAWINFO_H
|
#ifndef __GL_DRAWINFO_H
|
||||||
#define __GL_DRAWINFO_H
|
#define __GL_DRAWINFO_H
|
||||||
|
|
||||||
#include "hwrenderer/scene/hw_drawlist.h"
|
#include "hwrenderer/scene/hw_drawinfo.h"
|
||||||
#include "hwrenderer/scene/hw_weapon.h"
|
#include "hwrenderer/scene/hw_weapon.h"
|
||||||
#include "hwrenderer/scene/hw_viewpointuniforms.h"
|
#include "hwrenderer/scene/hw_viewpointuniforms.h"
|
||||||
|
|
||||||
|
@ -11,29 +11,9 @@
|
||||||
#pragma warning(disable:4244)
|
#pragma warning(disable:4244)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
enum DrawListType
|
|
||||||
{
|
|
||||||
GLDL_PLAINWALLS,
|
|
||||||
GLDL_PLAINFLATS,
|
|
||||||
GLDL_MASKEDWALLS,
|
|
||||||
GLDL_MASKEDFLATS,
|
|
||||||
GLDL_MASKEDWALLSOFS,
|
|
||||||
GLDL_MODELS,
|
|
||||||
|
|
||||||
GLDL_TRANSLUCENT,
|
|
||||||
GLDL_TRANSLUCENTBORDER,
|
|
||||||
|
|
||||||
GLDL_TYPES,
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
struct FDrawInfo : public HWDrawInfo
|
struct FDrawInfo : public HWDrawInfo
|
||||||
{
|
{
|
||||||
HWDrawList drawlists[GLDL_TYPES];
|
|
||||||
int vpIndex;
|
|
||||||
|
|
||||||
void ApplyVPUniforms() override;
|
|
||||||
|
|
||||||
void AddWall(GLWall *wall) override;
|
void AddWall(GLWall *wall) override;
|
||||||
void AddMirrorSurface(GLWall *w) override;
|
void AddMirrorSurface(GLWall *w) override;
|
||||||
void AddFlat(GLFlat *flat, bool fog) override;
|
void AddFlat(GLFlat *flat, bool fog) override;
|
||||||
|
|
|
@ -75,13 +75,6 @@ EXTERN_CVAR (Float, r_visibility)
|
||||||
EXTERN_CVAR (Bool, r_drawvoxels)
|
EXTERN_CVAR (Bool, r_drawvoxels)
|
||||||
|
|
||||||
|
|
||||||
void FDrawInfo::ApplyVPUniforms()
|
|
||||||
{
|
|
||||||
VPUniforms.CalcDependencies();
|
|
||||||
vpIndex = screen->mViewpoints->SetViewpoint(this, &VPUniforms);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
// CreateScene
|
// CreateScene
|
||||||
|
|
|
@ -31,12 +31,12 @@
|
||||||
#include "d_player.h"
|
#include "d_player.h"
|
||||||
#include "g_levellocals.h"
|
#include "g_levellocals.h"
|
||||||
#include "hw_fakeflat.h"
|
#include "hw_fakeflat.h"
|
||||||
#include "hw_drawinfo.h"
|
|
||||||
#include "hw_portal.h"
|
#include "hw_portal.h"
|
||||||
#include "hw_renderstate.h"
|
#include "hw_renderstate.h"
|
||||||
#include "hw_drawlist.h"
|
#include "hw_drawinfo.h"
|
||||||
#include "hwrenderer/utility/hw_clock.h"
|
#include "hwrenderer/utility/hw_clock.h"
|
||||||
#include "hwrenderer/utility/hw_cvars.h"
|
#include "hwrenderer/utility/hw_cvars.h"
|
||||||
|
#include "hwrenderer/data/hw_viewpointbuffer.h"
|
||||||
|
|
||||||
EXTERN_CVAR(Float, r_visibility)
|
EXTERN_CVAR(Float, r_visibility)
|
||||||
CVAR(Bool, gl_bandedswlight, false, CVAR_ARCHIVE)
|
CVAR(Bool, gl_bandedswlight, false, CVAR_ARCHIVE)
|
||||||
|
@ -252,7 +252,8 @@ void HWDrawInfo::SetupView(float vx, float vy, float vz, bool mirror, bool plane
|
||||||
vp.SetViewAngle(r_viewwindow);
|
vp.SetViewAngle(r_viewwindow);
|
||||||
SetViewMatrix(vp.HWAngles, vx, vy, vz, mirror, planemirror);
|
SetViewMatrix(vp.HWAngles, vx, vy, vz, mirror, planemirror);
|
||||||
SetCameraPos(vp.Pos);
|
SetCameraPos(vp.Pos);
|
||||||
ApplyVPUniforms();
|
VPUniforms.CalcDependencies();
|
||||||
|
vpIndex = screen->mViewpoints->SetViewpoint(this, &VPUniforms);
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
#include "hw_viewpointuniforms.h"
|
#include "hw_viewpointuniforms.h"
|
||||||
#include "v_video.h"
|
#include "v_video.h"
|
||||||
#include "hw_weapon.h"
|
#include "hw_weapon.h"
|
||||||
|
#include "hw_drawlist.h"
|
||||||
|
|
||||||
enum EDrawMode
|
enum EDrawMode
|
||||||
{
|
{
|
||||||
|
@ -115,6 +116,21 @@ enum EPortalClip
|
||||||
PClip_Behind,
|
PClip_Behind,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum DrawListType
|
||||||
|
{
|
||||||
|
GLDL_PLAINWALLS,
|
||||||
|
GLDL_PLAINFLATS,
|
||||||
|
GLDL_MASKEDWALLS,
|
||||||
|
GLDL_MASKEDFLATS,
|
||||||
|
GLDL_MASKEDWALLSOFS,
|
||||||
|
GLDL_MODELS,
|
||||||
|
|
||||||
|
GLDL_TRANSLUCENT,
|
||||||
|
GLDL_TRANSLUCENTBORDER,
|
||||||
|
|
||||||
|
GLDL_TYPES,
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
struct HWDrawInfo
|
struct HWDrawInfo
|
||||||
{
|
{
|
||||||
|
@ -159,6 +175,9 @@ struct HWDrawInfo
|
||||||
bool isNightvision() const { return !!(FullbrightFlags & Nightvision); }
|
bool isNightvision() const { return !!(FullbrightFlags & Nightvision); }
|
||||||
bool isStealthVision() const { return !!(FullbrightFlags & StealthVision); }
|
bool isStealthVision() const { return !!(FullbrightFlags & StealthVision); }
|
||||||
|
|
||||||
|
HWDrawList drawlists[GLDL_TYPES];
|
||||||
|
int vpIndex;
|
||||||
|
|
||||||
HWDrawInfo * outer = nullptr;
|
HWDrawInfo * outer = nullptr;
|
||||||
int FullbrightFlags;
|
int FullbrightFlags;
|
||||||
std::atomic<int> spriteindex;
|
std::atomic<int> spriteindex;
|
||||||
|
@ -337,7 +356,6 @@ public:
|
||||||
virtual void AddFlat(GLFlat *flat, bool fog) = 0;
|
virtual void AddFlat(GLFlat *flat, bool fog) = 0;
|
||||||
virtual void AddSprite(GLSprite *sprite, bool translucent) = 0;
|
virtual void AddSprite(GLSprite *sprite, bool translucent) = 0;
|
||||||
|
|
||||||
virtual void ApplyVPUniforms() = 0;
|
|
||||||
virtual bool SetDepthClamp(bool on) = 0;
|
virtual bool SetDepthClamp(bool on) = 0;
|
||||||
|
|
||||||
GLDecal *AddDecal(bool onmirror);
|
GLDecal *AddDecal(bool onmirror);
|
||||||
|
|
|
@ -35,6 +35,7 @@
|
||||||
#include "hwrenderer/data/flatvertices.h"
|
#include "hwrenderer/data/flatvertices.h"
|
||||||
#include "hwrenderer/utility/hw_clock.h"
|
#include "hwrenderer/utility/hw_clock.h"
|
||||||
#include "hw_renderstate.h"
|
#include "hw_renderstate.h"
|
||||||
|
#include "hw_drawinfo.h"
|
||||||
|
|
||||||
FMemArena RenderDataAllocator(1024*1024); // Use large blocks to reduce allocation time.
|
FMemArena RenderDataAllocator(1024*1024); // Use large blocks to reduce allocation time.
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,14 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "hwrenderer/scene/hw_drawinfo.h"
|
|
||||||
#include "memarena.h"
|
#include "memarena.h"
|
||||||
|
|
||||||
extern FMemArena RenderDataAllocator;
|
extern FMemArena RenderDataAllocator;
|
||||||
void ResetRenderDataAllocator();
|
void ResetRenderDataAllocator();
|
||||||
|
struct HWDrawInfo;
|
||||||
|
class GLWall;
|
||||||
|
class GLFlat;
|
||||||
|
class GLSprite;
|
||||||
|
class FRenderState;
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
|
|
Loading…
Reference in a new issue