Seaside/SpyCustom/sdk/iviewrender.h
2021-06-16 18:46:33 +03:00

125 lines
3.3 KiB
C++

#if !defined( IVIEWRENDER_H )
#define IVIEWRENDER_H
#ifdef _WIN32
#pragma once
#endif
#include "ivrenderview.h"
#define MAX_DEPTH_TEXTURE_SHADOWS 1
#define MAX_DEPTH_TEXTURE_HIGHRES_SHADOWS 0
#define MAX_DEPTH_TEXTURE_SHADOWS_TOOLS 8
#define MAX_DEPTH_TEXTURE_HIGHRES_SHADOWS_TOOLS 0
enum DrawFlags_t
{
DF_RENDER_REFRACTION = 0x1,
DF_RENDER_REFLECTION = 0x2,
DF_CLIP_Z = 0x4,
DF_CLIP_BELOW = 0x8,
DF_RENDER_UNDERWATER = 0x10,
DF_RENDER_ABOVEWATER = 0x20,
DF_RENDER_WATER = 0x40,
DF_SSAO_DEPTH_PASS = 0x80,
DF_RENDER_PSEUDO_TRANSLUCENT_WATER = 0x100,
DF_WATERHEIGHT = 0x200,
DF_DRAW_SSAO = 0x400,
DF_DRAWSKYBOX = 0x800,
DF_FUDGE_UP = 0x1000,
DF_DRAW_ENTITITES = 0x2000,
DF_SKIP_WORLD = 0x4000,
DF_SKIP_WORLD_DECALS_AND_OVERLAYS = 0x8000,
DF_UNUSED5 = 0x10000,
DF_SAVEGAMESCREENSHOT = 0x20000,
DF_CLIP_SKYBOX = 0x40000,
DF_DRAW_SIMPLE_WORLD_MODEL = 0x80000,
DF_SHADOW_DEPTH_MAP = 0x100000,
DF_FAST_ENTITY_RENDERING = 0x200000,
DF_DRAW_SIMPLE_WORLD_MODEL_WATER = 0x400000,
};
class CViewSetup;
class C_BaseEntity;
struct vrect_t;
class C_BaseViewModel;
abstract_class IViewRender
{
public:
virtual void Init(void) = 0;
virtual void LevelInit(void) = 0;
virtual void LevelShutdown(void) = 0;
virtual void Shutdown(void) = 0;
virtual void OnRenderStart() = 0;
virtual void Render(vrect_t* rect) = 0;
virtual void RenderView(const CViewSetup& view, const CViewSetup& hudViewSetup, int nClearFlags, int whatToDraw) = 0;
virtual int GetDrawFlags() = 0;
virtual void StartPitchDrift(void) = 0;
virtual void StopPitchDrift(void) = 0;
virtual VPlane* GetFrustum() = 0;
virtual bool ShouldDrawBrushModels(void) = 0;
virtual const CViewSetup* GetPlayerViewSetup(int nSlot = -1) const = 0;
virtual const CViewSetup* GetViewSetup(void) const = 0;
virtual void DisableVis(void) = 0;
virtual int BuildWorldListsNumber() const = 0;
virtual void SetCheapWaterStartDistance(float flCheapWaterStartDistance) = 0;
virtual void SetCheapWaterEndDistance(float flCheapWaterEndDistance) = 0;
virtual void GetWaterLODParams(float& flCheapWaterStartDistance, float& flCheapWaterEndDistance) = 0;
virtual void DriftPitch(void) = 0;
virtual void SetScreenOverlayMaterial(IMaterial* pMaterial) = 0;
virtual IMaterial* GetScreenOverlayMaterial() = 0;
virtual void WriteSaveGameScreenshot(const char* pFilename) = 0;
virtual void WriteSaveGameScreenshotOfSize(const char* pFilename, int width, int height) = 0;
virtual void QueueOverlayRenderView(const CViewSetup& view, int nClearFlags, int whatToDraw) = 0;
virtual float GetZNear() = 0;
virtual float GetZFar() = 0;
virtual void GetScreenFadeDistances(float* pMin, float* pMax, float* pScale) = 0;
virtual C_BaseEntity* GetCurrentlyDrawingEntity() = 0;
virtual void SetCurrentlyDrawingEntity(C_BaseEntity* pEnt) = 0;
virtual bool UpdateShadowDepthTexture(ITexture* pRenderTarget, ITexture* pDepthTexture, const CViewSetup& shadowView, bool bRenderWorldAndObjects = true, bool bRenderViewModels = false) = 0;
virtual void FreezeFrame(float flFreezeTime) = 0;
virtual void InitFadeData(void) = 0;
};
extern IViewRender* view;
#endif