1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
#include "gr_vulkan.h"
#include "VulkanRenderer.h"
#include "vulkan_stubs.h"
#include "backends/imgui_impl_sdl.h"
#include "backends/imgui_impl_vulkan.h"
#include "mod_table/mod_table.h"
namespace graphics {
namespace vulkan {
namespace {
std::unique_ptr<VulkanRenderer> renderer_instance;
}
void initialize_function_pointers() {
init_stub_pointers();
}
bool initialize(std::unique_ptr<os::GraphicsOperations>&& graphicsOps)
{
renderer_instance.reset(new VulkanRenderer(std::move(graphicsOps)));
if (!renderer_instance->initialize()) {
return false;
}
gr_screen.gf_flip = []() {
renderer_instance->flip();
};
// Nothing else is finished so always fail here
mprintf(("Vulkan support is not finished yet so graphics initialization will always fail...\n"));
return true;
}
VulkanRenderer* getRendererInstance()
{
return renderer_instance.get();
}
void cleanup()
{
renderer_instance->shutdown();
renderer_instance = nullptr;
}
} // namespace vulkan
} // namespace graphics
|