Commit ce79dda1 by Jamie Madill

Change the varyings list type from a linked list to a vector type.

TRAC #23746 Signed-off-by: Nicolas Capens Signed-off-by: Shannon Woods
parent 1cb333eb
......@@ -932,8 +932,9 @@ int ProgramBinary::packVaryings(InfoLog &infoLog, const Varying *packing[][4], F
fragmentShader->resetVaryingsRegisterAssignment();
for (VaryingList::iterator varying = fragmentShader->mVaryings.begin(); varying != fragmentShader->mVaryings.end(); varying++)
for (unsigned int varyingIndex = 0; varyingIndex < fragmentShader->mVaryings.size(); varyingIndex++)
{
Varying *varying = &fragmentShader->mVaryings[varyingIndex];
GLenum transposedType = TransposeMatrixType(varying->type);
int n = VariableRowCount(transposedType) * varying->size;
int m = VariableColumnCount(transposedType);
......@@ -1141,12 +1142,14 @@ bool ProgramBinary::linkVaryings(InfoLog &infoLog, int registers, const Varying
vertexShader->resetVaryingsRegisterAssignment();
for (VaryingList::iterator input = fragmentShader->mVaryings.begin(); input != fragmentShader->mVaryings.end(); input++)
for (unsigned int fragVaryingIndex = 0; fragVaryingIndex < fragmentShader->mVaryings.size(); fragVaryingIndex++)
{
Varying *input = &fragmentShader->mVaryings[fragVaryingIndex];
bool matched = false;
for (VaryingList::iterator output = vertexShader->mVaryings.begin(); output != vertexShader->mVaryings.end(); output++)
for (unsigned int vertVaryingIndex = 0; vertVaryingIndex < vertexShader->mVaryings.size(); vertVaryingIndex++)
{
Varying *output = &vertexShader->mVaryings[vertVaryingIndex];
if (output->name == input->name)
{
if (output->type != input->type || output->size != input->size || output->interpolation != input->interpolation)
......@@ -1296,8 +1299,9 @@ bool ProgramBinary::linkVaryings(InfoLog &infoLog, int registers, const Varying
vertexHLSL += " output.gl_FragCoord = gl_Position;\n";
}
for (VaryingList::iterator varying = vertexShader->mVaryings.begin(); varying != vertexShader->mVaryings.end(); varying++)
for (unsigned int vertVaryingIndex = 0; vertVaryingIndex < vertexShader->mVaryings.size(); vertVaryingIndex++)
{
Varying *varying = &vertexShader->mVaryings[vertVaryingIndex];
if (varying->reg >= 0)
{
for (int i = 0; i < varying->size; i++)
......@@ -1494,8 +1498,9 @@ bool ProgramBinary::linkVaryings(InfoLog &infoLog, int registers, const Varying
}
}
for (VaryingList::iterator varying = fragmentShader->mVaryings.begin(); varying != fragmentShader->mVaryings.end(); varying++)
for (unsigned int varyingIndex = 0; varyingIndex < fragmentShader->mVaryings.size(); varyingIndex++)
{
Varying *varying = &fragmentShader->mVaryings[varyingIndex];
if (varying->reg >= 0)
{
for (int i = 0; i < varying->size; i++)
......@@ -1574,8 +1579,9 @@ std::string ProgramBinary::generateVaryingHLSL(FragmentShader *fragmentShader, c
{
std::string varyingHLSL;
for (VaryingList::iterator varying = fragmentShader->mVaryings.begin(); varying != fragmentShader->mVaryings.end(); varying++)
for (unsigned int varyingIndex = 0; varyingIndex < fragmentShader->mVaryings.size(); varyingIndex++)
{
Varying *varying = &fragmentShader->mVaryings[varyingIndex];
if (varying->reg >= 0)
{
for (int i = 0; i < varying->size; i++)
......
......@@ -241,10 +241,11 @@ void Shader::parseVaryings(void *compiler)
void Shader::resetVaryingsRegisterAssignment()
{
for (VaryingList::iterator var = mVaryings.begin(); var != mVaryings.end(); var++)
for (unsigned int varyingIndex = 0; varyingIndex < mVaryings.size(); varyingIndex++)
{
var->reg = -1;
var->col = -1;
Varying *varying = &mVaryings[varyingIndex];
varying->reg = -1;
varying->col = -1;
}
}
......@@ -525,7 +526,7 @@ void FragmentShader::compile()
compileToHLSL(mFragmentCompiler);
parseVaryings(mFragmentCompiler);
mVaryings.sort(compareVarying);
std::sort(mVaryings.begin(), mVaryings.end(), compareVarying);
const std::string &hlsl = getHLSL();
if (!hlsl.empty())
......
......@@ -60,8 +60,6 @@ struct Varying
int col; // First register element, assigned during link
};
typedef std::list<Varying> VaryingList;
class Shader
{
friend class ProgramBinary;
......@@ -111,7 +109,7 @@ class Shader
const rx::Renderer *const mRenderer;
VaryingList mVaryings;
std::vector<Varying> mVaryings;
bool mUsesMultipleRenderTargets;
bool mUsesFragColor;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment