summaryrefslogtreecommitdiff
path: root/src/gpu/texture_manager.cc
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-14 14:03:58 +0100
committerskal <pascal.massimino@gmail.com>2026-02-14 14:03:58 +0100
commit61ced8aa1946cc32de4328cc75b5faf6b77723be (patch)
tree142bad05c24362d7051e80acabaddd6bac2bb753 /src/gpu/texture_manager.cc
parent197a03c24baba3acc35327e0e126ec49754f9945 (diff)
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 <noreply@anthropic.com>
Diffstat (limited to 'src/gpu/texture_manager.cc')
-rw-r--r--src/gpu/texture_manager.cc60
1 files changed, 14 insertions, 46 deletions
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;