using std::string;
using std::unordered_map;
+string bindTargets[] = {"uColorTexture", "uBlendTexture", "uPointLightXP", "uPointLightXM", "uPointLightYP", "uPointLightYM", "uPointLightZP", "uPointLightZM" };
+
Texture::Texture(texTarget _target)
: texture_target(GL_TEXTURE_2D)
glGenTextures(1, &handle);
}
-void Texture::useTexture(unsigned int _unit) const
+void Texture::useTexture(bindTarget _unit) const
{
/* bind Texture*/
glActiveTexture(GL_TEXTURE0 + _unit);
glBindTexture(texture_target, handle);
-
- switch (_unit)
- {
- case 1:
- Shader::getShader()->setUniformLocation("uBlendTexture", _unit);
- break;
- case 2:
- Shader::getShader()->setUniformLocation("upointLightxp", _unit);
- break;
- case 3:
- Shader::getShader()->setUniformLocation("upointLightxm", _unit);
- break;
- case 4:
- Shader::getShader()->setUniformLocation("upointLightyp", _unit);
- break;
- case 5:
- Shader::getShader()->setUniformLocation("upointLightym", _unit);
- break;
- case 6:
- Shader::getShader()->setUniformLocation("upointLightzp", _unit);
- break;
- case 7:
- Shader::getShader()->setUniformLocation("upointLightzm", _unit);
- break;
- default:
- Shader::getShader()->setUniformLocation("uColorTexture", _unit);
- break;
- }
+
+ Shader::getShader()->setUniformLocation(bindTargets[_unit], _unit);
}
void Texture::updateSize(unsigned int _width, unsigned int _height)
texT_IMAGE
};
+enum bindTarget {
+ uCOLOR = 0,
+ uBLEND = 1,
+ uPLightXP = 2,
+ uPLightXM = 3,
+ uPLightYP = 4,
+ uPLightYM = 5,
+ uPLightZP = 6,
+ uPLightZM = 7,
+}; //Don't forget to assign the correct name in bindTargets at the beginning of Texture.cpp!
+
class Texture
{
public:
static Texture* newTImage(const std::string& path, const vec4& material);
static void deleteTImage(const unsigned int handle);
- Texture(texTarget target = texT_COLORBUFFER);
+ Texture(texTarget = texT_COLORBUFFER);
~Texture();
virtual void bindTexture(unsigned int width = 0, unsigned int height = 0);
virtual void unbindTexture();
- virtual void useTexture(unsigned int i=0) const;
+ virtual void useTexture(bindTarget = uCOLOR) const;
virtual void updateSize(unsigned int width = 0, unsigned int height = 0);
}
-void tImage::useTexture(unsigned int _unit) const
+void tImage::useTexture(bindTarget _unit) const
{
/* bind Texture*/
virtual ~tImage();
virtual void bindTexture(unsigned int width = 0, unsigned int height = 0) override;
- virtual void useTexture(unsigned int i=0) const override;
+ virtual void useTexture(bindTarget = uCOLOR) const override;
operator std::string() const;
/* BLEND BRIGHTNESS TO ORIGINAL*/
Shader::getShader(SH_BLEND)->useShader();
render->clearBuffer();
- //glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
//SceneObjects.front()->gTexture()->useTexture();
- shadowdir->getTexture()->useTexture();
- //render->getTexture(0)->useTexture();
- blurPingPong[!horizontal]->getTexture()->useTexture(1);
+ //shadowdir->getTexture()->useTexture();
+ render->getTexture(0)->useTexture(uCOLOR);
+ blurPingPong[!horizontal]->getTexture()->useTexture(uBLEND);
Model::getPlaneModel()->drawModel(mat4(1.f));
}
void main()
{
- gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);
+ //gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);
}