OpenEnroth 6ec2bbc
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Static Public Attributes | Protected Attributes | Private Attributes | List of all members
Renderer Class Referenceabstract

#include <Renderer.h>

Inheritance diagram for Renderer:
BaseRenderer NullRenderer OpenGLRenderer

Public Member Functions

 Renderer (std::shared_ptr< GameConfig > config, DecalBuilder *decal_builder, SpellFxRenderer *spellfx, std::shared_ptr< ParticleEngine > particle_engine, Vis *vis)
 
virtual ~Renderer ()
 
virtual bool Initialize ()=0
 
virtual RgbaImage ReadScreenPixels ()=0
 
virtual void ClearTarget (Color uColor)=0
 
virtual void Present ()=0
 
virtual void BeginLines2D ()=0
 
virtual void EndLines2D ()=0
 
virtual void RasterLine2D (Pointi a, Pointi b, Color acolor, Color bcolor)=0
 
void RasterLine2D (Pointi a, Pointi b, Color color)
 
virtual void BeginScene3D ()=0
 
virtual void MakeParticleBillboardAndPush (const Particle &p)=0
 
virtual float GetGamma ()=0
 
virtual void DrawBillboards_And_MaybeRenderSpecialEffects_And_EndScene ()=0
 
virtual void BillboardSphereSpellFX (SpellFX_Billboard *a1, Color diffuse)=0
 
virtual void TransformBillboards ()=0
 
virtual void DrawProjectile (float srcX, float srcY, float a3, float a4, float dstX, float dstY, float a7, float a8, GraphicsImage *texture)=0
 
virtual TextureRenderId CreateTexture (RgbaImageView image)=0
 
virtual void DeleteTexture (TextureRenderId id)=0
 
virtual void BeginScene2D ()=0
 
virtual void ScreenFade (Color color, float t)=0
 
virtual void SetUIClipRect (const Recti &rect)=0
 
virtual void ResetUIClipRect ()=0
 
virtual void DrawQuad2D (GraphicsImage *texture, const Recti &srcRect, const Recti &dstRect, Color color=colorTable.White)=0
 
void DrawQuad2D (GraphicsImage *texture, const Recti &srcRect, Pointi dstPoint, Color color=colorTable.White)
 
void DrawQuad2D (GraphicsImage *texture, Pointi dstPoint, Color color=colorTable.White)
 
void FillRect (const Recti &rect, Color color)
 
virtual void DrawImage (GraphicsImage *, const Recti &rect, int paletteid=0, Color colourmask32=colorTable.White)=0
 
virtual void BlendTextures (int a2, int a3, GraphicsImage *a4, GraphicsImage *a5, int t, int start_opacity, int end_opacity)=0
 
virtual void DrawMonsterPortrait (const Recti &rc, SpriteFrame *Portrait_Sprite, int Y_Offset)=0
 
virtual void BeginTextNew (GraphicsImage *main, GraphicsImage *shadow)=0
 
virtual void EndTextNew ()=0
 
virtual void DrawTextNew (const Recti &srcRect, const Recti &dstRect, bool isShadow, Color color)=0
 
virtual void DrawOutdoorBuildings ()=0
 
virtual void DrawIndoorSky (int uNumVertices, int uFaceID=0)=0
 
virtual void DrawOutdoorSky ()=0
 
virtual void PrepareDecorationsRenderList_ODM ()=0
 
virtual void DrawSpriteObjects ()=0
 
virtual void DrawOutdoorTerrain ()=0
 
virtual RgbaImage MakeViewportScreenshot (int width, int height)=0
 
virtual RgbaImage MakeFullScreenshot ()=0
 
virtual std::vector< Actor * > getActorsInViewport (int pDepth)=0
 
virtual void BeginDecals ()=0
 
virtual void EndDecals ()=0
 
virtual void DrawDecal (Decal *pDecal, float z_bias)=0
 
virtual void DrawSpecialEffectsQuad (GraphicsImage *texture, int palette)=0
 
virtual void DrawIndoorFaces ()=0
 
virtual void ReleaseTerrain ()=0
 
virtual void ReleaseBSP ()=0
 
virtual void DrawTwodVerts ()=0
 
virtual Sizei GetRenderDimensions ()=0
 
virtual Sizei GetPresentDimensions ()=0
 
virtual Pointi MapToRender (Pointi position)=0
 
virtual Pointi MapToPresent (Pointi position)=0
 
virtual bool Reinitialize (bool firstInit=false)=0
 
virtual bool ReloadShaders ()=0
 
virtual void DoRenderBillboards_D3D ()=0
 
virtual void flushAndScale ()=0
 
virtual void swapBuffers ()=0
 
