Skip to content

Commit

Permalink
Only set active uniforms. Most useful for debugging since generated s…
Browse files Browse the repository at this point in the history
…haders SHOULD not have inactive uniforms
  • Loading branch information
pjcozzi committed Nov 1, 2013
1 parent baf3535 commit 895987a
Showing 1 changed file with 14 additions and 5 deletions.
19 changes: 14 additions & 5 deletions Source/Scene/Model.js
Original file line number Diff line number Diff line change
Expand Up @@ -816,13 +816,15 @@ define([
function createUniformMaps(model, context) {
var loadResources = model._loadResources;

if (!loadResources.finishedTextureCreation()) {
if (!loadResources.finishedTextureCreation() || !loadResources.finishedProgramCreation()) {
return;
}

var name;
var materials = model.gltf.materials;
var techniques = model.gltf.techniques;
var gltf = model.gltf;
var materials = gltf.materials;
var techniques = gltf.techniques;
var programs = gltf.programs;

for (name in materials) {
if (materials.hasOwnProperty(name)) {
Expand All @@ -836,6 +838,8 @@ define([

var parameterValues = {};

// TODO: handle parameter.source, e.g., light

// Uniform parameters for this pass
for (name in uniforms) {
if (uniforms.hasOwnProperty(name)) {
Expand All @@ -856,16 +860,21 @@ define([
for (var i = 0; i < length; ++i) {
var instanceParam = instanceParameters[i];
var parameterValue = parameterValues[instanceParam.parameter];

parameterValue.func = gltfUniformFunctions[parameters[instanceParam.parameter].type](instanceParam.value, model, context);
}

var activeUniforms = programs[instanceProgram.program].czm.program.getAllUniforms();

// Create uniform map
var uniformMap = {};
for (name in parameterValues) {
if (parameterValues.hasOwnProperty(name)) {
var pv = parameterValues[name];
uniformMap[pv.uniformName] = pv.func;

// Only add active uniforms
if (defined(activeUniforms[pv.uniformName])) {
uniformMap[pv.uniformName] = pv.func;
}
}
}

Expand Down

0 comments on commit 895987a

Please sign in to comment.