mirror of
https://github.com/devZoGok/vb01.git
synced 2026-08-26 19:43:30 +00:00
rendering classes refactoring
This commit is contained in:
+48
-43
@@ -8,34 +8,7 @@ namespace vb01{
|
||||
Material::Material(Type type){
|
||||
this->type=type;
|
||||
|
||||
string basePath="../../vb01/",shaderName;
|
||||
switch(type){
|
||||
case MATERIAL_2D:
|
||||
shaderName="texture.";
|
||||
break;
|
||||
case MATERIAL_PARTICLE:
|
||||
shaderName="particle.";
|
||||
break;
|
||||
case MATERIAL_SKYBOX:
|
||||
shaderName="skybox.";
|
||||
break;
|
||||
case MATERIAL_GUI:
|
||||
shaderName="gui.";
|
||||
break;
|
||||
case MATERIAL_POST:
|
||||
shaderName="postProcess.";
|
||||
break;
|
||||
case MATERIAL_TEXT:
|
||||
shaderName="text.";
|
||||
break;
|
||||
}
|
||||
/*
|
||||
if(type==MATERIAL_2D)
|
||||
//shader=new Shader(basePath+shaderName+"vert",basePath+shaderName+"frag");
|
||||
shader=new Shader(basePath+shaderName+"vert",basePath+shaderName+"frag",basePath+shaderName+"geo");
|
||||
else
|
||||
*/
|
||||
shader=new Shader(basePath+shaderName+"vert",basePath+shaderName+"frag");
|
||||
initShader();
|
||||
}
|
||||
|
||||
Material::~Material(){
|
||||
@@ -48,23 +21,56 @@ namespace vb01{
|
||||
delete t;
|
||||
}
|
||||
|
||||
void Material::initShader(){
|
||||
string basePath = "../../vb01/", shaderName;
|
||||
switch(type){
|
||||
case MATERIAL_2D:
|
||||
shaderName = "texture.";
|
||||
break;
|
||||
case MATERIAL_PARTICLE:
|
||||
shaderName = "particle.";
|
||||
break;
|
||||
case MATERIAL_SKYBOX:
|
||||
shaderName = "skybox.";
|
||||
break;
|
||||
case MATERIAL_GUI:
|
||||
shaderName = "gui.";
|
||||
break;
|
||||
case MATERIAL_POST:
|
||||
shaderName = "postProcess.";
|
||||
break;
|
||||
case MATERIAL_TEXT:
|
||||
shaderName = "text.";
|
||||
break;
|
||||
}
|
||||
/*
|
||||
if(type==MATERIAL_2D)
|
||||
//shader=new Shader(basePath+shaderName+"vert",basePath+shaderName+"frag");
|
||||
shader=new Shader(basePath+shaderName+"vert",basePath+shaderName+"frag",basePath+shaderName+"geo");
|
||||
else
|
||||
*/
|
||||
shader = new Shader(basePath + shaderName + "vert", basePath + shaderName + "frag");
|
||||
}
|
||||
|
||||
void Material::update(){
|
||||
shader->use();
|
||||
if(type==MATERIAL_2D){
|
||||
shader->setBool(lightingEnabled,"lightingEnabled");
|
||||
shader->setBool(normalMapEnabled,"normalMapEnabled");
|
||||
shader->setInt(0,"diffuseMap");
|
||||
shader->setInt(1,"normalMap");
|
||||
shader->setInt(2,"specularMap");
|
||||
shader->setInt(3,"parallaxMap");
|
||||
shader->setInt(4,"environmentMap");
|
||||
shader->setBool(texturingEnabled, "texturingEnabled");
|
||||
|
||||
if(type == MATERIAL_2D){
|
||||
shader->setBool(lightingEnabled, "lightingEnabled");
|
||||
shader->setBool(normalMapEnabled, "normalMapEnabled");
|
||||
shader->setInt(0, "diffuseMap");
|
||||
shader->setInt(1, "normalMap");
|
||||
shader->setInt(2, "specularMap");
|
||||
shader->setInt(3, "parallaxMap");
|
||||
shader->setInt(4, "environmentMap");
|
||||
}
|
||||
shader->setBool(texturingEnabled,"texturingEnabled");
|
||||
if(type==MATERIAL_GUI){
|
||||
shader->setBool(diffuseColorEnabled,"diffuseColorEnabled");
|
||||
else if(type == MATERIAL_GUI){
|
||||
shader->setBool(diffuseColorEnabled, "diffuseColorEnabled");
|
||||
if(diffuseColorEnabled)
|
||||
shader->setVec4(diffuseColor,"diffuseColor");
|
||||
shader->setVec4(diffuseColor, "diffuseColor");
|
||||
}
|
||||
|
||||
if(texturingEnabled){
|
||||
for(Texture *t : diffuseMapTextures)
|
||||
t->update(0);
|
||||
@@ -75,8 +81,7 @@ namespace vb01{
|
||||
for(Texture *t : parallaxMapTextures)
|
||||
t->update(3);
|
||||
}
|
||||
else {
|
||||
shader->setVec4(diffuseColor,"diffuseColor");
|
||||
}
|
||||
else
|
||||
shader->setVec4(diffuseColor, "diffuseColor");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user