diff options
Diffstat (limited to 'src/libGLESv2/renderer/d3d/DynamicHLSL.cpp')
-rw-r--r-- | src/libGLESv2/renderer/d3d/DynamicHLSL.cpp | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/src/libGLESv2/renderer/d3d/DynamicHLSL.cpp b/src/libGLESv2/renderer/d3d/DynamicHLSL.cpp index a83ed54f..7086f47b 100644 --- a/src/libGLESv2/renderer/d3d/DynamicHLSL.cpp +++ b/src/libGLESv2/renderer/d3d/DynamicHLSL.cpp @@ -218,9 +218,11 @@ int DynamicHLSL::packVaryings(InfoLog &infoLog, VaryingPacking packing, rx::Frag std::set<std::string> packedVaryings; - for (unsigned int varyingIndex = 0; varyingIndex < fragmentShader->mVaryings.size(); varyingIndex++) + std::vector<gl::PackedVarying> &fragmentVaryings = fragmentShader->getVaryings(); + std::vector<gl::PackedVarying> &vertexVaryings = vertexShader->getVaryings(); + for (unsigned int varyingIndex = 0; varyingIndex < fragmentVaryings.size(); varyingIndex++) { - PackedVarying *varying = &fragmentShader->mVaryings[varyingIndex]; + PackedVarying *varying = &fragmentVaryings[varyingIndex]; if (packVarying(varying, maxVaryingVectors, packing)) { packedVaryings.insert(varying->name); @@ -238,9 +240,9 @@ int DynamicHLSL::packVaryings(InfoLog &infoLog, VaryingPacking packing, rx::Frag if (packedVaryings.find(transformFeedbackVarying) == packedVaryings.end()) { bool found = false; - for (unsigned int varyingIndex = 0; varyingIndex < vertexShader->mVaryings.size(); varyingIndex++) + for (unsigned int varyingIndex = 0; varyingIndex < vertexVaryings.size(); varyingIndex++) { - PackedVarying *varying = &vertexShader->mVaryings[varyingIndex]; + PackedVarying *varying = &vertexVaryings[varyingIndex]; if (transformFeedbackVarying == varying->name) { if (!packVarying(varying, maxVaryingVectors, packing)) @@ -281,9 +283,10 @@ std::string DynamicHLSL::generateVaryingHLSL(rx::VertexShaderD3D *shader) const std::string varyingSemantic = getVaryingSemantic(shader->mUsesPointSize); std::string varyingHLSL; - for (unsigned int varyingIndex = 0; varyingIndex < shader->mVaryings.size(); varyingIndex++) + std::vector<gl::PackedVarying> &varyings = shader->getVaryings(); + for (unsigned int varyingIndex = 0; varyingIndex < varyings.size(); varyingIndex++) { - const PackedVarying &varying = shader->mVaryings[varyingIndex]; + const PackedVarying &varying = varyings[varyingIndex]; if (varying.registerAssigned()) { GLenum transposedType = TransposeMatrixType(varying.type); @@ -608,7 +611,7 @@ void DynamicHLSL::storeUserLinkedVaryings(const rx::VertexShaderD3D *vertexShade std::vector<LinkedVarying> *linkedVaryings) const { const std::string &varyingSemantic = getVaryingSemantic(vertexShader->mUsesPointSize); - const std::vector<PackedVarying> &varyings = vertexShader->mVaryings; + const std::vector<PackedVarying> &varyings = vertexShader->getVaryings(); for (unsigned int varyingIndex = 0; varyingIndex < varyings.size(); varyingIndex++) { @@ -723,9 +726,10 @@ bool DynamicHLSL::generateShaderLinkHLSL(InfoLog &infoLog, int registers, const vertexHLSL += " output.gl_FragCoord = gl_Position;\n"; } - for (unsigned int vertVaryingIndex = 0; vertVaryingIndex < vertexShader->mVaryings.size(); vertVaryingIndex++) + const std::vector<PackedVarying> &vertexVaryings = vertexShader->getVaryings(); + for (unsigned int vertVaryingIndex = 0; vertVaryingIndex < vertexVaryings.size(); vertVaryingIndex++) { - const PackedVarying &varying = vertexShader->mVaryings[vertVaryingIndex]; + const PackedVarying &varying = vertexVaryings[vertVaryingIndex]; if (varying.registerAssigned()) { for (unsigned int elementIndex = 0; elementIndex < varying.elementCount(); elementIndex++) @@ -813,7 +817,7 @@ bool DynamicHLSL::generateShaderLinkHLSL(InfoLog &infoLog, int registers, const { defineOutputVariables(fragmentShader, programOutputVars); - const std::vector<sh::Attribute> &shaderOutputVars = fragmentShader->getOutputVariables(); + const std::vector<sh::Attribute> &shaderOutputVars = fragmentShader->getActiveOutputVariables(); for (auto locationIt = programOutputVars->begin(); locationIt != programOutputVars->end(); locationIt++) { const VariableLocation &outputLocation = locationIt->second; @@ -897,9 +901,10 @@ bool DynamicHLSL::generateShaderLinkHLSL(InfoLog &infoLog, int registers, const } } - for (unsigned int varyingIndex = 0; varyingIndex < fragmentShader->mVaryings.size(); varyingIndex++) + const std::vector<PackedVarying> &fragmentVaryings = fragmentShader->getVaryings(); + for (unsigned int varyingIndex = 0; varyingIndex < fragmentVaryings.size(); varyingIndex++) { - const PackedVarying &varying = fragmentShader->mVaryings[varyingIndex]; + const PackedVarying &varying = fragmentVaryings[varyingIndex]; if (varying.registerAssigned()) { for (unsigned int elementIndex = 0; elementIndex < varying.elementCount(); elementIndex++) @@ -953,7 +958,7 @@ bool DynamicHLSL::generateShaderLinkHLSL(InfoLog &infoLog, int registers, const void DynamicHLSL::defineOutputVariables(rx::FragmentShaderD3D *fragmentShader, std::map<int, VariableLocation> *programOutputVars) const { - const std::vector<sh::Attribute> &shaderOutputVars = fragmentShader->getOutputVariables(); + const std::vector<sh::Attribute> &shaderOutputVars = fragmentShader->getActiveOutputVariables(); for (unsigned int outputVariableIndex = 0; outputVariableIndex < shaderOutputVars.size(); outputVariableIndex++) { |