lsfg-vk/framegen/include/lsfg.hpp
2025-09-28 23:18:17 +02:00

46 lines
992 B
C++

#pragma once
#include "vk/core/descriptorpool.hpp"
#include "vk/core/device.hpp"
#include "vk/core/instance.hpp"
#include "vk/pool/shader_pool.hpp"
#include "vk/registry/shader_registry.hpp"
#include <filesystem>
#include <memory>
namespace LSFG {
// FIXME: device picking, fp16 logic, etc.
/// Vulkan (and related) data structure.
struct VKD {
VK::Core::Instance instance;
VK::Core::Device device;
VK::Core::DescriptorPool dpool;
VK::Registry::ShaderRegistry registry;
VK::Pool::ShaderPool spool;
float flow{1.0F};
};
///
/// Lossless Scaling Frame Generation instance.
///
class Instance {
public:
///
/// Create an instance.
///
/// @param dll Path to the Lossless.dll file.
///
/// @throws LSFG::error if lsfg creation fails.
///
Instance(const std::filesystem::path& dll);
private:
std::unique_ptr<VKD> vkd;
};
}