From 3eac2cf1d6044338987f592002b735eb7916f3e9 Mon Sep 17 00:00:00 2001
From: SamGondelman <samuel@highfidelity.io>
Date: Thu, 16 May 2019 18:31:45 -0700
Subject: [PATCH] =?UTF-8?q?(=E3=81=A5=EF=BD=A1=E2=97=95=E2=80=BF=E2=80=BF?=
 =?UTF-8?q?=E2=97=95=EF=BD=A1)=E3=81=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 libraries/gpu/src/gpu/ShaderConstants.h           |  1 -
 .../procedural/src/procedural/Procedural.cpp      |  2 +-
 .../src/procedural/ProceduralCommon.slh           |  2 +-
 .../procedural/src/procedural/ShaderConstants.h   | 15 +++++++++++----
 libraries/render-utils/src/MeshPartPayload.cpp    |  2 ++
 5 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/libraries/gpu/src/gpu/ShaderConstants.h b/libraries/gpu/src/gpu/ShaderConstants.h
index 1a37c69784..c2637e2dfb 100644
--- a/libraries/gpu/src/gpu/ShaderConstants.h
+++ b/libraries/gpu/src/gpu/ShaderConstants.h
@@ -21,7 +21,6 @@
 
 #define GPU_TEXTURE_TRANSFORM_OBJECT 31
 
-
 #define GPU_RESOURCE_BUFFER_SLOT0_TEXTURE 35
 #define GPU_RESOURCE_BUFFER_SLOT1_TEXTURE 36
 #define GPU_RESOURCE_BUFFER_SLOT0_STORAGE 0
diff --git a/libraries/procedural/src/procedural/Procedural.cpp b/libraries/procedural/src/procedural/Procedural.cpp
index cd872a84fc..7cb2f09bb7 100644
--- a/libraries/procedural/src/procedural/Procedural.cpp
+++ b/libraries/procedural/src/procedural/Procedural.cpp
@@ -430,7 +430,7 @@ void Procedural::setupUniforms() {
         }
 
         _standardInputsBuffer->setSubData(0, _standardInputs);
-        batch.setUniformBuffer(0, _standardInputsBuffer, 0, sizeof(StandardInputs));
+        batch.setUniformBuffer(procedural::slot::buffer::Inputs, _standardInputsBuffer, 0, sizeof(StandardInputs));
     });
 }
 
diff --git a/libraries/procedural/src/procedural/ProceduralCommon.slh b/libraries/procedural/src/procedural/ProceduralCommon.slh
index 6e73534440..2915f096e6 100644
--- a/libraries/procedural/src/procedural/ProceduralCommon.slh
+++ b/libraries/procedural/src/procedural/ProceduralCommon.slh
@@ -24,7 +24,7 @@ LAYOUT(binding=PROCEDURAL_TEXTURE_CHANNEL3) uniform sampler2D iChannel3;
 // comptability with existing procedural shaders that previously relied on these 
 // inputs as uniforms, not members of a UBO
 
-LAYOUT_STD140(binding=0) uniform standardInputsBuffer {
+LAYOUT_STD140(binding=PROCEDURAL_BUFFER_INPUTS) uniform standardInputsBuffer {
     // Offset 0
     vec4 date;
     // Offset 16, acts as vec4 for alignment purposes
diff --git a/libraries/procedural/src/procedural/ShaderConstants.h b/libraries/procedural/src/procedural/ShaderConstants.h
index cd0d997050..f1336b6479 100644
--- a/libraries/procedural/src/procedural/ShaderConstants.h
+++ b/libraries/procedural/src/procedural/ShaderConstants.h
@@ -14,17 +14,24 @@
 #ifndef PROCEDURAL_SHADER_CONSTANTS_H
 #define PROCEDURAL_SHADER_CONSTANTS_H
 
+#define PROCEDURAL_BUFFER_INPUTS 7
+
 #define PROCEDURAL_UNIFORM_CUSTOM 220
 
-#define PROCEDURAL_TEXTURE_CHANNEL0 0
-#define PROCEDURAL_TEXTURE_CHANNEL1 1
-#define PROCEDURAL_TEXTURE_CHANNEL2 2
-#define PROCEDURAL_TEXTURE_CHANNEL3 3
+#define PROCEDURAL_TEXTURE_CHANNEL0 2
+#define PROCEDURAL_TEXTURE_CHANNEL1 3
+#define PROCEDURAL_TEXTURE_CHANNEL2 4
+#define PROCEDURAL_TEXTURE_CHANNEL3 5
 
 // <!
 
 namespace procedural { namespace slot {
 
+namespace buffer {
+enum Bufffer {
+    Inputs = PROCEDURAL_BUFFER_INPUTS,
+};
+}
 
 namespace uniform {
 enum Uniform {
diff --git a/libraries/render-utils/src/MeshPartPayload.cpp b/libraries/render-utils/src/MeshPartPayload.cpp
index d1f20fc2a9..eaeac40e2c 100644
--- a/libraries/render-utils/src/MeshPartPayload.cpp
+++ b/libraries/render-utils/src/MeshPartPayload.cpp
@@ -174,6 +174,7 @@ void MeshPartPayload::render(RenderArgs* args) {
         outColor = procedural->getColor(outColor);
         procedural->prepare(batch, _drawTransform.getTranslation(), _drawTransform.getScale(), _drawTransform.getRotation(), 0, // FIXME: pass in _created
                             ProceduralProgramKey(outColor.a < 1.0f));
+        batch._glColor4f(outColor.r, outColor.g, outColor.b, outColor.a);
     } else {
         // apply material properties
         if (RenderPipelines::bindMaterials(_drawMaterials, batch, args->_renderMode, args->_enableTexturing)) {
@@ -469,6 +470,7 @@ void ModelMeshPartPayload::render(RenderArgs* args) {
         outColor = procedural->getColor(outColor);
         procedural->prepare(batch, _drawTransform.getTranslation(), _drawTransform.getScale(), _drawTransform.getRotation(), 0,// FIXME: pass in _created
                             ProceduralProgramKey(outColor.a < 1.0f, _shapeKey.isDeformed(), _shapeKey.isDualQuatSkinned()));
+        batch._glColor4f(outColor.r, outColor.g, outColor.b, outColor.a);
     } else {
         // apply material properties
         if (RenderPipelines::bindMaterials(_drawMaterials, batch, args->_renderMode, args->_enableTexturing)) {