|
|
@ -684,7 +684,7 @@ VkResult create_text_descriptor(VkDevice device, VmaAllocator allocator, VkDescr
|
|
|
|
return VK_SUCCESS;
|
|
|
|
return VK_SUCCESS;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
VkResult create_ui_descriptor_set(VkDevice device, VmaAllocator allocator, VkExtent2D swapchain_extent, VkDescriptorSetLayout* ui_descriptor_layout, VkDescriptorPool* ui_descriptor_pool, VkDescriptorSet* ui_descriptor_set, VmaAllocation* ui_descriptor_memory, VkBuffer* ui_descriptor_buffer) {
|
|
|
|
VkResult create_ui_descriptor_set(VkDevice device, VmaAllocator allocator, VkExtent2D swapchain_extent, vec2 window_scale, VkDescriptorSetLayout* ui_descriptor_layout, VkDescriptorPool* ui_descriptor_pool, VkDescriptorSet* ui_descriptor_set, VmaAllocation* ui_descriptor_memory, VkBuffer* ui_descriptor_buffer) {
|
|
|
|
VkDescriptorSetLayoutBinding ui_descriptor_bindings[] = {
|
|
|
|
VkDescriptorSetLayoutBinding ui_descriptor_bindings[] = {
|
|
|
|
{
|
|
|
|
{
|
|
|
|
.binding = 0,
|
|
|
|
.binding = 0,
|
|
|
@ -758,7 +758,7 @@ VkResult create_ui_descriptor_set(VkDevice device, VmaAllocator allocator, VkExt
|
|
|
|
}
|
|
|
|
}
|
|
|
|
UIUniform ui_uniform;
|
|
|
|
UIUniform ui_uniform;
|
|
|
|
vec3 screen_offset = {-1.0, -1.0, 0.0};
|
|
|
|
vec3 screen_offset = {-1.0, -1.0, 0.0};
|
|
|
|
vec3 screen_scale = {1.0/(float)swapchain_extent.width, 1.0/(float)swapchain_extent.height, 1.0};
|
|
|
|
vec3 screen_scale = {1.0/(float)swapchain_extent.width*window_scale[0], 1.0/(float)swapchain_extent.height*window_scale[1], 1.0};
|
|
|
|
glm_mat4_identity(ui_uniform.screen);
|
|
|
|
glm_mat4_identity(ui_uniform.screen);
|
|
|
|
glm_translate(ui_uniform.screen, screen_offset);
|
|
|
|
glm_translate(ui_uniform.screen, screen_offset);
|
|
|
|
glm_scale(ui_uniform.screen, screen_scale);
|
|
|
|
glm_scale(ui_uniform.screen, screen_scale);
|
|
|
@ -891,10 +891,10 @@ VkResult create_ui_rect_buffer(VkDevice device, Queue transfer_queue, VkCommandP
|
|
|
|
return VK_SUCCESS;
|
|
|
|
return VK_SUCCESS;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
VkResult init_pipelines(VkDevice device, VmaAllocator allocator, VkExtent2D swapchain_extent, VkRenderPass render_pass, Queue transfer_queue, VkCommandPool transfer_pool, UIContext* context) {
|
|
|
|
VkResult init_pipelines(VkDevice device, VmaAllocator allocator, VkExtent2D swapchain_extent, vec2 window_scale, VkRenderPass render_pass, Queue transfer_queue, VkCommandPool transfer_pool, UIContext* context) {
|
|
|
|
|
|
|
|
|
|
|
|
VkResult result;
|
|
|
|
VkResult result;
|
|
|
|
result = create_ui_descriptor_set(device, allocator, swapchain_extent, &context->ui_descriptor_layout, &context->ui_descriptor_pool, &context->ui_descriptor_set, &context->ui_descriptor_memory, &context->ui_descriptor_buffer);
|
|
|
|
result = create_ui_descriptor_set(device, allocator, swapchain_extent, window_scale, &context->ui_descriptor_layout, &context->ui_descriptor_pool, &context->ui_descriptor_set, &context->ui_descriptor_memory, &context->ui_descriptor_buffer);
|
|
|
|
if(result != VK_SUCCESS) {
|
|
|
|
if(result != VK_SUCCESS) {
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
}
|
|
|
|