3#include <litefx/graphics_api.hpp>
4#include <litefx/rendering_api.hpp>
6#ifdef LITEFX_BUILD_VULKAN_BACKEND
7#include <litefx/backends/vulkan.hpp>
10#ifdef LITEFX_BUILD_DIRECTX_12_BACKEND
11#include <litefx/backends/dx12.hpp>
30 template <render_backend TBackend>
32 LITEFX_IMPLEMENTATION(BlitImpl);
40 explicit Blitter(
const TBackend::device_type& device);
43 Blitter(
const Blitter&) =
delete;
46 Blitter(Blitter&&) noexcept = delete;
49 Blitter& operator=(const Blitter&) = delete;
52 Blitter& operator=(Blitter&&) noexcept = delete;
56 ~Blitter() noexcept override = default;
64 static inline auto
create(const TBackend::device_type& device) {
70 void generateMipMaps(TBackend::image_type& image, TBackend::command_buffer_type& commandBuffer) ;
73#ifdef LITEFX_LINK_SHARED
74#ifdef LITEFX_BUILD_VULKAN_BACKEND
75#ifndef LiteFX_Graphics_EXPORTS
80#ifdef LITEFX_BUILD_DIRECTX_12_BACKEND
81#ifndef LiteFX_Graphics_EXPORTS
Utility class that can be used to issue blit commands and generate mip maps.
Definition blitter.hpp:31
void generateMipMaps(TBackend::image_type &image, TBackend::command_buffer_type &commandBuffer)
static auto create(const TBackend::device_type &device)
Creates a new blitter instance.
Definition blitter.hpp:64
Base class for an object that can be shared.
Definition containers.hpp:1075
static auto create(TArgs &&... args) -> SharedPtr< T >
Generic factory method used to create instances of the shared object.
Definition containers.hpp:1114
Definition blitter.hpp:14
An allocator used to allocate the shared object.
Definition containers.hpp:1098