diff --git a/MobileGL/MG_State/GLState/FramebufferState/FramebufferObject.cpp b/MobileGL/MG_State/GLState/FramebufferState/FramebufferObject.cpp index f1aed1ee..0b61d533 100644 --- a/MobileGL/MG_State/GLState/FramebufferState/FramebufferObject.cpp +++ b/MobileGL/MG_State/GLState/FramebufferState/FramebufferObject.cpp @@ -11,6 +11,7 @@ namespace MobileGL { : m_renderbuffer(renderbuffer) {} FramebufferAttachment::FramebufferAttachment(std::nullptr_t) : m_texture(nullptr), m_renderbuffer(nullptr) {} + FramebufferAttachment::FramebufferAttachment() : m_texture(nullptr), m_renderbuffer(nullptr) {} Bool FramebufferAttachment::IsTexture() const { return m_texture != nullptr; @@ -55,6 +56,10 @@ namespace MobileGL { } // FramebufferObject + FramebufferObject::FramebufferObject() { + m_attachments.fill(FramebufferAttachment(nullptr)); + } + void FramebufferObject::AttachTexture(FramebufferAttachmentType type, SharedPtr texture, int level) { m_attachments[static_cast(type)] = FramebufferAttachment(std::move(texture), level); diff --git a/MobileGL/MG_State/GLState/FramebufferState/FramebufferObject.h b/MobileGL/MG_State/GLState/FramebufferState/FramebufferObject.h index d2670c64..82ae0897 100644 --- a/MobileGL/MG_State/GLState/FramebufferState/FramebufferObject.h +++ b/MobileGL/MG_State/GLState/FramebufferState/FramebufferObject.h @@ -61,6 +61,7 @@ namespace MobileGL { explicit FramebufferAttachment(SharedPtr texture, Int level = 0); explicit FramebufferAttachment(SharedPtr renderbuffer); explicit FramebufferAttachment(std::nullptr_t); + explicit FramebufferAttachment(); Bool IsTexture() const; Bool IsRenderbuffer() const; @@ -72,8 +73,8 @@ namespace MobileGL { IntVec3 GetSize() const; private: - SharedPtr m_texture; - SharedPtr m_renderbuffer; + SharedPtr m_texture = nullptr; + SharedPtr m_renderbuffer = nullptr; Int m_textureLevel = 0; };