Pioneer
RenderTargetGL.h
Go to the documentation of this file.
1 // Copyright © 2008-2023 Pioneer Developers. See AUTHORS.txt for details
2 // Licensed under the terms of the GPL v3. See licenses/GPL-3.txt
3 
4 #ifndef _OGL_RENDERTARGET_H
5 #define _OGL_RENDERTARGET_H
6 /*
7  * Framebuffer object with switchable target textures.
8  * In theory you should use one texture format and size per FBO
9  * 2013-May-05 left out stencil buffer because we don't need it now
10  */
11 #include "OpenGLLibs.h"
12 #include "graphics/RenderTarget.h"
13 
14 namespace Graphics {
15 
16  class RendererOGL;
17 
18  namespace OGL {
19  class RenderStateCache;
20 
22  public:
23  ~RenderTarget();
24  virtual Texture *GetColorTexture() const override final;
25  virtual Texture *GetDepthTexture() const override final;
26  virtual void SetCubeFaceTexture(const Uint32 face, Texture *t) override final;
27  virtual void SetColorTexture(Texture *) override final;
28  virtual void SetDepthTexture(Texture *) override final;
29 
30  protected:
31  friend class Graphics::RendererOGL;
32  friend class RenderStateCache;
33 
35  void Bind();
36  void Unbind();
38  bool CheckStatus();
39 
41 
42  bool m_active;
43  GLuint m_fbo;
45 
48  };
49 
50  } // namespace OGL
51 
52 } // namespace Graphics
53 
54 #endif
Definition: RenderStateCache.h:26
Definition: RenderTargetGL.h:21
void Unbind()
Definition: RenderTargetGL.cpp:92
virtual Texture * GetDepthTexture() const override final
Definition: RenderTargetGL.cpp:47
~RenderTarget()
Definition: RenderTargetGL.cpp:35
RefCountedPtr< Texture > m_depthTexture
Definition: RenderTargetGL.h:47
bool CheckStatus()
Definition: RenderTargetGL.cpp:98
RendererOGL * m_renderer
Definition: RenderTargetGL.h:40
RefCountedPtr< Texture > m_colorTexture
Definition: RenderTargetGL.h:46
bool m_active
Definition: RenderTargetGL.h:42
virtual Texture * GetColorTexture() const override final
Definition: RenderTargetGL.cpp:42
void Bind()
Definition: RenderTargetGL.cpp:86
virtual void SetColorTexture(Texture *) override final
Definition: RenderTargetGL.cpp:63
virtual void SetCubeFaceTexture(const Uint32 face, Texture *t) override final
Definition: RenderTargetGL.cpp:53
GLuint m_depthRenderBuffer
Definition: RenderTargetGL.h:44
GLuint m_fbo
Definition: RenderTargetGL.h:43
void CreateDepthRenderbuffer()
Definition: RenderTargetGL.cpp:103
virtual void SetDepthTexture(Texture *) override final
Definition: RenderTargetGL.cpp:74
RenderTarget(RendererOGL *, const RenderTargetDesc &)
Definition: RenderTargetGL.cpp:26
Definition: RenderTarget.h:38
Definition: RendererGL.h:37
Definition: Texture.h:106
Definition: RefCounted.h:36
Definition: Background.h:14
Definition: RenderTarget.h:20