mirror of
https://github.com/InoriRus/Kyty.git
synced 2026-08-28 05:06:40 +00:00
fix gamma
This commit is contained in:
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
version: 0.1.1.build-{build}
|
version: 0.1.2.build-{build}
|
||||||
image: Visual Studio 2019
|
image: Visual Studio 2019
|
||||||
environment:
|
environment:
|
||||||
matrix:
|
matrix:
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ if (KYTY_LINKER STREQUAL LD)
|
|||||||
set(KYTY_LD_OPTIONS "-Wl,--image-base=0x100000000000")
|
set(KYTY_LD_OPTIONS "-Wl,--image-base=0x100000000000")
|
||||||
endif()
|
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)
|
include(src_script.cmake)
|
||||||
|
|
||||||
|
|||||||
@@ -219,7 +219,8 @@ struct SurfaceCapabilities
|
|||||||
VkSurfaceCapabilitiesKHR capabilities {};
|
VkSurfaceCapabilitiesKHR capabilities {};
|
||||||
Vector<VkSurfaceFormatKHR> formats;
|
Vector<VkSurfaceFormatKHR> formats;
|
||||||
Vector<VkPresentModeKHR> present_modes;
|
Vector<VkPresentModeKHR> present_modes;
|
||||||
bool format_srgb_bgra32 = false;
|
bool format_srgb_bgra32 = false;
|
||||||
|
bool format_unorm_bgra32 = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct WindowContext
|
struct WindowContext
|
||||||
@@ -1270,6 +1271,11 @@ static void VulkanGetSurfaceCapabilities(VkPhysicalDevice physical_device, VkSur
|
|||||||
r->format_srgb_bgra32 = true;
|
r->format_srgb_bgra32 = true;
|
||||||
break;
|
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);
|
image_count = std::clamp(image_count, r->capabilities.minImageCount, r->capabilities.maxImageCount);
|
||||||
|
|
||||||
VkSwapchainCreateInfoKHR create_info {};
|
VkSwapchainCreateInfoKHR create_info {};
|
||||||
create_info.sType = VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR;
|
create_info.sType = VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR;
|
||||||
create_info.pNext = nullptr;
|
create_info.pNext = nullptr;
|
||||||
create_info.flags = 0;
|
create_info.flags = 0;
|
||||||
create_info.surface = surface;
|
create_info.surface = surface;
|
||||||
create_info.minImageCount = image_count;
|
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);
|
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.imageExtent = extent;
|
||||||
create_info.imageArrayLayers = 1;
|
create_info.imageArrayLayers = 1;
|
||||||
create_info.imageUsage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT;
|
create_info.imageUsage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT;
|
||||||
|
|||||||
Reference in New Issue
Block a user