rendering classes refactoring

This commit is contained in:
devZoGok
2021-10-19 19:06:41 +03:00
parent 217061e67b
commit 8f49bd1125
25 changed files with 1028 additions and 951 deletions
+48 -43
View File
@@ -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");
}
}