Backend-neutral plumbing shared by GPU-direct video CAPTURE strategies (no graphics-API headers). More...
Detailed Description
Backend-neutral plumbing shared by GPU-direct video CAPTURE strategies (no graphics-API headers).
These pieces are common to every capture strategy regardless of backend: the lock-free slot handoff between the vendor capture thread and the render thread, and the output-texture byte-size sanity check. They carry no GL / Vulkan / D3D dependency, so a Vulkan strategy can use them without dragging in OpenGL private headers (which GLCaptureUpload.hpp does). GL-specific upload helpers live in GLCaptureUpload.hpp, which includes this file.
Go to the source code of this file.
Classes | |
| struct | score::gfx::interop::CaptureSlotPublisher |
| Lock-free single-producer/single-consumer slot handoff. More... | |
| struct | score::gfx::interop::BorrowedSlotTracker |
| Ownership bookkeeping for capture strategies that sample the producer's own buffers instead of copying out of them. More... | |
Namespaces | |
| namespace | score |
| Base toolkit upon which the software is built. | |
| namespace | score::gfx |
| Graphics rendering pipeline for ossia score. | |
Functions | |
| bool | score::gfx::interop::validateCaptureTextureBytes (const QRhiTexture *tex, std::uint32_t frameByteSize, const char *tag) noexcept |
| Validate that an RGBA8-typed output texture's byte footprint matches the captured frame size (width * 4 * height == frameByteSize). | |
Function Documentation
◆ validateCaptureTextureBytes()
|
inlinenoexcept |
Validate that an RGBA8-typed output texture's byte footprint matches the captured frame size (width * 4 * height == frameByteSize).
Logs and returns false on mismatch so a strategy can bail before DMAing into a wrongly-sized texture. tag is a per-strategy prefix for the warning.