// Copyright (C) 2022 Jérôme "Lynix" Leclercq (lynix680@gmail.com) // This file is part of the "Nazara Engine - Renderer module" // For conditions of distribution and use, see copyright notice in Config.hpp #include #include namespace Nz { inline TextureInfo Texture::ApplyView(TextureInfo textureInfo, const TextureViewInfo& viewInfo) { textureInfo.type = viewInfo.viewType; textureInfo.pixelFormat = viewInfo.reinterpretFormat; textureInfo.width = GetLevelSize(textureInfo.width, viewInfo.baseMipLevel); textureInfo.height = GetLevelSize(textureInfo.height, viewInfo.baseMipLevel); textureInfo.depth = GetLevelSize(textureInfo.depth, viewInfo.baseMipLevel); textureInfo.levelCount = (textureInfo.levelCount > viewInfo.baseMipLevel) ? (textureInfo.levelCount - viewInfo.baseMipLevel) : 1; textureInfo.layerCount = (textureInfo.layerCount > viewInfo.baseArrayLayer) ? (textureInfo.layerCount - viewInfo.baseArrayLayer) : 1; return textureInfo; } inline unsigned int Texture::GetLevelSize(unsigned int size, unsigned int level) { if (size == 0) // Possible dans le cas d'une image invalide return 0; return std::max(size >> level, 1U); } } #include