Code cleanup
This commit is contained in:
parent
eff719099a
commit
9ccb7cbd54
5 changed files with 88 additions and 118 deletions
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* Vulkan Example - glTF skinned animation
|
||||
*
|
||||
* Copyright (C) 2020-2021 by Sascha Willems - www.saschawillems.de
|
||||
* Copyright (C) 2020-2023 by Sascha Willems - www.saschawillems.de
|
||||
*
|
||||
* This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
|
||||
*/
|
||||
|
|
@ -849,23 +849,6 @@ void VulkanExample::setupDescriptors()
|
|||
setLayoutBinding = vks::initializers::descriptorSetLayoutBinding(VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, VK_SHADER_STAGE_VERTEX_BIT, 0);
|
||||
VK_CHECK_RESULT(vkCreateDescriptorSetLayout(device, &descriptorSetLayoutCI, nullptr, &descriptorSetLayouts.jointMatrices));
|
||||
|
||||
// The pipeline layout uses three sets:
|
||||
// Set 0 = Scene matrices (VS)
|
||||
// Set 1 = Joint matrices (VS)
|
||||
// Set 2 = Material texture (FS)
|
||||
std::array<VkDescriptorSetLayout, 3> setLayouts = {
|
||||
descriptorSetLayouts.matrices,
|
||||
descriptorSetLayouts.jointMatrices,
|
||||
descriptorSetLayouts.textures};
|
||||
VkPipelineLayoutCreateInfo pipelineLayoutCI = vks::initializers::pipelineLayoutCreateInfo(setLayouts.data(), static_cast<uint32_t>(setLayouts.size()));
|
||||
|
||||
// We will use push constants to push the local matrices of a primitive to the vertex shader
|
||||
VkPushConstantRange pushConstantRange = vks::initializers::pushConstantRange(VK_SHADER_STAGE_VERTEX_BIT, sizeof(glm::mat4), 0);
|
||||
// Push constant ranges are part of the pipeline layout
|
||||
pipelineLayoutCI.pushConstantRangeCount = 1;
|
||||
pipelineLayoutCI.pPushConstantRanges = &pushConstantRange;
|
||||
VK_CHECK_RESULT(vkCreatePipelineLayout(device, &pipelineLayoutCI, nullptr, &pipelineLayout));
|
||||
|
||||
// Descriptor set for scene matrices
|
||||
VkDescriptorSetAllocateInfo allocInfo = vks::initializers::descriptorSetAllocateInfo(descriptorPool, &descriptorSetLayouts.matrices, 1);
|
||||
VK_CHECK_RESULT(vkAllocateDescriptorSets(device, &allocInfo, &descriptorSet));
|
||||
|
|
@ -893,6 +876,25 @@ void VulkanExample::setupDescriptors()
|
|||
|
||||
void VulkanExample::preparePipelines()
|
||||
{
|
||||
// Layout
|
||||
// The pipeline layout uses three sets:
|
||||
// Set 0 = Scene matrices (VS)
|
||||
// Set 1 = Joint matrices (VS)
|
||||
// Set 2 = Material texture (FS)
|
||||
std::array<VkDescriptorSetLayout, 3> setLayouts = {
|
||||
descriptorSetLayouts.matrices,
|
||||
descriptorSetLayouts.jointMatrices,
|
||||
descriptorSetLayouts.textures };
|
||||
VkPipelineLayoutCreateInfo pipelineLayoutCI = vks::initializers::pipelineLayoutCreateInfo(setLayouts.data(), static_cast<uint32_t>(setLayouts.size()));
|
||||
|
||||
// We will use push constants to push the local matrices of a primitive to the vertex shader
|
||||
VkPushConstantRange pushConstantRange = vks::initializers::pushConstantRange(VK_SHADER_STAGE_VERTEX_BIT, sizeof(glm::mat4), 0);
|
||||
// Push constant ranges are part of the pipeline layout
|
||||
pipelineLayoutCI.pushConstantRangeCount = 1;
|
||||
pipelineLayoutCI.pPushConstantRanges = &pushConstantRange;
|
||||
VK_CHECK_RESULT(vkCreatePipelineLayout(device, &pipelineLayoutCI, nullptr, &pipelineLayout));
|
||||
|
||||
// Pipeline
|
||||
VkPipelineInputAssemblyStateCreateInfo inputAssemblyStateCI = vks::initializers::pipelineInputAssemblyStateCreateInfo(VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, 0, VK_FALSE);
|
||||
VkPipelineRasterizationStateCreateInfo rasterizationStateCI = vks::initializers::pipelineRasterizationStateCreateInfo(VK_POLYGON_MODE_FILL, VK_CULL_MODE_BACK_BIT, VK_FRONT_FACE_COUNTER_CLOCKWISE, 0);
|
||||
VkPipelineColorBlendAttachmentState blendAttachmentStateCI = vks::initializers::pipelineColorBlendAttachmentState(0xf, VK_FALSE);
|
||||
|
|
@ -982,21 +984,12 @@ void VulkanExample::prepare()
|
|||
|
||||
void VulkanExample::render()
|
||||
{
|
||||
renderFrame();
|
||||
if (camera.updated)
|
||||
{
|
||||
updateUniformBuffers();
|
||||
}
|
||||
updateUniformBuffers();
|
||||
// POI: Advance animation
|
||||
if (!paused)
|
||||
{
|
||||
if (!paused) {
|
||||
glTFModel.updateAnimation(frameTimer);
|
||||
}
|
||||
}
|
||||
|
||||
void VulkanExample::viewChanged()
|
||||
{
|
||||
updateUniformBuffers();
|
||||
renderFrame();
|
||||
}
|
||||
|
||||
void VulkanExample::OnUpdateUIOverlay(vks::UIOverlay *overlay)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue