From 95e1dcce2ef7c7f407d2e952ad7749b2559af41f Mon Sep 17 00:00:00 2001 From: Sebastian Emanuel Dawid Date: Wed, 1 Oct 2025 09:06:03 +0200 Subject: [PATCH] Add metal layer creation that was previously missing. --- examples/CMakeLists.txt | 2 +- src/cocoa_window.m | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 047494824..b40fa5bf4 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -26,7 +26,6 @@ set(TINYCTHREAD "${GLFW_SOURCE_DIR}/deps/tinycthread.h" "${GLFW_SOURCE_DIR}/deps/tinycthread.c") include(FetchContent) - FetchContent_Declare( webgpu GIT_REPOSITORY https://github.com/eliemichel/WebGPU-distribution.git @@ -36,6 +35,7 @@ FetchContent_Declare( EXCLUDE_FROM_ALL ) FetchContent_MakeAvailable(webgpu) +message("${CMAKE_SYSTEM_PROCESSOR}") add_executable(boing WIN32 MACOSX_BUNDLE boing.c ${ICON} ${GLAD_GL}) add_executable(gears WIN32 MACOSX_BUNDLE gears.c ${ICON} ${GLAD_GL}) diff --git a/src/cocoa_window.m b/src/cocoa_window.m index 8bfe71675..a35dc7bb1 100644 --- a/src/cocoa_window.m +++ b/src/cocoa_window.m @@ -2028,6 +2028,17 @@ typedef struct WGPUSurfaceSourceMetalLayer WGPUSurface _glfwCreateWindowWGPUSurfaceCocoa(WGPUInstance instance, _GLFWwindow* window) { + window->ns.layer = [CAMetalLayer layer]; + if (!window->ns.layer) + { + _glfwInputError(GLFW_PLATFORM_ERROR, + "Cocoa: Failed to create layer for view"); + return NULL; + } + + if (window->ns.scaleFramebuffer) + [window->ns.layer setContentsScale:[window->ns.object backingScaleFactor]]; + [window->ns.view setLayer:window->ns.layer]; [window->ns.view setWantsLayer:YES];