virtual void beginOverlays ()=0
 
virtual void endOverlays ()=0
 
GraphicsImagesolidFillTexture ()
 

Public Attributes

std::shared_ptr< GameConfigconfig = nullptr
 
Color uFogColor
 
RenderBillboardD3D pBillboardRenderListD3D [MAX_BILLBOARDS_D3D]
 
std::array< RenderBillboardD3D *, MAX_BILLBOARDS_D3DpSortedBillboardRenderListD3D
 
unsigned int uNumBillboardsToDraw
 
int drawcalls
 

Static Public Attributes

static const int MAX_BILLBOARDS_D3D = 5000
 

Protected Attributes

DecalBuilderdecal_builder = nullptr
 
SpellFxRendererspell_fx_renderer = nullptr
 
std::shared_ptr< ParticleEngineparticle_engine = nullptr
 
Visvis = nullptr
 

Private Attributes

GraphicsImage_solidFillTexture = nullptr
 

Constructor & Destructor Documentation

◆ Renderer()

Renderer::Renderer ( std::shared_ptr< GameConfig config,
DecalBuilder decal_builder,
SpellFxRenderer spellfx,
std::shared_ptr< ParticleEngine particle_engine,
Vis vis 
)

◆ ~Renderer()

Renderer::~Renderer ( )
virtualdefault

Member Function Documentation

◆ BeginDecals()

virtual void Renderer::BeginDecals ( )
pure virtual

Implemented in NullRenderer, and OpenGLRenderer.

◆ BeginLines2D()

virtual void Renderer::BeginLines2D ( )
pure virtual

Implemented in NullRenderer, and OpenGLRenderer.

◆ beginOverlays()

virtual void Renderer::beginOverlays ( )
pure virtual

Implemented in NullRenderer, and OpenGLRenderer.

◆ BeginScene2D()

virtual void Renderer::BeginScene2D ( )
pure virtual

Implemented in NullRenderer, and OpenGLRenderer.

◆ BeginScene3D()

virtual void Renderer::BeginScene3D ( )
pure virtual

Implemented in NullRenderer, and OpenGLRenderer.

◆ BeginTextNew()

virtual void Renderer::BeginTextNew ( GraphicsImage main,
GraphicsImage shadow 
)
pure virtual

Implemented in NullRenderer, and OpenGLRenderer.

◆ BillboardSphereSpellFX()

virtual void Renderer::BillboardSphereSpellFX ( SpellFX_Billboard a1,
Color  diffuse 
)
pure virtual

Implemented in BaseRenderer.

◆ BlendTextures()

virtual void Renderer::BlendTextures ( int  a2,
int  a3,
GraphicsImage a4,
GraphicsImage a5,
int  t,
int  start_opacity,
int  end_opacity 
)
pure virtual

Implemented in NullRenderer, and OpenGLRenderer.

◆ ClearTarget()

virtual void Renderer::ClearTarget ( Color  uColor)
pure virtual

Implemented in NullRenderer, and OpenGLRenderer.

◆ CreateTexture()

virtual TextureRenderId Renderer::CreateTexture ( RgbaImageView  image)
pure virtual

Implemented in NullRenderer, and OpenGLRenderer.

◆ DeleteTexture()

virtual void Renderer::DeleteTexture ( TextureRenderId  id)
pure virtual

Implemented in NullRenderer, and OpenGLRenderer.

◆ DoRenderBillboards_D3D()

virtual void Renderer::DoRenderBillboards_D3D ( )
pure virtual

Implemented in NullRenderer, and OpenGLRenderer.

◆ DrawBillboards_And_MaybeRenderSpecialEffects_And_EndScene()

virtual void Renderer::DrawBillboards_And_MaybeRenderSpecialEffects_And_EndScene ( )
pure virtual

Implemented in BaseRenderer.

◆ DrawDecal()

virtual void Renderer::DrawDecal ( Decal pDecal,
float  z_bias 
)
pure virtual

Implemented in NullRenderer, and OpenGLRenderer.

◆ DrawImage()

virtual void Renderer::DrawImage ( GraphicsImage ,
const Recti rect,
int  paletteid = 0,
Color  colourmask32 = colorTable.White 
)
pure virtual

Implemented in NullRenderer, and OpenGLRenderer.

◆ DrawIndoorFaces()

virtual void Renderer::DrawIndoorFaces ( )
pure virtual

Implemented in NullRenderer, and OpenGLRenderer.

◆ DrawIndoorSky()

virtual void Renderer::DrawIndoorSky ( int  uNumVertices,
int  uFaceID = 0 
)
pure virtual

Implemented in NullRenderer, and OpenGLRenderer.

◆ DrawMonsterPortrait()

