/* * Copyright (c) 2022, Jelle Raaijmakers * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include namespace SoftGPU { class PixelConverter { public: PixelConverter(GPU::ImageDataLayout input_specification, GPU::ImageDataLayout output_specification) : m_input_specification { input_specification } , m_output_specification { output_specification } { } ErrorOr convert(void const* input_data, void* output_data, Function transform); private: FloatVector4 read_pixel(u8 const**); void write_pixel(u8**, FloatVector4 const&); GPU::ImageDataLayout m_input_specification; GPU::ImageDataLayout m_output_specification; }; }