|
@@ -199,11 +199,18 @@ void RenderThread::processDrawBuffer(GPUDrawBuffer *buffer) {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ bool rebindAttributes = false;
|
|
|
|
|
+
|
|
|
|
|
+ if(localShaderBinding->targetShader != shaderPass.shader) {
|
|
|
|
|
+ localShaderBinding->targetShader = shaderPass.shader;
|
|
|
|
|
+ rebindAttributes = true;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
for(int p=0; p < localShaderBinding->getNumLocalParams(); p++) {
|
|
for(int p=0; p < localShaderBinding->getNumLocalParams(); p++) {
|
|
|
|
|
|
|
|
LocalShaderParam *localParam = localShaderBinding->getLocalParam(p);
|
|
LocalShaderParam *localParam = localShaderBinding->getLocalParam(p);
|
|
|
if(localParam) {
|
|
if(localParam) {
|
|
|
- if(!localParam->param) {
|
|
|
|
|
|
|
+ if(!localParam->param || rebindAttributes) {
|
|
|
localParam->param = shaderPass.shader->getParamPointer(localParam->name);
|
|
localParam->param = shaderPass.shader->getParamPointer(localParam->name);
|
|
|
}
|
|
}
|
|
|
if(localParam->param) {
|
|
if(localParam->param) {
|
|
@@ -214,13 +221,6 @@ void RenderThread::processDrawBuffer(GPUDrawBuffer *buffer) {
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- bool rebindAttributes = false;
|
|
|
|
|
-
|
|
|
|
|
- if(localShaderBinding->targetShader != shaderPass.shader) {
|
|
|
|
|
- localShaderBinding->targetShader = shaderPass.shader;
|
|
|
|
|
- rebindAttributes = true;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
|
|
|
|
|
for(int a=0; a < localShaderBinding->getNumAttributeBindings(); a++) {
|
|
for(int a=0; a < localShaderBinding->getNumAttributeBindings(); a++) {
|
|
|
|
|
|