38 [[nodiscard]]
bool isValid()
const override;
61 [[nodiscard]]
virtual std::expected<void, ErrorHandling::CoreError>
Abstract interface representing an image used as a working buffer.
Class extending IWorkingImageHardware for GPU-specific implementations.
virtual ~WorkingImageGPU()=default
Virtual destructor for safe inheritance and polymorphic deletion.
bool isValid() const override
Checks if the GPU buffer is valid and allocated.
std::expected< std::unique_ptr< Common::ImageRegion >, ErrorHandling::CoreError > getFullResImage() override
Exports current internal image data by downloading from the GPU device to Host memory.
virtual bool downloadDeviceToHost()=0
A pure method that specific backends (Halide, Vulkan, etc.) must implement.
WorkingImageGPU()=default
Constructor.
virtual std::expected< void, ErrorHandling::CoreError > transferToVRAM()=0
Transfers the image data to GPU VRAM.
Common::MemoryType getMemoryType() const override
Gets the memory type where data resides.
Abstract interface representing an image used as a working buffer, abstracting hardware location.
MemoryType
Enum representing the memory type where image data is stored.
@ GPU_MEMORY
Data is stored in GPU memory.
@ ImageProcessing
Errors related to Image Processing, GPU, or Memory.
CoreError
Enumeration of all error codes for CaptureMoment Core.
Manages the lifecycle of a single IWorkingImage instance.