mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-03-28 16:49:43 +00:00
ogl device buffer creation
now ogl mirrors dx side with ubo creation and clearing pushed up to the device level.
This commit is contained in:
parent
1e8841e6b5
commit
11d8604d8e
5 changed files with 52 additions and 17 deletions
|
|
@ -434,30 +434,27 @@ void GFXGLShaderConstBuffer::activate(GFXGLShaderConstBuffer* prevShaderBuffer)
|
|||
mWasLost = false;
|
||||
}
|
||||
|
||||
void GFXGLShaderConstBuffer::addBuffer(S32 bufBindingPoint, U32 size)
|
||||
void GFXGLShaderConstBuffer::addBuffer(const GFXShaderConstDesc desc)
|
||||
{
|
||||
// if this is the global buffer set it to the highest.
|
||||
if (bufBindingPoint == -1)
|
||||
if (desc.bindPoint == -1)
|
||||
{
|
||||
// we dont create a bufferhandle for this one.
|
||||
U8* buf = new U8[size];
|
||||
dMemset(buf, 0, size);
|
||||
U8* buf = new U8[desc.size];
|
||||
dMemset(buf, 0, desc.size);
|
||||
mBufferMap[-1].data = buf;
|
||||
mBufferMap[-1].size = size;
|
||||
mBufferMap[-1].size = desc.size;
|
||||
mBufferMap[-1].isDirty = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
U8* buf = new U8[size];
|
||||
dMemset(buf, 0, size);
|
||||
mBufferMap[bufBindingPoint].data = buf;
|
||||
mBufferMap[bufBindingPoint].size = size;
|
||||
mBufferMap[bufBindingPoint].isDirty = true;
|
||||
U8* buf = new U8[desc.size];
|
||||
dMemset(buf, 0, desc.size);
|
||||
mBufferMap[desc.bindPoint].data = buf;
|
||||
mBufferMap[desc.bindPoint].size = desc.size;
|
||||
mBufferMap[desc.bindPoint].isDirty = true;
|
||||
|
||||
GLuint uboHandle;
|
||||
glGenBuffers(1, &uboHandle);
|
||||
|
||||
mBufferMap[bufBindingPoint].bufHandle = uboHandle;
|
||||
mBufferMap[desc.bindPoint].bufHandle = GFXGL->getDeviceBuffer(desc);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -478,7 +475,7 @@ void GFXGLShaderConstBuffer::onShaderReload(GFXGLShader* shader)
|
|||
for (GFXGLShader::BufferMap::Iterator i = shader->mBuffers.begin(); i != shader->mBuffers.end(); ++i)
|
||||
{
|
||||
// add our buffer descriptions to the full const buffer.
|
||||
this->addBuffer(i->value.bindPoint, i->value.size);
|
||||
this->addBuffer(i->value);
|
||||
}
|
||||
|
||||
mWasLost = true;
|
||||
|
|
@ -1161,7 +1158,7 @@ GFXShaderConstBufferRef GFXGLShader::allocConstBuffer()
|
|||
for (BufferMap::Iterator i = mBuffers.begin(); i != mBuffers.end(); ++i)
|
||||
{
|
||||
// add our buffer descriptions to the full const buffer.
|
||||
buffer->addBuffer(i->value.bindPoint, i->value.size);
|
||||
buffer->addBuffer(i->value);
|
||||
}
|
||||
|
||||
buffer->registerResourceWithDevice(getOwningDevice());
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue