summaryrefslogtreecommitdiff
path: root/engine/xe_render_system.cpp
diff options
context:
space:
mode:
authorTyler Murphy <tylermurphy534@gmail.com>2022-09-21 16:49:43 -0400
committerTyler Murphy <tylermurphy534@gmail.com>2022-09-21 16:49:43 -0400
commitb1e71a70a489ee6042de216c93992c3f4d50984a (patch)
treed4d23be9f1dc102bf6a8a838a4fe736852325369 /engine/xe_render_system.cpp
parentself define descriptors (diff)
downloadminecraftvulkan-b1e71a70a489ee6042de216c93992c3f4d50984a.tar.gz
minecraftvulkan-b1e71a70a489ee6042de216c93992c3f4d50984a.tar.bz2
minecraftvulkan-b1e71a70a489ee6042de216c93992c3f4d50984a.zip
add openal lib
Diffstat (limited to 'engine/xe_render_system.cpp')
-rw-r--r--engine/xe_render_system.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/engine/xe_render_system.cpp b/engine/xe_render_system.cpp
index 0158e34..1e638ad 100644
--- a/engine/xe_render_system.cpp
+++ b/engine/xe_render_system.cpp
@@ -22,7 +22,8 @@ XeRenderSystem::XeRenderSystem(
std::string frag,
std::map<uint32_t, uint32_t> uniformBindings,
std::map<uint32_t, XeImage*> imageBindings,
- uint32_t pushCunstantDataSize
+ uint32_t pushCunstantDataSize,
+ bool cullingEnabled
) : xeDevice{xeEngine.xeDevice},
xeRenderer{xeEngine.xeRenderer},
xeDescriptorPool{xeEngine.xeDescriptorPool},
@@ -34,7 +35,7 @@ XeRenderSystem::XeRenderSystem(
createUniformBuffers();
createDescriptorSets();
createPipelineLayout();
- createPipeline(xeRenderer.getSwapChainRenderPass(), vert, frag);
+ createPipeline(xeRenderer.getSwapChainRenderPass(), vert, frag, cullingEnabled);
}
@@ -163,11 +164,14 @@ void XeRenderSystem::createPipelineLayout() {
}
-void XeRenderSystem::createPipeline(VkRenderPass renderPass, std::string vert, std::string frag) {
+void XeRenderSystem::createPipeline(VkRenderPass renderPass, std::string vert, std::string frag, bool cullingEnabled) {
assert(pipelineLayout != nullptr && "Cannot create pipeline before pipeline layout");
PipelineConfigInfo pipelineConfig{};
XePipeline::defaultPipelineConfigInfo(pipelineConfig);
+ if (cullingEnabled) {
+ pipelineConfig.rasterizationInfo.cullMode = VK_CULL_MODE_BACK_BIT;
+ }
pipelineConfig.renderPass = renderPass;
pipelineConfig.pipelineLayout = pipelineLayout;
xePipeline = std::make_unique<XePipeline>(