#include <C4FoWDrawStrategy.h>
Public Types | |
enum | DrawPhase { P_None , P_Fan , P_FanMaxed , P_Fade , P_Intermediate } |
Public Member Functions | |
C4FoWDrawStrategy ()=default | |
virtual | ~C4FoWDrawStrategy ()=default |
virtual void | Begin (const C4FoWRegion *region)=0 |
virtual void | End (C4ShaderCall &call) |
virtual void | DrawLightVertex (float x, float y) |
virtual void | DrawDarkVertex (float x, float y) |
virtual void | BeginFan () |
virtual void | EndFan () |
virtual void | BeginFanMaxed () |
virtual void | EndFanMaxed () |
virtual void | BeginFade () |
virtual void | EndFade () |
virtual void | BeginIntermediateFade () |
virtual void | EndIntermediateFade () |
Public Attributes | |
enum C4FoWDrawStrategy::DrawPhase | P_None |
Protected Attributes | |
C4FoWDrawTriangulator | triangulator |
A C4FoWDrawStrategy is a connector to OpenGL calls used to draw the light. C4FoWLight tells this class which part of the light should be drawn now and subsequently pushes the vertices with the information whether a vertex is light or dark.
This class is an abstract base class, it is up to the implementing classes to actually draw anything here.
Definition at line 68 of file C4FoWDrawStrategy.h.
Enumerator | |
---|---|
P_None | |
P_Fan | |
P_FanMaxed | |
P_Fade | |
P_Intermediate |
Definition at line 75 of file C4FoWDrawStrategy.h.
|
default |
|
virtualdefault |
|
pure virtual |
Called before each rendering pass
Implemented in C4FoWDrawWireframeStrategy, and C4FoWDrawLightTextureStrategy.
|
inlinevirtual |
Called before rendering the quads in which the light fades out
Definition at line 102 of file C4FoWDrawStrategy.h.
References P_Fade, C4FoWDrawTriangulator::Quads(), and triangulator.
|
inlinevirtual |
Called before rendering the inner triangle fan (the area with 100% light)
Definition at line 92 of file C4FoWDrawStrategy.h.
References C4FoWDrawTriangulator::Fan(), P_Fan, and triangulator.
|
inlinevirtual |
Called before rendering the triangle fan existnsion (100% light, maxed out normals)
Definition at line 97 of file C4FoWDrawStrategy.h.
References P_FanMaxed, C4FoWDrawTriangulator::Quads(), and triangulator.
|
inlinevirtual |
Called before rendering the triangles that fill the space between the fadeout quads
Definition at line 107 of file C4FoWDrawStrategy.h.
References C4FoWDrawTriangulator::Fan(), P_Intermediate, and triangulator.
|
inlinevirtual |
Reimplemented in C4FoWDrawWireframeStrategy, and C4FoWDrawLightTextureStrategy.
Definition at line 89 of file C4FoWDrawStrategy.h.
References C4FoWDrawTriangulator::AddVertex(), and triangulator.
Referenced by C4FoWDrawLightTextureStrategy::DrawDarkVertex(), and C4FoWDrawWireframeStrategy::DrawDarkVertex().
|
inlinevirtual |
Reimplemented in C4FoWDrawWireframeStrategy, and C4FoWDrawLightTextureStrategy.
Definition at line 88 of file C4FoWDrawStrategy.h.
References C4FoWDrawTriangulator::AddVertex(), and triangulator.
Referenced by C4FoWDrawLightTextureStrategy::DrawLightVertex(), and C4FoWDrawWireframeStrategy::DrawLightVertex().
|
inlinevirtual |
Called after each rendering pass
Reimplemented in C4FoWDrawWireframeStrategy, and C4FoWDrawLightTextureStrategy.
Definition at line 86 of file C4FoWDrawStrategy.h.
References C4FoWDrawTriangulator::Reset(), and triangulator.
Referenced by C4FoWDrawLightTextureStrategy::End(), and C4FoWDrawWireframeStrategy::End().
|
inlinevirtual |
Called after rendering the quads in which the light fades out
Definition at line 104 of file C4FoWDrawStrategy.h.
|
inlinevirtual |
Called after rendering the inner triangle fan
Definition at line 94 of file C4FoWDrawStrategy.h.
|
inlinevirtual |
Called after rendering the inner triangle fan
Definition at line 99 of file C4FoWDrawStrategy.h.
|
inlinevirtual |
Called after rendering the triangles that fill the space between the fadeout quads
Definition at line 109 of file C4FoWDrawStrategy.h.
enum C4FoWDrawStrategy::DrawPhase C4FoWDrawStrategy::P_None |
|
protected |
Definition at line 112 of file C4FoWDrawStrategy.h.
Referenced by BeginFade(), BeginFan(), BeginFanMaxed(), BeginIntermediateFade(), DrawDarkVertex(), DrawLightVertex(), End(), C4FoWDrawLightTextureStrategy::End(), and C4FoWDrawWireframeStrategy::End().