[core] add generic base class for renderbuffers

This commit is contained in:
Konstantin Käfer
2019-03-20 15:27:13 +01:00
parent 839f4687aa
commit be3b5917c1
13 changed files with 134 additions and 84 deletions

View File

@@ -17,7 +17,7 @@ public:
}
Impl(gl::Context& context_,
const Size size_,
gl::Renderbuffer<gfx::RenderbufferPixelType::Depth>& depth_,
gfx::Renderbuffer<gfx::RenderbufferPixelType::Depth>& depth_,
const gfx::TextureChannelDataType type_)
: context(context_), size(std::move(size_)), depth(&depth_), type(type_) {
assert(!size.isEmpty());
@@ -58,7 +58,7 @@ private:
const Size size;
optional<gl::Framebuffer> framebuffer;
optional<gfx::Texture> texture;
gl::Renderbuffer<gfx::RenderbufferPixelType::Depth>* depth = nullptr;
gfx::Renderbuffer<gfx::RenderbufferPixelType::Depth>* depth = nullptr;
const gfx::TextureChannelDataType type;
};
@@ -72,7 +72,7 @@ OffscreenTexture::OffscreenTexture(gfx::Context& context,
OffscreenTexture::OffscreenTexture(gfx::Context& context,
const Size size,
gl::Renderbuffer<gfx::RenderbufferPixelType::Depth>& renderbuffer,
gfx::Renderbuffer<gfx::RenderbufferPixelType::Depth>& renderbuffer,
const gfx::TextureChannelDataType type)
// TODO: remove cast
: impl(std::make_unique<Impl>(reinterpret_cast<gl::Context&>(context), std::move(size), renderbuffer, type)) {