mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-02-18 06:03:48 +00:00
fixes for opengl uniform buffer loading
This fix allows uniform buffers to be used with glsl shaders. Small issue with uniform buffers not being initialized correctly.
This commit is contained in:
parent
85d4fa1bda
commit
ab36fe24ec
2 changed files with 7 additions and 2 deletions
|
|
@ -323,9 +323,13 @@ GLuint GFXGLDevice::getDeviceBuffer(const GFXShaderConstDesc desc)
|
|||
|
||||
GLuint uboHandle;
|
||||
glGenBuffers(1, &uboHandle);
|
||||
glBindBuffer(GL_UNIFORM_BUFFER, uboHandle);
|
||||
glBufferData(GL_UNIFORM_BUFFER, desc.size, NULL, GL_DYNAMIC_DRAW); // allocate once
|
||||
|
||||
mDeviceBufferMap[name] = uboHandle;
|
||||
|
||||
glBindBuffer(GL_UNIFORM_BUFFER, 0);
|
||||
|
||||
return uboHandle;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -713,7 +713,8 @@ void GFXGLShader::initConstantDescs()
|
|||
|
||||
// fill out ubo desc.
|
||||
desc.name = String((char*)uboName);
|
||||
desc.bindPoint = uboBinding;
|
||||
desc.bindPoint = uboBinding == 0 ? glGetUniformBlockIndex(mProgram, uboName) : uboBinding;
|
||||
glUniformBlockBinding(mProgram, glGetUniformBlockIndex(mProgram, uboName), desc.bindPoint);
|
||||
desc.size = uboSize;
|
||||
desc.constType = GFXSCT_ConstBuffer;
|
||||
desc.samplerReg = -1;
|
||||
|
|
@ -888,7 +889,7 @@ void GFXGLShader::initHandles()
|
|||
// Index element 1 of the name to skip the '$' we inserted earier.
|
||||
GLint loc = glGetUniformLocation(mProgram, &desc.name.c_str()[1]);
|
||||
|
||||
AssertFatal(loc != -1, avar("uniform %s in shader file Vert: (%s) Frag: (%s)", &desc.name.c_str()[1], mVertexFile.getFullPath().c_str(), mPixelFile.getFullPath().c_str()));
|
||||
//AssertFatal(loc != -1, avar("uniform %s in shader file Vert: (%s) Frag: (%s)", &desc.name.c_str()[1], mVertexFile.getFullPath().c_str(), mPixelFile.getFullPath().c_str()));
|
||||
|
||||
HandleMap::Iterator handle = mHandles.find(desc.name);
|
||||
S32 sampler = -1;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue