X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Fpublic-api%2Frendering%2Frenderer.cpp;h=90cb94e1319992a8e7b16d742a43135efa046606;hb=adae31cf70bdeed19789edc694d4baaf2fc67f21;hp=e894e30f10b928aac95be822cae1f353d79f7f01;hpb=9e6fd5c8ae44b09b759674e98135d57b29bd88e4;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/public-api/rendering/renderer.cpp b/dali/public-api/rendering/renderer.cpp index e894e30..90cb94e 100644 --- a/dali/public-api/rendering/renderer.cpp +++ b/dali/public-api/rendering/renderer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. + * Copyright (c) 2022 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,84 +16,85 @@ */ // CLASS HEADER -#include // Dali::Renderer +#include // Dali::Renderer // INTERNAL INCLUDES #include // Dali::Internal::Renderer namespace Dali { - -Renderer Renderer::New( Geometry& geometry, Shader& shader ) +Renderer Renderer::New(Geometry& geometry, Shader& shader) { - Internal::RendererPtr renderer = Internal::Renderer::New( ); - renderer->SetGeometry( GetImplementation(geometry) ); - renderer->SetShader( GetImplementation(shader) ); - return Renderer( renderer.Get() ); + Internal::RendererPtr renderer = Internal::Renderer::New(); + renderer->SetGeometry(GetImplementation(geometry)); + renderer->SetShader(GetImplementation(shader)); + return Renderer(renderer.Get()); } -Renderer::Renderer() +Renderer Renderer::New(RenderCallback& renderCallback) { + Internal::RendererPtr renderer = Internal::Renderer::New(); + renderer->SetRenderCallback(&renderCallback); + return Renderer(renderer.Get()); } -Renderer::~Renderer() -{ -} +Renderer::Renderer() = default; -Renderer::Renderer( const Renderer& handle ) -: Handle( handle ) -{ -} +Renderer::~Renderer() = default; -Renderer Renderer::DownCast( BaseHandle handle ) -{ - return Renderer( dynamic_cast(handle.GetObjectPtr())); -} +Renderer::Renderer(const Renderer& handle) = default; -Renderer& Renderer::operator=( const Renderer& handle ) +Renderer Renderer::DownCast(BaseHandle handle) { - BaseHandle::operator=( handle ); - return *this; + return Renderer(dynamic_cast(handle.GetObjectPtr())); } -void Renderer::SetGeometry( Geometry& geometry ) +Renderer& Renderer::operator=(const Renderer& handle) = default; + +Renderer::Renderer(Renderer&& rhs) noexcept = default; + +Renderer& Renderer::operator=(Renderer&& rhs) noexcept = default; + +void Renderer::SetGeometry(Geometry& geometry) { - DALI_ASSERT_ALWAYS( geometry && "Geometry handle not initialized" ); - GetImplementation(*this).SetGeometry( GetImplementation(geometry) ); + DALI_ASSERT_ALWAYS(geometry && "Geometry handle not initialized"); + GetImplementation(*this).SetGeometry(GetImplementation(geometry)); } Geometry Renderer::GetGeometry() const { - Internal::Geometry* geometryPtr( GetImplementation(*this).GetGeometry() ); - return Dali::Geometry( geometryPtr ); + return Dali::Geometry(GetImplementation(*this).GetGeometry().Get()); } -void Renderer::SetTextures( TextureSet& textureSet ) +void Renderer::SetTextures(TextureSet& textureSet) { - DALI_ASSERT_ALWAYS( textureSet && "TextureSet handle not initialized" ); - GetImplementation(*this).SetTextures( GetImplementation(textureSet) ); + DALI_ASSERT_ALWAYS(textureSet && "TextureSet handle not initialized"); + GetImplementation(*this).SetTextures(GetImplementation(textureSet)); } TextureSet Renderer::GetTextures() const { - Internal::TextureSet* textureSet( GetImplementation(*this).GetTextures() ); - return Dali::TextureSet( textureSet ); + return Dali::TextureSet(GetImplementation(*this).GetTextures().Get()); +} + +void Renderer::SetShader(Shader& shader) +{ + DALI_ASSERT_ALWAYS(shader && "Shader handle not initialized"); + GetImplementation(*this).SetShader(GetImplementation(shader)); } -void Renderer::SetShader( Shader& shader ) +void Renderer::SetRenderCallback(RenderCallback* callback) { - DALI_ASSERT_ALWAYS( shader && "Shader handle not initialized" ); - GetImplementation(*this).SetShader( GetImplementation(shader) ); + GetImplementation(*this).SetRenderCallback(callback); } Shader Renderer::GetShader() const { - Internal::Shader* shaderPtr( GetImplementation(*this).GetShader() ); - return Dali::Shader( shaderPtr ); + return Dali::Shader(GetImplementation(*this).GetShader().Get()); } -Renderer::Renderer( Internal::Renderer* pointer ) -: Handle( pointer ) +Renderer::Renderer(Internal::Renderer* pointer) +: Handle(pointer) { }