{
}
-Dali::Graphics::Shader& ShaderCache::GetShader(const std::vector<char> shaderCode, Graphics::PipelineStage stage, Graphics::ShaderSourceMode type)
+Dali::Graphics::Shader& ShaderCache::GetShader(const std::vector<char>& shaderCode, Graphics::PipelineStage stage, Graphics::ShaderSourceMode type)
{
for(auto&& item : mItems)
{
shaderCreateInfo.SetSourceSize(shaderCode.size());
shaderCreateInfo.SetSourceMode(type);
- auto shader = mController.CreateShader(shaderCreateInfo, nullptr);
+ Graphics::UniquePtr<Graphics::Shader> shader = mController.CreateShader(shaderCreateInfo, nullptr);
- auto retval = shader.get();
mItems.emplace_back(std::move(shader), shaderCode, stage, type);
- return *retval;
-}
-
-void ShaderCache::DestroyGraphicsObjects()
-{
- mItems.clear();
+ return *mItems.back().shader.get();
}
} // namespace Render