Renderer: Add mipmaps generation support
This commit is contained in:
@@ -54,6 +54,8 @@ namespace Nz
|
||||
|
||||
virtual void BlitTexture(const Texture& fromTexture, const Boxui& fromBox, TextureLayout fromLayout, const Texture& toTexture, const Boxui& toBox, TextureLayout toLayout, SamplerFilter filter) = 0;
|
||||
|
||||
virtual void BuildMipmaps(Texture& texture, UInt8 baseLevel, UInt8 maxLevel) = 0;
|
||||
|
||||
inline void CopyBuffer(const RenderBufferView& source, const RenderBufferView& target);
|
||||
virtual void CopyBuffer(const RenderBufferView& source, const RenderBufferView& target, UInt64 size, UInt64 fromOffset = 0, UInt64 toOffset = 0) = 0;
|
||||
inline void CopyBuffer(const UploadPool::Allocation& allocation, const RenderBufferView& target);
|
||||
|
||||
@@ -53,6 +53,7 @@ namespace Nz
|
||||
std::shared_ptr<ShaderModule> InstantiateShaderModule(nzsl::ShaderStageTypeFlags shaderStages, ShaderLanguage lang, const std::filesystem::path& sourcePath, const nzsl::ShaderWriter::States& states);
|
||||
virtual std::shared_ptr<Swapchain> InstantiateSwapchain(WindowHandle windowHandle, const Vector2ui& windowSize, const SwapchainParameters& parameters) = 0;
|
||||
virtual std::shared_ptr<Texture> InstantiateTexture(const TextureInfo& params) = 0;
|
||||
virtual std::shared_ptr<Texture> InstantiateTexture(const TextureInfo& params, const void* initialData, bool buildMipmaps, unsigned int srcWidth = 0, unsigned int srcHeight = 0) = 0;
|
||||
virtual std::shared_ptr<TextureSampler> InstantiateTextureSampler(const TextureSamplerInfo& params) = 0;
|
||||
|
||||
virtual bool IsTextureFormatSupported(PixelFormat format, TextureUsage usage) const = 0;
|
||||
|
||||
@@ -25,8 +25,8 @@ namespace Nz
|
||||
{
|
||||
PixelFormat pixelFormat;
|
||||
ImageType type;
|
||||
TextureUsageFlags usageFlags = TextureUsage::ShaderSampling | TextureUsage::TransferDestination;
|
||||
UInt8 levelCount = 1;
|
||||
TextureUsageFlags usageFlags = TextureUsage::ShaderSampling | TextureUsage::TransferDestination | TextureUsage::TransferSource;
|
||||
UInt8 levelCount = 0xFF;
|
||||
unsigned int layerCount = 1;
|
||||
unsigned int depth = 1;
|
||||
unsigned int height;
|
||||
@@ -46,7 +46,8 @@ namespace Nz
|
||||
struct NAZARA_RENDERER_API TextureParams : ImageParams
|
||||
{
|
||||
std::shared_ptr<RenderDevice> renderDevice;
|
||||
TextureUsageFlags usageFlags = TextureUsage::ShaderSampling | TextureUsage::TransferDestination;
|
||||
TextureUsageFlags usageFlags = TextureUsage::ShaderSampling | TextureUsage::TransferDestination | TextureUsage::TransferSource;
|
||||
bool buildMipmaps = true;
|
||||
|
||||
bool IsValid() const;
|
||||
void Merge(const TextureParams& params);
|
||||
|
||||
Reference in New Issue
Block a user