// AUTOGENERATED COPYRIGHT HEADER START
// Copyright (C) 2020-2023 Michael Fabian 'Xaymar' Dirks <info@xaymar.com>
// AUTOGENERATED COPYRIGHT HEADER END

#pragma once
#include "warning-disable.hpp"
#include <memory>
#include "gfx-lut.hpp"
#include "gfx/gfx-util.hpp"
#include "obs/gs/gs-effect.hpp"
#include "obs/gs/gs-rendertarget.hpp"
#include "warning-enable.hpp"

namespace streamfx::gfx::lut {
	class producer {
		std::shared_ptr<streamfx::gfx::lut::data>        _data;
		std::shared_ptr<streamfx::obs::gs::rendertarget> _rt;
		std::shared_ptr<streamfx::gfx::util>             _gfx_util;

		public:
		producer();
		~producer();

		std::shared_ptr<streamfx::obs::gs::texture> produce(streamfx::gfx::lut::color_depth depth);
	};
} // namespace streamfx::gfx::lut