virtual void Renderer::DrawMonsterPortrait ( const Recti rc,
SpriteFrame Portrait_Sprite,
int  Y_Offset 
)
pure virtual

Implemented in BaseRenderer.

◆ DrawOutdoorBuildings()

virtual void Renderer::DrawOutdoorBuildings ( )
pure virtual

Implemented in NullRenderer, and OpenGLRenderer.

◆ DrawOutdoorSky()

virtual void Renderer::DrawOutdoorSky ( )
pure virtual

Implemented in NullRenderer, and OpenGLRenderer.

◆ DrawOutdoorTerrain()

virtual void Renderer::DrawOutdoorTerrain ( )
pure virtual

Implemented in NullRenderer, and OpenGLRenderer.

◆ DrawProjectile()

virtual void Renderer::DrawProjectile ( float  srcX,
float  srcY,
float  a3,
float  a4,
float  dstX,
float  dstY,
float  a7,
float  a8,
GraphicsImage texture 
)
pure virtual

Implemented in NullRenderer, and OpenGLRenderer.

◆ DrawQuad2D() [1/3]

virtual void Renderer::DrawQuad2D ( GraphicsImage texture,
const Recti srcRect,
const Recti dstRect,
Color  color = colorTable.White 
)
pure virtual

Core 2D quad drawing function. All other 2D texture drawing functions (except DrawImage) delegate to this one.

Parameters
textureThe texture to draw.
srcRectSource rectangle in texture pixel coordinates.
dstRectDestination rectangle in screen pixels.
colorMultiplicative color mask applied to the texture. Use colorTable.White for no tinting. RGB components scale the texture colors, alpha controls transparency.

Implemented in NullRenderer, and OpenGLRenderer.

◆ DrawQuad2D() [2/3]

void Renderer::DrawQuad2D ( GraphicsImage texture,
const Recti srcRect,
Pointi  dstPoint,
Color  color = colorTable.White 
)

◆ DrawQuad2D() [3/3]

void Renderer::DrawQuad2D ( GraphicsImage texture,
Pointi  dstPoint,
Color  color = colorTable.White 
)

◆ DrawSpecialEffectsQuad()

virtual void Renderer::DrawSpecialEffectsQuad ( GraphicsImage texture,
int  palette 
)
pure virtual

Implemented in BaseRenderer.

◆ DrawSpriteObjects()

virtual void Renderer::DrawSpriteObjects ( )
pure virtual

Implemented in BaseRenderer.

◆ DrawTextNew()

virtual void Renderer::DrawTextNew ( const Recti srcRect,
const Recti dstRect,
bool  isShadow,
Color  color 
)
pure virtual

Implemented in NullRenderer, and OpenGLRenderer.

◆ DrawTwodVerts()

virtual void Renderer::DrawTwodVerts ( )
pure virtual

Implemented in NullRenderer, and OpenGLRenderer.

◆ EndDecals()

virtual void Renderer::EndDecals ( )
pure virtual

Implemented in NullRenderer, and OpenGLRenderer.

◆ EndLines2D()

virtual void Renderer::EndLines2D ( )
pure virtual

Implemented in NullRenderer, and OpenGLRenderer.

◆ endOverlays()

virtual void Renderer::endOverlays ( )
pure virtual

Implemented in NullRenderer, and OpenGLRenderer.

◆ EndTextNew()

virtual void Renderer::EndTextNew ( )
pure virtual

Implemented in NullRenderer, and OpenGLRenderer.

◆ FillRect()

void Renderer::FillRect ( const Recti rect,
Color  color 
)

◆ flushAndScale()

virtual void Renderer::flushAndScale ( )
pure virtual

Implemented in NullRenderer, and OpenGLRenderer.

◆ getActorsInViewport()

virtual std::vector< Actor * > Renderer::getActorsInViewport ( int  pDepth)
pure virtual

Implemented in BaseRenderer.

◆ GetGamma()

virtual float Renderer::GetGamma ( )
pure virtual

Implemented in BaseRenderer.

◆ GetPresentDimensions()

virtual Sizei Renderer::GetPresentDimensions ( )
pure virtual

Implemented in BaseRenderer.

◆ GetRenderDimensions()

virtual Sizei Renderer::GetRenderDimensions ( )
pure virtual

Implemented in BaseRenderer.

◆ Initialize()

virtual bool Renderer::Initialize ( )
pure virtual

Implemented in BaseRenderer, NullRenderer, and OpenGLRenderer.

◆ MakeFullScreenshot()

virtual RgbaImage Renderer::MakeFullScreenshot ( )
pure virtual

Implemented in NullRenderer, and OpenGLRenderer.

