blob: a99d572db2b3869f55e38a6a5c32b52d23ee95f8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
// GPU texture readback utility for offline processing
// Synchronous blocking operation (waits for GPU completion)
#pragma once
// Protected with STRIP_ALL: only needed for dev tools, not final release
#if !defined(STRIP_ALL)
#include "platform/platform.h"
#include <cstdint>
#include <vector>
// Read texture pixels to CPU memory (synchronous, blocking)
// Format: BGRA8Unorm (4 bytes per pixel)
// Returns: width * height * 4 bytes
std::vector<uint8_t> read_texture_pixels(WGPUInstance instance,
WGPUDevice device, WGPUTexture texture,
int width, int height);
// Read RGBA16Float texture and convert to BGRA8Unorm for saving
// Converts [-1,1] float range to [0,255] uint8 range
// Returns: width * height * 4 bytes (BGRA8)
std::vector<uint8_t> texture_readback_fp16_to_u8(WGPUDevice device,
WGPUQueue queue,
WGPUTexture texture, int width,
int height);
#endif // !defined(STRIP_ALL)
|