6 #ifndef _RENDERER_OGL_H
7 #define _RENDERER_OGL_H
19 #include <unordered_map>
27 class GasGiantSurfaceMaterial;
28 class GeoSphereSkyMaterial;
29 class GeoSphereStarMaterial;
30 class GeoSphereSurfaceMaterial;
31 class GenGasGiantColourMaterial;
34 class LitMultiMaterial;
39 class FresnelColourMaterial;
42 class BillboardMaterial;
52 virtual const char *
GetName() const override final {
return "OpenGL 3.1, with extensions, renderer"; }
58 static void CheckErrors(
const char *func =
nullptr,
const int line = -1);
63 virtual
bool GetNearFarRange(
float &near_,
float &far_) const override final;
66 virtual
bool EndFrame() override final;
72 virtual
bool SetDepthRange(
double znear,
double zfar) override final;
86 virtual
bool SetOrthographicProjection(
float xmin,
float xmax,
float ymin,
float ymax,
float zmin,
float zmax) override final;
92 virtual
bool SetLights(Uint32 numlights, const
Light *l) override final;
121 virtual
void PopState() override final;
149 std::vector<std::pair<MaterialDescriptor, OGL::Program *>>
m_programs;
165 typedef AttribBufferMap::iterator AttribBufferIter;
166 static AttribBufferMap s_AttribBufferMap;
168 SDL_GLContext m_glContext;
170 #define CHECKERRORS() RendererOGL::CheckErrors(__FUNCTION__, __LINE__)
Definition: VertexBuffer.h:114
Definition: VertexBuffer.h:136
Definition: Material.h:57
Definition: Material.h:81
Definition: BillboardMaterial.h:27
Definition: FresnelColourMaterial.h:22
Definition: GasGiantMaterial.h:38
Definition: GenGasGiantColourMaterial.h:54
Definition: GeoSphereMaterial.h:58
Definition: GeoSphereMaterial.h:65
Definition: GeoSphereMaterial.h:41
Definition: MultiMaterial.h:33
Definition: MaterialGL.h:26
Definition: MultiMaterial.h:22
Definition: RenderTargetGL.h:20
Definition: RingMaterial.h:16
Definition: ShieldMaterial.h:32
Definition: RenderState.h:25
Definition: RenderTarget.h:38
Definition: RendererGL.h:45
RenderState * m_activeRenderState
Definition: RendererGL.h:155
virtual bool SetAmbientColor(const Color &c) override final
Definition: RendererGL.cpp:739
virtual bool BeginFrame() override final
Definition: RendererGL.cpp:449
OGL::RenderTarget * m_windowRenderTarget
Definition: RendererGL.h:154
virtual bool SetWireFrameMode(bool enabled) override final
Definition: RendererGL.cpp:706
virtual bool SetViewport(Viewport v) override final
Definition: RendererGL.cpp:652
virtual bool SetDepthRange(double znear, double zfar) override final
Definition: RendererGL.cpp:607
virtual bool DrawBufferInstanced(VertexBuffer *, RenderState *, Material *, InstanceBuffer *, PrimitiveType type=TRIANGLES) override final
Definition: RendererGL.cpp:972
virtual RenderTarget * CreateRenderTarget(const RenderTargetDesc &) override final
Definition: RendererGL.cpp:1162
virtual bool DrawBuffer(VertexBuffer *, RenderState *, Material *, PrimitiveType) override final
Definition: RendererGL.cpp:934
virtual bool ReloadShaders() override final
Definition: RendererGL.cpp:1091
virtual Material * CreateMaterial(const MaterialDescriptor &descriptor) override final
Definition: RendererGL.cpp:1014
virtual ~RendererOGL() override final
Definition: RendererGL.cpp:265
virtual int GetMaximumNumberAASamples() const override final
Definition: RendererGL.cpp:435
virtual bool SupportsInstancing() override final
Definition: RendererGL.h:60
bool m_useNVDepthRanged
Definition: RendererGL.h:151
virtual matrix4x4f GetTransform() const override final
Definition: RendererGL.cpp:670
virtual bool EndFrame() override final
Definition: RendererGL.cpp:457
virtual bool DrawPointSprites(const Uint32 count, const vector3f *positions, RenderState *rs, Material *material, float size) override final
Definition: RendererGL.cpp:826
virtual bool SetScissor(bool enabled, const vector2f &pos=vector2f(0.0f), const vector2f &size=vector2f(0.0f)) override final
Definition: RendererGL.cpp:745
static void RegisterRenderer()
Definition: RendererGL.cpp:127
virtual bool SetLights(Uint32 numlights, const Light *l) override final
Definition: RendererGL.cpp:712
RendererOGL(SDL_Window *window, const Graphics::Settings &vs, SDL_GLContext &glContext)
Definition: RendererGL.cpp:140
Viewport m_viewport
Definition: RendererGL.h:159
virtual InstanceBuffer * CreateInstanceBuffer(Uint32 size, BufferUsage) override final
Definition: RendererGL.cpp:1224
bool m_useAnisotropicFiltering
Definition: RendererGL.h:129
virtual bool Screendump(ScreendumpState &sd) override final
Definition: RendererGL.cpp:1243
virtual Viewport GetViewport() const override final
Definition: RendererGL.cpp:659
Uint32 m_numLights
Definition: RendererGL.h:123
virtual bool SetProjection(const matrix4x4f &m) override final
Definition: RendererGL.cpp:695
virtual void PushState() override final
Definition: RendererGL.cpp:1233
virtual const char * GetName() const override final
Definition: RendererGL.h:52
Uint32 m_numDirLights
Definition: RendererGL.h:124
std::vector< GLuint > m_vertexAttribsSet
Definition: RendererGL.h:125
virtual bool SetPerspectiveProjection(float fov, float aspect, float near_, float far_) override final
Definition: RendererGL.cpp:675
matrix4x4f m_projectionMat
Definition: RendererGL.h:158
virtual VertexBuffer * CreateVertexBuffer(const VertexBufferDesc &) override final
Definition: RendererGL.cpp:1212
virtual bool DrawBufferIndexedInstanced(VertexBuffer *, IndexBuffer *, RenderState *, Material *, InstanceBuffer *, PrimitiveType=TRIANGLES) override final
Definition: RendererGL.cpp:992
virtual bool ClearDepthBuffer() override final
Definition: RendererGL.cpp:635
virtual bool SwapBuffers() override final
Definition: RendererGL.cpp:555
virtual bool SetClearColor(const Color &c) override final
Definition: RendererGL.cpp:646
bool m_useCompressedTextures
Definition: RendererGL.h:128
virtual bool SetOrthographicProjection(float xmin, float xmax, float ymin, float ymax, float zmin, float zmax) override final
Definition: RendererGL.cpp:687
virtual bool DrawTriangles(const VertexArray *vertices, RenderState *state, Material *material, PrimitiveType type=TRIANGLES) override final
Definition: RendererGL.cpp:762
virtual void PopState() override final
Definition: RendererGL.cpp:1238
virtual bool ClearScreen() override final
Definition: RendererGL.cpp:624
float m_minZNear
Definition: RendererGL.h:126
virtual bool FrameGrab(ScreendumpState &sd) override final
Definition: RendererGL.cpp:1265
matrix4x4f m_modelViewMat
Definition: RendererGL.h:157
virtual RenderState * CreateRenderState(const RenderStateDesc &) override final
Definition: RendererGL.cpp:1147
virtual bool SetRenderState(RenderState *) override final
Definition: RendererGL.cpp:574
static void CheckErrors(const char *func=nullptr, const int line=-1)
Definition: RendererGL.cpp:516
virtual void WriteRendererInfo(std::ostream &out) const override final
Definition: RendererGL.cpp:349
virtual Texture * CreateTexture(const TextureDescriptor &descriptor) override final
Definition: RendererGL.cpp:1126
virtual bool SetTransform(const matrix4x4f &m) override final
Definition: RendererGL.cpp:664
OGL::RenderTarget * m_activeRenderTarget
Definition: RendererGL.h:153
virtual bool DrawBufferIndexed(VertexBuffer *, IndexBuffer *, RenderState *, Material *, PrimitiveType) override final
Definition: RendererGL.cpp:952
virtual void CheckRenderErrors(const char *func=nullptr, const int line=-1) const override final
Definition: RendererGL.h:57
float m_maxZFar
Definition: RendererGL.h:127
OGL::Program * GetOrCreateProgram(OGL::Material *)
Definition: RendererGL.cpp:1102
virtual RendererType GetRendererType() const override final
Definition: RendererGL.h:53
virtual bool SetRenderTarget(RenderTarget *) override final
Definition: RendererGL.cpp:584
matrix4x4f & GetCurrentTransform()
Definition: RendererGL.h:133
matrix4x4f m_currentTransform
Definition: RendererGL.h:134
void SetMaterialShaderTransforms(Material *)
Definition: RendererGL.cpp:756
float m_invLogZfarPlus1
Definition: RendererGL.h:152
virtual matrix4x4f GetProjection() const override final
Definition: RendererGL.cpp:701
std::vector< std::pair< MaterialDescriptor, OGL::Program * > > m_programs
Definition: RendererGL.h:149
virtual IndexBuffer * CreateIndexBuffer(Uint32 size, BufferUsage) override final
Definition: RendererGL.cpp:1218
virtual Uint32 GetNumLights() const override final
Definition: RendererGL.h:93
std::unordered_map< Uint32, OGL::RenderState * > m_renderStates
Definition: RendererGL.h:150
virtual bool GetNearFarRange(float &near_, float &far_) const override final
Definition: RendererGL.cpp:442
virtual bool ResetDepthRange() override final
Definition: RendererGL.cpp:614
Definition: Renderer.h:39
Definition: Texture.h:106
Definition: VertexArray.h:19
Definition: VertexBuffer.h:80
Definition: RefCounted.h:36
Definition: Background.h:13
RendererType
Definition: Graphics.h:17
@ RENDERER_OPENGL_3x
Definition: Graphics.h:19
PrimitiveType
Definition: Types.h:46
@ TRIANGLES
Definition: Types.h:51
BufferUsage
Definition: Types.h:34
Definition: RenderState.h:10
Definition: RenderTarget.h:20
Definition: Graphics.h:95
Definition: Graphics.h:26
Definition: VertexBuffer.h:41
Definition: Graphics.h:58
vector2< float > vector2f
Definition: vector2.h:126