24 lines
456 B
C++
24 lines
456 B
C++
|
|
#include "FrameBuffer.h"
|
||
|
|
|
||
|
|
FrameBuffer::FrameBuffer(uint32_t width, uint32_t height, void* buffer) {
|
||
|
|
mWidth = width;
|
||
|
|
mHeight = height;
|
||
|
|
mPixelSize = mWidth * mHeight;
|
||
|
|
if (!buffer) {
|
||
|
|
buffer = new RGBA[mPixelSize];
|
||
|
|
mExternBuffer = false;
|
||
|
|
}
|
||
|
|
else {
|
||
|
|
mExternBuffer = true;
|
||
|
|
}
|
||
|
|
|
||
|
|
mColorBuffer = (RGBA*)buffer;
|
||
|
|
mDepthBuffer = new float[mPixelSize] {};
|
||
|
|
}
|
||
|
|
|
||
|
|
FrameBuffer::~FrameBuffer() {
|
||
|
|
if (!mExternBuffer && mColorBuffer) {
|
||
|
|
delete[] mColorBuffer;
|
||
|
|
}
|
||
|
|
}
|