◆ MakeParticleBillboardAndPush()

virtual void Renderer::MakeParticleBillboardAndPush ( const Particle p)
pure virtual

Implemented in BaseRenderer.

◆ MakeViewportScreenshot()

virtual RgbaImage Renderer::MakeViewportScreenshot ( int  width,
int  height 
)
pure virtual

Takes a screenshot of the game viewport, w/o the UI elements.

Parameters
widthRequired width
heightRequired height.
Returns
Taken screenshot image.

Implemented in NullRenderer, and OpenGLRenderer.

◆ MapToPresent()

virtual Pointi Renderer::MapToPresent ( Pointi  position)
pure virtual

Implemented in BaseRenderer.

◆ MapToRender()

virtual Pointi Renderer::MapToRender ( Pointi  position)
pure virtual

Implemented in BaseRenderer.

◆ PrepareDecorationsRenderList_ODM()

virtual void Renderer::PrepareDecorationsRenderList_ODM ( )
pure virtual

Implemented in BaseRenderer.

◆ Present()

virtual void Renderer::Present ( )
pure virtual

Implemented in NullRenderer, and OpenGLRenderer.

◆ RasterLine2D() [1/2]

virtual void Renderer::RasterLine2D ( Pointi  a,
Pointi  b,
Color  acolor,
Color  bcolor 
)
pure virtual

Implemented in NullRenderer, and OpenGLRenderer.

◆ RasterLine2D() [2/2]

void Renderer::RasterLine2D ( Pointi  a,
Pointi  b,
Color  color 
)
inline

◆ ReadScreenPixels()

virtual RgbaImage Renderer::ReadScreenPixels ( )
pure virtual

Implemented in NullRenderer, and OpenGLRenderer.

◆ Reinitialize()

virtual bool Renderer::Reinitialize ( bool  firstInit = false)
pure virtual

Implemented in BaseRenderer, NullRenderer, and OpenGLRenderer.

◆ ReleaseBSP()

virtual void Renderer::ReleaseBSP ( )
pure virtual

Implemented in NullRenderer, and OpenGLRenderer.

◆ ReleaseTerrain()

virtual void Renderer::ReleaseTerrain ( )
pure virtual

Implemented in NullRenderer, and OpenGLRenderer.

◆ ReloadShaders()

virtual bool Renderer::ReloadShaders ( )
pure virtual

Implemented in NullRenderer, and OpenGLRenderer.

◆ ResetUIClipRect()

virtual void Renderer::ResetUIClipRect ( )
pure virtual

Implemented in NullRenderer, and OpenGLRenderer.

◆ ScreenFade()

virtual void Renderer::ScreenFade ( Color  color,
float  t 
)
pure virtual

Implemented in NullRenderer, and OpenGLRenderer.

◆ SetUIClipRect()

virtual void Renderer::SetUIClipRect ( const Recti rect)
pure virtual

Implemented in NullRenderer, and OpenGLRenderer.

◆ solidFillTexture()

GraphicsImage * Renderer::solidFillTexture ( )
Returns
1x1 white texture for solid color fills. Initialized lazily on first use.

◆ swapBuffers()

virtual void Renderer::swapBuffers ( )
pure virtual

Implemented in NullRenderer, and OpenGLRenderer.

◆ TransformBillboards()

virtual void Renderer::TransformBillboards ( )
pure virtual

Implemented in BaseRenderer.

Member Data Documentation

◆ _solidFillTexture

GraphicsImage* Renderer::_solidFillTexture = nullptr
private

◆ config

std::shared_ptr<GameConfig> Renderer::config = nullptr

◆ decal_builder

DecalBuilder* Renderer::decal_builder = nullptr
protected

◆ drawcalls

int Renderer::drawcalls

◆ MAX_BILLBOARDS_D3D

const int Renderer::MAX_BILLBOARDS_D3D = 5000
static

◆ particle_engine

std::shared_ptr<ParticleEngine> Renderer::particle_engine = nullptr
protected

◆ pBillboardRenderListD3D

RenderBillboardD3D Renderer::pBillboardRenderListD3D[MAX_BILLBOARDS_D3D]

◆ pSortedBillboardRenderListD3D

std::array<RenderBillboardD3D*, MAX_BILLBOARDS_D3D> Renderer::pSortedBillboardRenderListD3D

◆ spell_fx_renderer

SpellFxRenderer* Renderer::spell_fx_renderer = nullptr
protected

◆ uFogColor

Color Renderer::uFogColor

◆ uNumBillboardsToDraw

unsigned int Renderer::uNumBillboardsToDraw

◆ vis

Vis* Renderer::vis = nullptr
protected

The documentation for this class was generated from the following files: