#pragma once #include "common.hpp" #include "platform.hpp" class GFXCommandBuffer; class Scene; enum class PassTextureType { SelectionSobel }; class GFXTexture; class RenderTarget; class Pass { public: virtual ~Pass() = default; virtual void initialize() {} virtual void create_render_target_resources([[maybe_unused]] RenderTarget& target) {} virtual void render_scene([[maybe_unused]] Scene& scene, [[maybe_unused]] GFXCommandBuffer* commandBuffer) {} virtual void render_post([[maybe_unused]] GFXCommandBuffer* commandBuffer, [[maybe_unused]] RenderTarget& target, [[maybe_unused]] platform::window_ptr index) {} virtual GFXTexture* get_requested_texture([[maybe_unused]] PassTextureType type) { return nullptr; } };