/* * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ #include "VulkanDrawContext.hpp" #include "Scene/Shader/Shader.hpp" #include "Scene/VulkanShader.hpp" namespace openVulkanoCpp::Vulkan { void VulkanDrawContext::EncodeShader(Scene::Shader* shader) { VulkanShader* vkShader = static_cast(shader->renderShader); if (!vkShader) { vkShader = renderer->GetResourceManager().CreateShader(shader); } else if (m_lastShader == vkShader) return; // Skip it if shader is already bound vkShader->Record(this); m_lastShader = vkShader; } void VulkanDrawContext::EncodeShader(VulkanShader* vkShader) { if (m_lastShader == vkShader) return; // Skip it if shader is already bound vkShader->Record(this); m_lastShader = vkShader; } }