#define DALI_TEST_GRAPHICS_COMMAND_BUFFER_H
/*
- * Copyright (c) 2021 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.
{
}
- void BindVertexBuffers(uint32_t firstBinding,
- std::vector<const Graphics::Buffer*> buffers,
- std::vector<uint32_t> offsets) override
+ void BindVertexBuffers(uint32_t firstBinding,
+ const std::vector<const Graphics::Buffer*>& buffers,
+ const std::vector<uint32_t>& offsets) override
{
mCommands.emplace_back();
mCommands.back().type = CommandType::BIND_VERTEX_BUFFERS;
mCallStack.PushCall("BindPipeline", "");
}
- void BindTextures(std::vector<Graphics::TextureBinding>& textureBindings) override
+ void BindTextures(const std::vector<Graphics::TextureBinding>& textureBindings) override
{
mCommands.emplace_back();
mCommands.back().type = CommandType::BIND_TEXTURES;
mCallStack.PushCall("BindTextures", "");
}
- void BindSamplers(std::vector<Graphics::SamplerBinding>& samplerBindings) override
+ void BindSamplers(const std::vector<Graphics::SamplerBinding>& samplerBindings) override
{
mCommands.emplace_back();
mCommands.back().data.bindSamplers.samplerBindings = std::move(samplerBindings);
}
void BeginRenderPass(
- Graphics::RenderPass* renderPass,
- Graphics::RenderTarget* renderTarget,
- Graphics::Rect2D renderArea,
- std::vector<Graphics::ClearValue> clearValues) override
+ Graphics::RenderPass* renderPass,
+ Graphics::RenderTarget* renderTarget,
+ Graphics::Rect2D renderArea,
+ const std::vector<Graphics::ClearValue>& clearValues) override
{
mCommands.emplace_back(CommandType::BEGIN_RENDER_PASS);
auto& cmd = mCommands.back();
#define DALI_GRAPHICS_COMMAND_BUFFER_H
/*
- * Copyright (c) 2021 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.
* @param[in] buffers List of buffers to bind
* @param[in] offsets List of offsets for each buffer
*/
- virtual void BindVertexBuffers(uint32_t firstBinding,
- std::vector<const Buffer*> buffers,
- std::vector<uint32_t> offsets) = 0;
+ virtual void BindVertexBuffers(uint32_t firstBinding,
+ const std::vector<const Buffer*>& buffers,
+ const std::vector<uint32_t>& offsets) = 0;
/**
* @brief Binds uniform buffers
*
* @param[in] textureBindings List of texture bindings
*/
- virtual void BindTextures(std::vector<TextureBinding>& textureBindings) = 0;
+ virtual void BindTextures(const std::vector<TextureBinding>& textureBindings) = 0;
/**
* @brief Binds samplers
*
* @param[in] samplerBindings List of sampler bindings
*/
- virtual void BindSamplers(std::vector<SamplerBinding>& samplerBindings) = 0;
+ virtual void BindSamplers(const std::vector<SamplerBinding>& samplerBindings) = 0;
/**
* @brief Binds buffer containing push constants
* @param[in] clearValues clear values (compatible with renderpass spec)
*/
virtual void BeginRenderPass(
- RenderPass* renderPass,
- RenderTarget* renderTarget,
- Rect2D renderArea,
- std::vector<ClearValue> clearValues) = 0;
+ RenderPass* renderPass,
+ RenderTarget* renderTarget,
+ Rect2D renderArea,
+ const std::vector<ClearValue>& clearValues) = 0;
/**
* @brief Ends current render pass
/*
- * Copyright (c) 2021 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.
if(textures != nullptr)
{
- for(uint32_t i = 0; i < static_cast<uint32_t>(textures->Count()); ++i) // not expecting more than uint32_t of textures
+ const std::uint32_t texturesCount(static_cast<std::uint32_t>(textures->Count()));
+ textureBindings.reserve(texturesCount);
+
+ for(uint32_t i = 0; i < texturesCount; ++i) // not expecting more than uint32_t of textures
{
if((*textures)[i] && (*textures)[i]->GetGraphicsObject())
{
+ Graphics::Texture* graphicsTexture = (*textures)[i]->GetGraphicsObject();
// if the sampler exists,
// if it's default, delete the graphics object
// otherwise re-initialize it if dirty
: nullptr)
: nullptr;
- boundTextures.PushBack((*textures)[i]->GetGraphicsObject());
- const Graphics::TextureBinding textureBinding{(*textures)[i]->GetGraphicsObject(), graphicsSampler, textureUnit};
+ boundTextures.PushBack(graphicsTexture);
+ const Graphics::TextureBinding textureBinding{graphicsTexture, graphicsSampler, textureUnit};
textureBindings.push_back(textureBinding);
++textureUnit;