Added texture data format support
This commit is contained in:
@ -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 };
|
||||
}
|
@ -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 {
|
||||
|
Reference in New Issue
Block a user