Switching SceneItems to smarts
This commit is contained in:
@ -9,7 +9,7 @@
|
||||
|
||||
using namespace Dawn;
|
||||
|
||||
SimpleBillboardedMaterial::SimpleBillboardedMaterial(SceneItem *i) :
|
||||
SimpleBillboardedMaterial::SimpleBillboardedMaterial(std::weak_ptr<SceneItem> i) :
|
||||
Material(i)
|
||||
{
|
||||
}
|
||||
@ -25,7 +25,7 @@ void SimpleBillboardedMaterial::onDispose() {
|
||||
std::vector<struct ShaderPassItem>
|
||||
SimpleBillboardedMaterial::getRenderPasses(IRenderableContext &context)
|
||||
{
|
||||
auto mesh = item->getComponent<MeshRenderer>();
|
||||
auto mesh = item.lock()->getComponent<MeshRenderer>();
|
||||
auto shader = getShaderManager().getShader<SimpleBillboardedShader>(this->shaderLock);
|
||||
|
||||
assertNotNull(mesh, "Mesh cannot be null");
|
||||
@ -36,7 +36,7 @@ std::vector<struct ShaderPassItem>
|
||||
onlyPass.mesh = mesh->mesh;
|
||||
onlyPass.shader = shader;
|
||||
onlyPass.colorValues[shader->paramColor] = this->color;
|
||||
onlyPass.matrixValues[shader->paramModel] = item->getWorldTransform();
|
||||
onlyPass.matrixValues[shader->paramModel] = item.lock()->getWorldTransform();
|
||||
onlyPass.parameterBuffers[shader->bufferRenderPipeline] =
|
||||
&context.renderPipeline->shaderBuffer
|
||||
;
|
||||
|
@ -23,7 +23,7 @@ namespace Dawn {
|
||||
*
|
||||
* @param i Scene Item this interface belongs to.
|
||||
*/
|
||||
SimpleBillboardedMaterial(SceneItem *i);
|
||||
SimpleBillboardedMaterial(std::weak_ptr<SceneItem> i);
|
||||
|
||||
void onStart() override;
|
||||
void onDispose() override;
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
using namespace Dawn;
|
||||
|
||||
SimpleTexturedMaterial::SimpleTexturedMaterial(SceneItem *i) :
|
||||
SimpleTexturedMaterial::SimpleTexturedMaterial(std::weak_ptr<SceneItem> i) :
|
||||
Material(i)
|
||||
{
|
||||
}
|
||||
@ -24,7 +24,7 @@ void SimpleTexturedMaterial::onDispose() {
|
||||
std::vector<struct ShaderPassItem>
|
||||
SimpleTexturedMaterial::getRenderPasses(IRenderableContext &context)
|
||||
{
|
||||
auto mesh = this->item->getComponent<MeshRenderer>();
|
||||
auto mesh = this->item.lock()->getComponent<MeshRenderer>();
|
||||
auto shader = getShaderManager()
|
||||
.getShader<SimpleTexturedShader>(this->shaderLock)
|
||||
;
|
||||
@ -38,7 +38,7 @@ std::vector<struct ShaderPassItem>
|
||||
onlyPass.shader = shader;
|
||||
onlyPass.colorValues[shader->paramColor] = this->color;
|
||||
onlyPass.matrixValues[shader->paramModel] =
|
||||
item->getWorldTransform()
|
||||
item.lock()->getWorldTransform()
|
||||
;
|
||||
onlyPass.parameterBuffers[
|
||||
shader->bufferRenderPipeline
|
||||
|
@ -25,7 +25,7 @@ namespace Dawn {
|
||||
*
|
||||
* @param i Scene Item this interface belongs to.
|
||||
*/
|
||||
SimpleTexturedMaterial(SceneItem *i);
|
||||
SimpleTexturedMaterial(std::weak_ptr<SceneItem> i);
|
||||
|
||||
void onStart() override;
|
||||
void onDispose() override;
|
||||
|
Reference in New Issue
Block a user