Added texture data format support

This commit is contained in:
2023-06-20 08:35:28 -07:00
parent 9aa6a0f529
commit 0b26b5a06a
20 changed files with 156 additions and 43 deletions

View File

@ -23,7 +23,32 @@ void SimpleBillboardedMaterial::onDispose() {
}
std::vector<struct ShaderPassItem> SimpleBillboardedMaterial::getRenderPasses(IRenderableContext &context) {
return {
auto mesh = this->item->getComponent<MeshRenderer>();
auto shader = this->getGame()->renderManager.getShaderManager()->getShader<SimpleBillboardedShader>(this->shaderLock);
};
assertNotNull(mesh);
assertNotNull(mesh->mesh);
assertNotNull(shader);
struct ShaderPassItem onlyPass;
onlyPass.mesh = mesh->mesh;
onlyPass.shader = shader;
onlyPass.colorValues[shader->paramColor] = this->color;
onlyPass.matrixValues[shader->paramModel] = this->transform->getWorldTransform();
onlyPass.parameterBuffers[shader->bufferRenderPipeline] = &context.renderPipeline->shaderBuffer;
onlyPass.renderFlags = (
RENDER_MANAGER_RENDER_FLAG_BLEND |
RENDER_MANAGER_RENDER_FLAG_DEPTH_TEST
);
if(this->texture != nullptr) {
onlyPass.boolValues[shader->paramHasTexture] = true;
onlyPass.textureSlots[0] = this->texture;
onlyPass.textureValues[shader->paramTexture] = 0;
} else {
onlyPass.boolValues[shader->paramHasTexture] = false;
}
return { onlyPass };
}

View File

@ -5,6 +5,7 @@
#pragma once
#include "scene/components/display/Material.hpp"
#include "scene/components/display/mesh/MeshRenderer.hpp"
namespace Dawn {
class SimpleBillboardedMaterial : public Material {