Merge "Ensure BaseHandle class move noexcept (core public-api)" into devel/master
[platform/core/uifw/dali-core.git] / dali / public-api / rendering / renderer.cpp
index f857986..90cb94e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2020 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.
@@ -31,6 +31,13 @@ Renderer Renderer::New(Geometry& geometry, Shader& shader)
   return Renderer(renderer.Get());
 }
 
+Renderer Renderer::New(RenderCallback& renderCallback)
+{
+  Internal::RendererPtr renderer = Internal::Renderer::New();
+  renderer->SetRenderCallback(&renderCallback);
+  return Renderer(renderer.Get());
+}
+
 Renderer::Renderer() = default;
 
 Renderer::~Renderer() = default;
@@ -44,9 +51,9 @@ Renderer Renderer::DownCast(BaseHandle handle)
 
 Renderer& Renderer::operator=(const Renderer& handle) = default;
 
-Renderer::Renderer(Renderer&& rhs) = default;
+Renderer::Renderer(Renderer&& rhs) noexcept = default;
 
-Renderer& Renderer::operator=(Renderer&& rhs) = default;
+Renderer& Renderer::operator=(Renderer&& rhs) noexcept = default;
 
 void Renderer::SetGeometry(Geometry& geometry)
 {
@@ -76,6 +83,11 @@ void Renderer::SetShader(Shader& shader)
   GetImplementation(*this).SetShader(GetImplementation(shader));
 }
 
+void Renderer::SetRenderCallback(RenderCallback* callback)
+{
+  GetImplementation(*this).SetRenderCallback(callback);
+}
+
 Shader Renderer::GetShader() const
 {
   return Dali::Shader(GetImplementation(*this).GetShader().Get());