CaptureMoment 0.1.0
Free and open-source non-destructive photo editor
Loading...
Searching...
No Matches
pch.h
Go to the documentation of this file.
1
8#pragma once
9
10// ============================================================
11// 1. C++ Standard Library (Foundational types and utilities)
12// ============================================================
13#include <cstddef>
14#include <cstdint>
15#include <memory>
16#include <optional>
17#include <span>
18#include <string>
19#include <string_view>
20#include <vector>
21#include <algorithm>
22#include <utility>
23#include <functional>
24#include <unordered_map>
25
26// ============================================================
27// 2. Third-Party Libraries (Can sometimes define global macros)
28// Place Halide early if other headers might rely on its types/macros.
29// spdlog is generally well-behaved regarding macros.
30// ============================================================
31#include "Halide.h" // Halide library headers
32#include <spdlog/spdlog.h> // spdlog library headers
33#include <magic_enum/magic_enum.hpp> // magic_enum for enum-string conversions
34
35// ============================================================
36// 3. Internal Core Modules (Umbrella Headers Only)
37// Order might matter if one umbrella header includes another,
38// but ideally, umbrella headers are self-contained.
39// Common types/config often used by many others.
40// ============================================================
41
42// 3a. Common & Configuration (Often foundational)
43#include "common/types/memory_type.h" // Basic enums/types
44#include "config/app_config.h" // Global config singleton
45#include "common/image_region.h" // Core POD data structure
46#include "common/error_handling/core_error.h" // Error handling types
47
48// 3b. Core Modules (Order might be less critical with umbrella headers)
49#include "common/common.h" // Umbrella for common types
50#include "utils/utils.h" // Umbrella for utility functions
51#include "operations/operations.h" // Operations and factories
52#include "image_processing/image_processing.h" // Hardware abstraction, factories, etc.
53#include "pipeline/pipeline.h" // Pipeline executors, builders, etc.
54#include "strategies/strategies.h" // Pipeline management strategies
55#include "managers/managers.h" // Source, State managers
56#include "domain/domain.h" // Task interfaces, etc.
57#include "engine/engine.h" // Orchestrators like PhotoEngine
58#include "serializer/serializer.h" // Serialization interfaces, providers, etc.
59#include "workers/workers.h" // Worker interfaces, builders, registries, etc.
60#include "image_config/image_config.h" // Image operation configuration structures
61
Application-wide configuration singleton.
Umbrella header for the Common module of the CaptureMoment Core Library.
Central error handling system for CaptureMoment Core library.
Umbrella header for the Domain module.
Umbrella header for the Engine module.
Umbrella header for the ImageConfig module of the CaptureMoment Core Library.
Umbrella header for the ImageProcessing module.
Defines the ImageRegion structure for representing pixel buffers in the CaptureMoment Core library.
Umbrella header for the Managers module.
Enum representing the memory type where image data is stored (CPU or GPU).
Umbrella header for the Operations module of CaptureMoment Core.
Umbrella header for the Pipeline module.
Umbrella header for the Serializer module.
Umbrella header for the Processing Strategies module.
Umbrella header for the Utils module of the CaptureMoment Core Library.
Umbrella header for the Processing Workers module.
CaptureMoment — footer