+void FrameBuffer::DrawRenderedBuffer(Context& context)
+{
+ if(!mCaptureRenderedResult)
+ {
+ return;
+ }
+
+ if(mCaptured)
+ {
+ delete[] mRenderedBuffer;
+ }
+
+ context.BindFramebuffer(GL_FRAMEBUFFER, mId);
+ mRenderedBuffer = new GLubyte[mWidth * mHeight * sizeof(GL_UNSIGNED_BYTE)];
+ context.ReadPixels(0, 0, mWidth, mHeight, GL_RGBA, GL_UNSIGNED_BYTE, mRenderedBuffer);
+ context.BindFramebuffer(GL_FRAMEBUFFER, 0);
+ mCaptureRenderedResult = false;
+ mCaptured = true;
+}
+
+GLubyte* FrameBuffer::GetRenderedBuffer()
+{
+ if(mCaptured)
+ {
+ return mRenderedBuffer;
+ }
+ else
+ {
+ return nullptr;
+ }
+}
+
+void FrameBuffer::CaptureRenderingResult()
+{
+ mCaptureRenderedResult = true;
+}
+