summaryrefslogtreecommitdiff
path: root/src/core.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core.cpp')
-rw-r--r--src/core.cpp52
1 files changed, 46 insertions, 6 deletions
diff --git a/src/core.cpp b/src/core.cpp
index a1c996f..ecf7d47 100644
--- a/src/core.cpp
+++ b/src/core.cpp
@@ -452,22 +452,60 @@ unload_vk_swapchain(void *obj)
}
static void
-load_vk_graphics_pipeline(void *obj)
+load_vk_graphics_pipeline_3d(void *obj)
{
try
{
- cg_core.vk_graphics_pipeline = new VK::GraphicsPipeline();
+ cg_core.vk_graphics_pipeline_3d = new VK::GraphicsPipeline3D();
}
catch(const CommandError &e)
{
- throw CommandError{"Failed to create graphics pipeline."};
+ throw CommandError{"Failed to create 3d graphics pipeline."};
}
}
static void
-unload_vk_graphics_pipeline(void *obj)
+unload_vk_graphics_pipeline_3d(void *obj)
{
- delete cg_core.vk_graphics_pipeline;
+ delete cg_core.vk_graphics_pipeline_3d;
+}
+
+static void
+load_vk_graphics_pipeline_2d(void *obj)
+{
+ try
+ {
+ cg_core.vk_graphics_pipeline_2d = new VK::GraphicsPipeline2D();
+ }
+ catch(const CommandError &e)
+ {
+ throw CommandError{"Failed to create 2d graphics pipeline."};
+ }
+}
+
+static void
+unload_vk_graphics_pipeline_2d(void *obj)
+{
+ delete cg_core.vk_graphics_pipeline_2d;
+}
+
+static void
+load_vk_renderer(void *obj)
+{
+ try
+ {
+ cg_core.vk_renderer = new VK::Renderer();
+ }
+ catch(const CommandError &e)
+ {
+ throw CommandError{"Failed to create renderer."};
+ }
+}
+
+static void
+unload_vk_renderer(void *obj)
+{
+ delete cg_core.vk_renderer;
}
static void
@@ -508,7 +546,9 @@ const CommandChain cg_sCore::loader{
#endif
{&load_vk_devices, &unload_vk_devices},
{&load_vk_swapchain, &unload_vk_swapchain},
- {&load_vk_graphics_pipeline, &unload_vk_graphics_pipeline},
+ {&load_vk_graphics_pipeline_3d, &unload_vk_graphics_pipeline_3d},
+ {&load_vk_graphics_pipeline_2d, &unload_vk_graphics_pipeline_2d},
+ {&load_vk_renderer, &unload_vk_renderer},
{&load_mruby, &unload_mruby},
{&load_mruby_symbols, nullptr}
};