From 59b7ca9adff07f8d457fba53ba4d67c293229b68 Mon Sep 17 00:00:00 2001 From: skal Date: Tue, 17 Feb 2026 08:50:24 +0100 Subject: refactor: centralize platform-specific code in gpu.h Move platform-specific type definitions to gpu.h and establish coding rule that platform ifdefs must be confined to gpu/platform layers. - gpu.h: add GpuTextureCopyInfo, GpuTextureDataLayout type aliases - effect.cc: use GpuTextureCopyInfo instead of platform ifdefs - texture_manager.cc: use type aliases and label_view() helper - CODING_STYLE.md: add platform-specific code section with rule Tests: 34/34 passing Co-Authored-By: Claude Sonnet 4.5 --- src/gpu/texture_manager.cc | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) (limited to 'src/gpu/texture_manager.cc') diff --git a/src/gpu/texture_manager.cc b/src/gpu/texture_manager.cc index 5bca95b..bdeb508 100644 --- a/src/gpu/texture_manager.cc +++ b/src/gpu/texture_manager.cc @@ -2,22 +2,13 @@ // It implements the TextureManager. #include "gpu/texture_manager.h" +#include "gpu/gpu.h" #include "gpu/shader_composer.h" #include "platform/platform.h" #include #include #include -#if defined(DEMO_CROSS_COMPILE_WIN32) -// Old API -#define WGPU_TEX_COPY_INFO WGPUImageCopyTexture -#define WGPU_TEX_DATA_LAYOUT WGPUTextureDataLayout -#else -// New API -#define WGPU_TEX_COPY_INFO WGPUTexelCopyTextureInfo -#define WGPU_TEX_DATA_LAYOUT WGPUTexelCopyBufferLayout -#endif - void TextureManager::init(WGPUDevice device, WGPUQueue queue) { device_ = device; queue_ = queue; @@ -79,22 +70,18 @@ void TextureManager::create_texture(const std::string& name, int width, tex_desc.format = WGPUTextureFormat_RGBA8Unorm; tex_desc.mipLevelCount = 1; tex_desc.sampleCount = 1; -#if defined(DEMO_CROSS_COMPILE_WIN32) - tex_desc.label = nullptr; -#else - tex_desc.label = {nullptr, 0}; -#endif + tex_desc.label = label_view(nullptr); WGPUTexture texture = wgpuDeviceCreateTexture(device_, &tex_desc); // 3. Upload Data - WGPU_TEX_COPY_INFO destination = {}; + GpuTextureCopyInfo destination = {}; destination.texture = texture; destination.mipLevel = 0; destination.origin = {0, 0, 0}; destination.aspect = WGPUTextureAspect_All; - WGPU_TEX_DATA_LAYOUT source_layout = {}; + GpuTextureDataLayout source_layout = {}; source_layout.offset = 0; source_layout.bytesPerRow = width * 4; source_layout.rowsPerImage = height; -- cgit v1.2.3