35 lines
770 B
C++
Executable file
35 lines
770 B
C++
Executable file
#pragma once
|
|
|
|
#include <cstddef>
|
|
#include <string_view>
|
|
|
|
#include "pass.hpp"
|
|
|
|
class GFXBuffer;
|
|
class GFXCommandBuffer;
|
|
class GFXPipeline;
|
|
class GFXTexture;
|
|
struct ImDrawData;
|
|
|
|
class ImGuiPass : public Pass {
|
|
public:
|
|
void initialize() override;
|
|
|
|
void resize(const prism::Extent extent) override;
|
|
|
|
void render_post(GFXCommandBuffer* command_buffer, const int index) override;
|
|
|
|
private:
|
|
void load_font(const std::string_view filename);
|
|
void create_font_texture();
|
|
void update_buffers(const ImDrawData& draw_data);
|
|
|
|
GFXPipeline* pipeline = nullptr;
|
|
GFXTexture* font_texture = nullptr;
|
|
|
|
GFXBuffer* vertex_buffer = nullptr;
|
|
int current_vertex_size = 0;
|
|
|
|
GFXBuffer* index_buffer = nullptr;
|
|
int current_index_size = 0;
|
|
};
|