CaptureMoment 0.1.0
Free and open-source non-destructive photo editor
Loading...
Searching...
No Matches
pipeline_halide_operation_manager.h
Go to the documentation of this file.
1
12#pragma once
13
18
19#include <vector>
20#include <memory>
21#include <mutex>
22
23namespace CaptureMoment::Core {
24namespace Strategies {
25
31public:
36
38
39 // Disable copy/move (Manager owns a mutex and pointers, copying is unsafe/complex)
44
51 [[nodiscard]] virtual bool execute(ImageProcessing::IWorkingImageHardware& working_image) override;
52
61 void init(std::vector<Operations::OperationDescriptor>&& operations);
62
63private:
67 mutable std::mutex m_mutex;
68
74 std::unique_ptr<Pipeline::OperationPipelineExecutor> m_executor;
75
79 std::vector<Operations::OperationDescriptor> m_last_operations;
80
84 std::unique_ptr<Operations::OperationFactory> m_operation_factory;
85};
86
87} // namespace Strategies
88} // namespace CaptureMoment::Core
Abstract interface representing an image used as a working buffer.
High-level interface for executing a processing strategy.
Thread-safe manager responsible for fused Halide operation pipelines.
void init(std::vector< Operations::OperationDescriptor > &&operations)
Initializes the manager with a new list of operations (Thread-Safe).
PipelineHalideOperationManager(PipelineHalideOperationManager &&)=delete
PipelineHalideOperationManager & operator=(PipelineHalideOperationManager &&)=delete
PipelineHalideOperationManager & operator=(const PipelineHalideOperationManager &)=delete
PipelineHalideOperationManager(const PipelineHalideOperationManager &)=delete
virtual bool execute(ImageProcessing::IWorkingImageHardware &working_image) override
Executes the Halide pipeline on the image (Thread-Safe).
Abstract interface for managing a specific category of image processing.
Manages the lifecycle of a single IWorkingImage instance.
Descriptor of an operation with its parameters and unique identifier.
Factory for creating operations (Dependency Injection)
Declaration of OperationPipelineExecutor (Fused Adjustment Pipeline).
CaptureMoment — footer