internal TextureDescription(
     Memory <byte> bitData,
     D3D12_RESOURCE_DIMENSION resourceDimension,
     Size3 size,
     uint mipCount,
     uint arraySize,
     DXGI_FORMAT format,
     LoaderFlags loaderFlags,
     bool isCubeMap,
     Memory <ManagedSubresourceData> subresourceData,
     AlphaMode alphaMode,
     TexType underlyingTextureType)
 {
     BitData               = bitData;
     ResourceDimension     = resourceDimension;
     _size                 = size;
     MipCount              = mipCount;
     ArraySize             = arraySize;
     Format                = format;
     LoaderFlags           = loaderFlags;
     IsCubeMap             = isCubeMap;
     SubresourceData       = subresourceData;
     AlphaMode             = alphaMode;
     UnderlyingTextureType = underlyingTextureType;
 }
            public void SetResourceDimension(D3D12_RESOURCE_DIMENSION resourceDimension)
            {
                uint u = (uint)resourceDimension;

                D3D12MA_ASSERT((D3D12MA_DEBUG_LEVEL > 0) && (u < (1u << 3)));
                m_ResourceDimension = u;
            }
 public D3D12_RESOURCE_DESC(D3D12_RESOURCE_DIMENSION dimension, [NativeTypeName("UINT64")] ulong alignment, [NativeTypeName("UINT64")] ulong width, [NativeTypeName("UINT")] uint height, [NativeTypeName("UINT16")] ushort depthOrArraySize, [NativeTypeName("UINT16")] ushort mipLevels, DXGI_FORMAT format, [NativeTypeName("UINT")] uint sampleCount, [NativeTypeName("UINT")] uint sampleQuality, D3D12_TEXTURE_LAYOUT layout, D3D12_RESOURCE_FLAGS flags)
 {
     Dimension          = dimension;
     Alignment          = alignment;
     Width              = width;
     Height             = height;
     DepthOrArraySize   = depthOrArraySize;
     MipLevels          = mipLevels;
     Format             = format;
     SampleDesc.Count   = sampleCount;
     SampleDesc.Quality = sampleQuality;
     Layout             = layout;
     Flags              = flags;
 }