mirror of
https://github.com/InoriRus/Kyty.git
synced 2026-07-18 03:40:43 +00:00
fix gamma
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
version: 0.1.1.build-{build}
|
||||
version: 0.1.2.build-{build}
|
||||
image: Visual Studio 2019
|
||||
environment:
|
||||
matrix:
|
||||
|
||||
@@ -82,7 +82,7 @@ if (KYTY_LINKER STREQUAL LD)
|
||||
set(KYTY_LD_OPTIONS "-Wl,--image-base=0x100000000000")
|
||||
endif()
|
||||
|
||||
project(Kyty${KYTY_PROJECT_NAME}${CMAKE_BUILD_TYPE}${KYTY_COMPILER} VERSION 0.1.1)
|
||||
project(Kyty${KYTY_PROJECT_NAME}${CMAKE_BUILD_TYPE}${KYTY_COMPILER} VERSION 0.1.2)
|
||||
|
||||
include(src_script.cmake)
|
||||
|
||||
|
||||
@@ -219,7 +219,8 @@ struct SurfaceCapabilities
|
||||
VkSurfaceCapabilitiesKHR capabilities {};
|
||||
Vector<VkSurfaceFormatKHR> formats;
|
||||
Vector<VkPresentModeKHR> present_modes;
|
||||
bool format_srgb_bgra32 = false;
|
||||
bool format_srgb_bgra32 = false;
|
||||
bool format_unorm_bgra32 = false;
|
||||
};
|
||||
|
||||
struct WindowContext
|
||||
@@ -1270,6 +1271,11 @@ static void VulkanGetSurfaceCapabilities(VkPhysicalDevice physical_device, VkSur
|
||||
r->format_srgb_bgra32 = true;
|
||||
break;
|
||||
}
|
||||
if (f.format == VK_FORMAT_B8G8R8A8_UNORM && f.colorSpace == VK_COLOR_SPACE_SRGB_NONLINEAR_KHR)
|
||||
{
|
||||
r->format_unorm_bgra32 = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1822,13 +1828,26 @@ static VKAPI_ATTR VkResult VKAPI_CALL VulkanCreateDebugUtilsMessengerEXT(VkInsta
|
||||
image_count = std::clamp(image_count, r->capabilities.minImageCount, r->capabilities.maxImageCount);
|
||||
|
||||
VkSwapchainCreateInfoKHR create_info {};
|
||||
create_info.sType = VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR;
|
||||
create_info.pNext = nullptr;
|
||||
create_info.flags = 0;
|
||||
create_info.surface = surface;
|
||||
create_info.minImageCount = image_count;
|
||||
create_info.imageFormat = (r->format_srgb_bgra32 ? VK_FORMAT_B8G8R8A8_SRGB : r->formats.At(0).format);
|
||||
create_info.imageColorSpace = (r->format_srgb_bgra32 ? VK_COLOR_SPACE_SRGB_NONLINEAR_KHR : r->formats.At(0).colorSpace);
|
||||
create_info.sType = VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR;
|
||||
create_info.pNext = nullptr;
|
||||
create_info.flags = 0;
|
||||
create_info.surface = surface;
|
||||
create_info.minImageCount = image_count;
|
||||
|
||||
if (r->format_unorm_bgra32)
|
||||
{
|
||||
create_info.imageFormat = VK_FORMAT_B8G8R8A8_UNORM;
|
||||
create_info.imageColorSpace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR;
|
||||
} else if (r->format_srgb_bgra32)
|
||||
{
|
||||
create_info.imageFormat = VK_FORMAT_B8G8R8A8_SRGB;
|
||||
create_info.imageColorSpace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR;
|
||||
} else
|
||||
{
|
||||
create_info.imageFormat = r->formats.At(0).format;
|
||||
create_info.imageColorSpace = r->formats.At(0).colorSpace;
|
||||
}
|
||||
|
||||
create_info.imageExtent = extent;
|
||||
create_info.imageArrayLayers = 1;
|
||||
create_info.imageUsage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT;
|
||||
|
||||
Reference in New Issue
Block a user