28namespace ph {
class Path; }
29namespace ph {
class ByteBuffer; }
34#if PH_THIRD_PARTY_HAS_OPENEXR
46void copy_frame_to_imf_array(
49 Imf::Array2D<TImfPixel<T>>& array2D);
51template<
typename T, std::
size_t N>
52void create_imf_header_for_frame(
54 const TFrame<T, N>& frame,
55 const std::array<std::string_view, N>& channelNames);
57template<std::
size_t N>
58auto find_imf_channels(
59 const Imf::Header& header,
60 const std::array<std::string_view, N>& channelNames)
61-> std::array<const Imf::Channel*, N>;
66template<
typename T, std::
size_t N>
67void map_imf_framebuffer_to_frame(
68 Imf::FrameBuffer& framebuffer,
69 const Imf::Header& header,
70 const TFrame<T, N>& frame,
71 const std::array<std::string_view, N>& channelNames);
78void write_imf_framebuffer_to_filesystem(
79 const Imf::Header& header,
80 const Imf::FrameBuffer& framebuffer,
81 const int numScanlines,
82 const Path& filePath);
84void write_imf_framebuffer_to_memory(
85 const Imf::Header& header,
86 const Imf::FrameBuffer& framebuffer,
87 const int numScanlines,
90std::string list_all_imf_layers_and_channels(
const Imf::Header& header);
The root for all renderer implementations.
Definition EEngineProject.h:6
TFrame< HdrComponent, 3 > HdrRgbFrame
Definition frame_fwd.h:17
float32 HdrComponent
Definition frame_fwd.h:14