namespace Dali
{
+
+struct UniformData
+{
+ std::string name;
+ Property::Type type;
+ UniformData( const std::string& name, Property::Type type = Property::Type::NONE)
+ : name(name), type(type)
+ {}
+};
+
class DALI_CORE_API TestGlAbstraction : public Dali::Integration::GlAbstraction
{
public:
if(it2 == uniformIDs.end())
{
// Uniform not found, so add it...
- uniformIDs[name] = ++mLastUniformIdUsed;
+ uniformIDs[name] = mLastUniformIdUsed++;
return mLastUniformIdUsed;
}
mShaderTrace.PushCall("LinkProgram", out.str(), namedParams);
mNumberOfActiveUniforms = 3;
- GetUniformLocation(program, "sTexture");
+
+ GetUniformLocation(program, "uRendererColor");
+ GetUniformLocation(program, "uCustom");
+ GetUniformLocation(program, "uCustom3");
+ GetUniformLocation(program, "uFadeColor");
+ GetUniformLocation(program, "uUniform1");
+ GetUniformLocation(program, "uUniform2");
+ GetUniformLocation(program, "uUniform3");
+ GetUniformLocation(program, "uFadeProgress");
+ GetUniformLocation(program, "uANormalMatrix");
GetUniformLocation(program, "sEffect");
+ GetUniformLocation(program, "sTexture");
+ GetUniformLocation(program, "sTextureRect");
GetUniformLocation(program, "sGloss");
+ GetUniformLocation(program, "uColor");
+ GetUniformLocation(program, "uModelMatrix");
+ GetUniformLocation(program, "uModelView");
+ GetUniformLocation(program, "uMvpMatrix");
+ GetUniformLocation(program, "uNormalMatrix");
+ GetUniformLocation(program, "uProjection");
+ GetUniformLocation(program, "uSize");
+ GetUniformLocation(program, "uViewMatrix");
+ GetUniformLocation(program, "uLightCameraProjectionMatrix");
+ GetUniformLocation(program, "uLightCameraViewMatrix");
+
+ for( const auto& uniform : mCustomUniformData )
+ {
+ GetUniformLocation(program, uniform.name.c_str());
+ }
}
inline void PixelStorei(GLenum pname, GLint param) override
out << std::hex << target << ", " << pname << ", " << param;
std::string params = out.str();
+ out.str("");
+ out << std::hex << target;
TraceCallStack::NamedParams namedParams;
- namedParams["target"] << std::hex << target;
- namedParams["pname"] << std::hex << pname;
- namedParams["param"] << param;
+ namedParams["target"] << out.str();
+ out.str("");
+ out << std::hex << pname;
+ namedParams["pname"] << out.str();
+ out.str("");
+ out << std::hex << param;
+ namedParams["param"] << out.str();
mTexParameterTrace.PushCall("TexParameteri", params, namedParams);
}
}
}
- fprintf(stderr, "Not found, printing possible values:\n");
+ fprintf(stderr, "%s Not found, printing possible values:\n", name);
for(ProgramUniformMap::const_iterator program_it = mUniforms.begin();
program_it != mUniforms.end();
++program_it)
if(mProgramUniforms.GetUniformValue(programId, uniformId, origValue))
{
std::stringstream out;
- out << uniform_it->first << ": " << origValue;
+ out << "Program: " << programId << ", " << uniform_it->first << ": " << origValue;
fprintf(stderr, "%s\n", out.str().c_str());
}
}
return false;
}
+ inline void SetCustomUniforms(std::vector<UniformData>& customUniformData)
+ {
+ mCustomUniformData = customUniformData;
+ }
+
inline GLuint GetLastShaderCompiled() const
{
return mLastShaderCompiled;
typedef std::map<GLuint, UniformIDMap> ProgramUniformMap;
ProgramUniformMap mUniforms;
+ std::vector<UniformData> mCustomUniformData{};
+
template<typename T>
struct ProgramUniformValue : public std::map<GLuint, std::map<GLint, T> >
{