Add Vec2ShaderParameter class for vec2 glsl type
parent
f16c355d11
commit
74bbe9fd1c
|
@ -87,6 +87,24 @@ FloatShaderParameter::operator=(float f)
|
|||
}
|
||||
|
||||
|
||||
Vec2ShaderParameter::Vec2ShaderParameter() :
|
||||
slot(-1)
|
||||
{
|
||||
}
|
||||
|
||||
Vec2ShaderParameter::Vec2ShaderParameter(GLuint obj, const char* name)
|
||||
{
|
||||
slot = glGetUniformLocation(obj, name);
|
||||
}
|
||||
|
||||
Vec2ShaderParameter&
|
||||
Vec2ShaderParameter::operator=(const Eigen::Vector2f& v)
|
||||
{
|
||||
if (slot != -1)
|
||||
glUniform2fv(slot, 1, v.data());
|
||||
return *this;
|
||||
}
|
||||
|
||||
Vec3ShaderParameter::Vec3ShaderParameter() :
|
||||
slot(-1)
|
||||
{
|
||||
|
|
|
@ -98,6 +98,18 @@ class FloatShaderParameter
|
|||
};
|
||||
|
||||
|
||||
class Vec2ShaderParameter
|
||||
{
|
||||
public:
|
||||
Vec2ShaderParameter();
|
||||
Vec2ShaderParameter(GLuint obj, const char* name);
|
||||
|
||||
Vec2ShaderParameter& operator=(const Eigen::Vector2f&);
|
||||
|
||||
private:
|
||||
int slot;
|
||||
};
|
||||
|
||||
class Vec3ShaderParameter
|
||||
{
|
||||
public:
|
||||
|
|
|
@ -3495,6 +3495,12 @@ CelestiaGLProgram::samplerParam(const string& paramName)
|
|||
}
|
||||
|
||||
|
||||
Vec2ShaderParameter
|
||||
CelestiaGLProgram::vec2Param(const string& paramName)
|
||||
{
|
||||
return Vec2ShaderParameter(program->getID(), paramName.c_str());
|
||||
}
|
||||
|
||||
Vec3ShaderParameter
|
||||
CelestiaGLProgram::vec3Param(const string& paramName)
|
||||
{
|
||||
|
|
|
@ -278,6 +278,7 @@ class CelestiaGLProgram
|
|||
FloatShaderParameter floatParam(const std::string&);
|
||||
IntegerShaderParameter intParam(const std::string&);
|
||||
IntegerShaderParameter samplerParam(const std::string&);
|
||||
Vec2ShaderParameter vec2Param(const std::string&);
|
||||
Vec3ShaderParameter vec3Param(const std::string&);
|
||||
Vec4ShaderParameter vec4Param(const std::string&);
|
||||
Mat3ShaderParameter mat3Param(const std::string&);
|
||||
|
|
Loading…
Reference in New Issue