DirectWrite support #28

Merged
IoI_xD merged 13 commits from directwrite into master 2026-07-18 11:39:53 +09:00
3 changed files with 39 additions and 39 deletions
Showing only changes of commit bf03674b5d - Show all commits

cross compiling fixes
Some checks failed
pyrite-dev/milsko/pipeline/head There was a failure building this commit

IoIxD 2026-07-17 17:44:43 -07:00

View file

@ -39,13 +39,18 @@ else()
endif() endif()
if(${CMAKE_SYSTEM_NAME} STREQUAL Windows) if(${CMAKE_SYSTEM_NAME} STREQUAL Windows)
# DirectWrite stuff can only be used on Win10+ if(${CMAKE_CROSSCOMPILING})
if(${CMAKE_SYSTEM_VERSION} GREATER_EQUAL 10)
message(STATUS "DirectWrite support has been enabled") message(STATUS "DirectWrite support has been enabled")
option(MW_USE_DIRECTWRITE "Use DirectWrite" ON) option(MW_USE_DIRECTWRITE "Use DirectWrite" ON)
else() else()
message(WARNING "DirectWrite support has been disabled (must be compiling on Win10+)") # DirectWrite stuff can only be used on Win10+
option(MW_USE_DIRECTWRITE "Use DirectWrite" OFF) if(${CMAKE_SYSTEM_VERSION} GREATER_EQUAL 10)
message(STATUS "DirectWrite support has been enabled")
option(MW_USE_DIRECTWRITE "Use DirectWrite" ON)
else()
message(WARNING "DirectWrite support has been disabled (must be compiling on Win10+)")
option(MW_USE_DIRECTWRITE "Use DirectWrite" OFF)
endif()
endif() endif()
endif() endif()
@ -83,8 +88,8 @@ if(MW_TRY_OPENGL)
endif() endif()
if(MW_TRY_VULKAN) if(MW_TRY_VULKAN)
check_include_files(vulkan/vulkan.h HAVE_VULKAN_VULKAN_H) find_package(Vulkan OPTIONAL VULKAN)
if(HAVE_VULKAN_VULKAN_H) if(${Vulkan_FOUND})
set(MW_BUILD_VULKAN ON) set(MW_BUILD_VULKAN ON)
message(STATUS "Vulkan widget has been enabled") message(STATUS "Vulkan widget has been enabled")
else() else()

View file

@ -1,28 +1,30 @@
file( file(
GLOB GLOB
EXAMPLES_VULKAN_SOURCES EXAMPLES_VULKAN_SOURCES
*.c *.c
) )
find_package(Vulkan) find_package(Vulkan)
foreach(PATH IN LISTS EXAMPLES_VULKAN_SOURCES) if(${Vulkan_FOUND})
get_filename_component(TARGET ${PATH} NAME_WE) foreach(PATH IN LISTS EXAMPLES_VULKAN_SOURCES)
add_executable(${TARGET} MACOSX_BUNDLE ${PATH}) get_filename_component(TARGET ${PATH} NAME_WE)
target_include_directories( add_executable(${TARGET} MACOSX_BUNDLE ${PATH})
${TARGET} target_include_directories(
PRIVATE ${TARGET}
${Vulkan_INCLUDE_DIR} PRIVATE
) ${Vulkan_INCLUDE_DIR}
target_link_libraries( )
${TARGET} target_link_libraries(
PRIVATE ${TARGET}
Mw PRIVATE
) Mw
if(NOT CMAKE_SYSTEM_NAME STREQUAL "Windows") )
target_link_libraries( if(NOT CMAKE_SYSTEM_NAME STREQUAL "Windows")
${TARGET} target_link_libraries(
PRIVATE ${TARGET}
m PRIVATE
) m
endif() )
endforeach() endif()
endforeach()
endif()

View file

@ -1,10 +1,3 @@
/**
* this example is quite minimal, you may need to modify it if your graphics card is more esoteric
*
* ioixd maintains this file. nishi doesn't know vulkan at all
*/
#include <Mw/Milsko.h> #include <Mw/Milsko.h>
#include <Mw/Widget/Vulkan.h> #include <Mw/Widget/Vulkan.h>
@ -264,8 +257,8 @@ void vulkan_setup(MwWidget handle) {
swapchainCreateInfo.imageExtent = (VkExtent2D){.width = ow, .height = oh}, swapchainCreateInfo.imageExtent = (VkExtent2D){.width = ow, .height = oh},
swapchainCreateInfo.imageArrayLayers = 1, swapchainCreateInfo.imageArrayLayers = 1,
swapchainCreateInfo.imageUsage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | swapchainCreateInfo.imageUsage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT |
VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT |
VK_IMAGE_USAGE_SAMPLED_BIT; VK_IMAGE_USAGE_SAMPLED_BIT;
// th is how we specify no transformation. // th is how we specify no transformation.
swapchainCreateInfo.preTransform = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR; swapchainCreateInfo.preTransform = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR;
swapchainCreateInfo.compositeAlpha = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR; swapchainCreateInfo.compositeAlpha = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR;