2025-05-13 22:18:47 -04:00
|
|
|
// SPDX-FileCopyrightText: 2025 Joshua Goins <josh@redstrate.com>
|
|
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
|
2025-05-13 15:19:11 -04:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "pass.h"
|
|
|
|
|
|
|
|
#include <glm/glm.hpp>
|
|
|
|
#include <vulkan/vulkan.h>
|
|
|
|
|
|
|
|
class RenderManager;
|
|
|
|
class Device;
|
2025-05-13 16:57:37 -04:00
|
|
|
class AppState;
|
2025-05-13 15:19:11 -04:00
|
|
|
|
|
|
|
class ObjectPass : public RendererPass
|
|
|
|
{
|
|
|
|
public:
|
2025-05-13 16:57:37 -04:00
|
|
|
ObjectPass(RenderManager *renderer, AppState *appState);
|
2025-05-13 15:19:11 -04:00
|
|
|
|
|
|
|
void render(VkCommandBuffer commandBuffer, Camera &camera) override;
|
|
|
|
|
|
|
|
private:
|
|
|
|
void createPipeline();
|
|
|
|
|
2025-05-13 16:57:37 -04:00
|
|
|
VkPipeline m_pipeline = nullptr;
|
|
|
|
VkPipelineLayout m_pipelineLayout = nullptr;
|
2025-05-13 15:19:11 -04:00
|
|
|
|
|
|
|
RenderManager *m_renderer;
|
|
|
|
Device &m_device;
|
2025-05-13 16:57:37 -04:00
|
|
|
AppState *m_appState;
|
2025-05-13 15:19:11 -04:00
|
|
|
};
|