Rust codegen: ensure alignment of Texture
Some checks are pending
autofix.ci / format_fix (push) Waiting to run
autofix.ci / lint_typecheck (push) Waiting to run
CI / node_test (windows-2022) (push) Blocked by required conditions
CI / python_test (macos-14) (push) Blocked by required conditions
CI / python_test (ubuntu-22.04) (push) Blocked by required conditions
CI / python_test (windows-2022) (push) Blocked by required conditions
CI / mcu (pico-st7789, thumbv6m-none-eabi) (push) Blocked by required conditions
CI / test-figma-inspector (push) Blocked by required conditions
CI / updater_test (0.3.0) (push) Blocked by required conditions
CI / fmt_test (push) Blocked by required conditions
CI / esp-idf-quick (push) Blocked by required conditions
CI / android (push) Blocked by required conditions
CI / miri (push) Blocked by required conditions
CI / mcu (pico2-st7789, thumbv8m.main-none-eabihf) (push) Blocked by required conditions
CI / mcu (stm32h735g, thumbv7em-none-eabihf) (push) Blocked by required conditions
CI / mcu-embassy (push) Blocked by required conditions
CI / ffi_32bit_build (push) Blocked by required conditions
CI / docs (push) Blocked by required conditions
CI / wasm (push) Blocked by required conditions
CI / wasm_demo (push) Blocked by required conditions
CI / tree-sitter (push) Blocked by required conditions
CI / node_test (macos-14) (push) Blocked by required conditions
CI / node_test (ubuntu-22.04) (push) Blocked by required conditions
CI / files-changed (push) Waiting to run
CI / build_and_test (--exclude ffmpeg --exclude gstreamer-player, macos-14, stable) (push) Blocked by required conditions
CI / build_and_test (--exclude ffmpeg --exclude gstreamer-player, windows-2022, 1.85) (push) Blocked by required conditions
CI / build_and_test (--exclude ffmpeg --exclude gstreamer-player, windows-2022, beta) (push) Blocked by required conditions
CI / build_and_test (--exclude ffmpeg --exclude gstreamer-player, windows-2022, stable) (push) Blocked by required conditions
CI / build_and_test (ubuntu-22.04, 1.85) (push) Blocked by required conditions
CI / build_and_test (ubuntu-22.04, nightly) (push) Blocked by required conditions
CI / cpp_test_driver (macos-13) (push) Blocked by required conditions
CI / cpp_test_driver (ubuntu-22.04) (push) Blocked by required conditions
CI / cpp_test_driver (windows-2022) (push) Blocked by required conditions
CI / cpp_cmake (macos-14, 1.85) (push) Blocked by required conditions
CI / cpp_cmake (ubuntu-22.04, stable) (push) Blocked by required conditions
CI / cpp_cmake (windows-2022, nightly) (push) Blocked by required conditions
CI / cpp_package_test (push) Blocked by required conditions
CI / vsce_build_test (push) Blocked by required conditions

Some hardware acceleration routine needs it to be aligned.
(Eg, Otherwise, we get artifacts when drawing RGBA images with nema-gfx)
This commit is contained in:
Olivier Goffart 2025-04-11 18:15:11 +02:00
parent ced9a60544
commit 05f48b0fee

View file

@ -3353,12 +3353,13 @@ fn generate_resources(doc: &Document) -> Vec<TokenStream> {
let data_size = data.len();
quote!(
#link_section
static #symbol_data : [u8; #data_size]= [#(#data),*];
// (the second array is to ensure alignment)
static #symbol_data : ([u8; #data_size], [u32;0])= ([#(#data),*], []);
#link_section
static #symbol: sp::StaticTextures = sp::StaticTextures{
size: sp::IntSize::new(#width as _, #height as _),
original_size: sp::IntSize::new(#unscaled_width as _, #unscaled_height as _),
data: sp::Slice::from_slice(&#symbol_data),
data: sp::Slice::from_slice(&#symbol_data.0),
textures: sp::Slice::from_slice(&[
sp::StaticTexture {
rect: sp::euclid::rect(#r_x as _, #r_y as _, #r_w as _, #r_h as _),