| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[Optimize] Use patch for third party libraries. Use patch for third party libraries instead of modifying code directly. | 1 年前 | |
[Feature] Support desktop Skity software rendering with SwiftShader Route the headless software renderer through Skity GL, ANGLE Vulkan and SwiftShader on macOS, Windows and Linux. Read back premultiplied RGBA8888 frames through software presentation callbacks with the top row first on all desktop platforms. Preserve the original GL readback channel order and report RGBA through the pixel-format-aware callback. Wire the Vulkan runtime dependencies and add ANGLE, SwiftShader and Vulkan loader compatibility patches. Keep the build-generation script unchanged and configure desktop software rendering with explicit GN arguments. Statically link the Vulkan loader on macOS to match ANGLE's default and keep shared loaders on other platforms. Link the Microsoft C++ exception runtime for Windows libc++ builds. Add rendering tests for premultiplied pixels, resizing, callback rejection, callback compatibility and combined renderer/default-display lifetime coverage on macOS and Windows. Export the embedder C API from the Linux shared library and reuse its resource, platform and vsync implementations. Add pixel-format-aware callbacks to the Clay and Lynx windowless APIs while retaining the original callback signatures. Check configuration sizes before reading the appended Clay callback, prefer the new callback when both are set, and preserve existing C++ callback overrides. Reuse lynx_color_type_e at the Lynx API boundary. Isolate the Clay SwiftShader display from default-display EGL clients and cover both teardown orders. Retain the shared ANGLE display for the process lifetime without reference counting or termination; each renderer only releases its own context and surface. Preserve the original runtime software-rendering setting for software views. TEST: macOS arm64 static-loader library build, isolated delivery without a loader dylib, unchanged build-generation script with explicit GN overrides, and 8 SwiftShader rendering tests including combined coverage of both default-display teardown orders covering legacy callbacks, original configuration size, new callbacks, precedence and RGBA pixel format; windowless C API page rendering, JavaScript button interaction and resize with new callbacks, both callbacks, new-callback unbinding and the original client binary; legacy Clay callback compilation and outer configuration layout checks; Skia software presenter compilation; dependency patch reverse/reapply checks and successful dependency synchronization using git am; windowless software page with Chinese and English text, opaque and translucent PNG images, image replacement and resize with the original runtime software-rendering setting. Metal and software demo pixels match byte-for-byte before and after image updates and resize. macOS Canvas composition with the software renderer remains unsupported. Previous backend verification: Windows x64 release full library build with libc++ and custom ABI namespace Cr, four rendering tests including Direct3D coexistence, and windowless C API list page loading, JavaScript button interaction and resize. Linux x64 release full library build with libc++ ABI namespace Cr, four SwiftShader rendering tests, exported embedder C API symbols, and C API page loading, data updates and resize through both software and accelerated renderers with identical normalized pixels; runtime verification used glibc 2.31. SkipChecks:macro | 2 天前 |