From 61ced8aa1946cc32de4328cc75b5faf6b77723be Mon Sep 17 00:00:00 2001 From: skal Date: Sat, 14 Feb 2026 14:03:58 +0100 Subject: Refactor: add gpu_create_texture_view_2d helper Reduces WGPUTextureViewDescriptor boilerplate from 5-7 lines to 1-2. Helper supports optional mip_levels parameter (defaults to 1). Updated 17 call sites across gpu/, tests/, and tools/. Net: -82 lines. All tests passing (34/34). Co-Authored-By: Claude Sonnet 4.5 --- src/gpu/texture_manager.cc | 60 +++++++++++----------------------------------- 1 file changed, 14 insertions(+), 46 deletions(-) (limited to 'src/gpu/texture_manager.cc') diff --git a/src/gpu/texture_manager.cc b/src/gpu/texture_manager.cc index dfa6315..d5821ee 100644 --- a/src/gpu/texture_manager.cc +++ b/src/gpu/texture_manager.cc @@ -103,16 +103,8 @@ void TextureManager::create_texture(const std::string& name, int width, &source_layout, &tex_size); // 4. Create View - WGPUTextureViewDescriptor view_desc = {}; - view_desc.format = WGPUTextureFormat_RGBA8Unorm; - view_desc.dimension = WGPUTextureViewDimension_2D; - view_desc.baseMipLevel = 0; - view_desc.mipLevelCount = 1; - view_desc.baseArrayLayer = 0; - view_desc.arrayLayerCount = 1; - view_desc.aspect = WGPUTextureAspect_All; - - WGPUTextureView view = wgpuTextureCreateView(texture, &view_desc); + WGPUTextureView view = + gpu_create_texture_view_2d(texture, WGPUTextureFormat_RGBA8Unorm); // 5. Store GpuTexture gpu_tex; @@ -242,12 +234,8 @@ void TextureManager::dispatch_compute(const std::string& func_name, wgpuBufferUnmap(uniform_buf); // Create storage texture view - WGPUTextureViewDescriptor view_desc = {}; - view_desc.format = WGPUTextureFormat_RGBA8Unorm; - view_desc.dimension = WGPUTextureViewDimension_2D; - view_desc.mipLevelCount = 1; - view_desc.arrayLayerCount = 1; - WGPUTextureView target_view = wgpuTextureCreateView(target, &view_desc); + WGPUTextureView target_view = + gpu_create_texture_view_2d(target, WGPUTextureFormat_RGBA8Unorm); // Create bind group layout entries (must match pipeline) WGPUBindGroupLayoutEntry bgl_entries[2] = {}; @@ -332,12 +320,8 @@ void TextureManager::create_gpu_noise_texture( params.params[0], params.params[1]}; dispatch_compute("gen_noise", texture, params, &uniforms, sizeof(NoiseParams)); - WGPUTextureViewDescriptor view_desc = {}; - view_desc.format = WGPUTextureFormat_RGBA8Unorm; - view_desc.dimension = WGPUTextureViewDimension_2D; - view_desc.mipLevelCount = 1; - view_desc.arrayLayerCount = 1; - WGPUTextureView view = wgpuTextureCreateView(texture, &view_desc); + WGPUTextureView view = + gpu_create_texture_view_2d(texture, WGPUTextureFormat_RGBA8Unorm); GpuTexture gpu_tex; gpu_tex.texture = texture; @@ -389,12 +373,8 @@ void TextureManager::create_gpu_perlin_texture( dispatch_compute("gen_perlin", texture, params, &uniforms, sizeof(PerlinParams)); - WGPUTextureViewDescriptor view_desc = {}; - view_desc.format = WGPUTextureFormat_RGBA8Unorm; - view_desc.dimension = WGPUTextureViewDimension_2D; - view_desc.mipLevelCount = 1; - view_desc.arrayLayerCount = 1; - WGPUTextureView view = wgpuTextureCreateView(texture, &view_desc); + WGPUTextureView view = + gpu_create_texture_view_2d(texture, WGPUTextureFormat_RGBA8Unorm); GpuTexture gpu_tex; gpu_tex.texture = texture; @@ -436,12 +416,8 @@ void TextureManager::create_gpu_grid_texture( params.num_params > 1 ? (uint32_t)params.params[1] : 2u}; dispatch_compute("gen_grid", texture, params, &uniforms, sizeof(GridParams)); - WGPUTextureViewDescriptor view_desc = {}; - view_desc.format = WGPUTextureFormat_RGBA8Unorm; - view_desc.dimension = WGPUTextureViewDimension_2D; - view_desc.mipLevelCount = 1; - view_desc.arrayLayerCount = 1; - WGPUTextureView view = wgpuTextureCreateView(texture, &view_desc); + WGPUTextureView view = + gpu_create_texture_view_2d(texture, WGPUTextureFormat_RGBA8Unorm); GpuTexture gpu_tex; gpu_tex.texture = texture; @@ -528,12 +504,8 @@ void TextureManager::dispatch_composite( wgpuBufferUnmap(uniform_buf); // Create storage texture view - WGPUTextureViewDescriptor view_desc = {}; - view_desc.format = WGPUTextureFormat_RGBA8Unorm; - view_desc.dimension = WGPUTextureViewDimension_2D; - view_desc.mipLevelCount = 1; - view_desc.arrayLayerCount = 1; - WGPUTextureView target_view = wgpuTextureCreateView(target, &view_desc); + WGPUTextureView target_view = + gpu_create_texture_view_2d(target, WGPUTextureFormat_RGBA8Unorm); // Dynamic bind group const int max_entries = 2 + num_inputs + (num_inputs > 0 ? 1 : 0); @@ -665,12 +637,8 @@ void TextureManager::create_gpu_composite_texture( input_views, sampler); // Create view - WGPUTextureViewDescriptor view_desc = {}; - view_desc.format = WGPUTextureFormat_RGBA8Unorm; - view_desc.dimension = WGPUTextureViewDimension_2D; - view_desc.mipLevelCount = 1; - view_desc.arrayLayerCount = 1; - WGPUTextureView view = wgpuTextureCreateView(texture, &view_desc); + WGPUTextureView view = + gpu_create_texture_view_2d(texture, WGPUTextureFormat_RGBA8Unorm); // Store GpuTexture gpu_tex; -- cgit v1.2.3