Class TextureBase
Base class for Texture, SpriteAtlas, IESProfile and other assets that can contain texture data.
Namespace: FlaxEngine
Assembly: FlaxEngine.CSharp.dll
Syntax
[Unmanaged]
public abstract class TextureBase : BinaryAsset
Constructors
TextureBase()
Fields
MaxArraySize
The maximum array size for the texture resources (supported by engine, the target platform can be lower capabilities).
Declaration
public const int MaxArraySize = 512
Field Value
System.Int32
|
MaxMipLevels
The maximum amount of the mip levels for the texture resources (supported by engine, the target platform can be lower capabilities).
Declaration
public const int MaxMipLevels = 14
Field Value
System.Int32
|
MaxTextureSize
The maximum size for the texture resources (supported by engine, the target platform can be lower capabilities).
Declaration
public const int MaxTextureSize = 8192
Field Value
System.Int32
|
Properties
ArraySize
Gets the total array size of the texture.
Declaration
[Unmanaged]
public int ArraySize { get; }
Property Value
System.Int32
|
CurrentMemoryUsage
Gets the amount of the memory used by this resource. Exact value may differ due to memory alignment and resource allocation policy.
Declaration
[Unmanaged]
public ulong CurrentMemoryUsage { get; }
Property Value
System.UInt64
|
Format
Gets the texture data format.
Declaration
[Unmanaged]
public PixelFormat Format { get; }
Property Value
PixelFormat
|
HasStreamingError
Returns true if texture streaming failed (eg. pixel format is unsupported or texture data cannot be uploaded to GPU due to memory limit).
Declaration
[Unmanaged]
public bool HasStreamingError { get; }
Property Value
System.Boolean
|
Height
Gets the total height of the texture. Actual resident size may be different due to dynamic content streaming. Returns 0 if texture is not loaded.
Declaration
[Unmanaged]
public int Height { get; }
Property Value
System.Int32
|
MipLevels
Gets the total mip levels count of the texture. Actual resident mipmaps count may be different due to dynamic content streaming.
Declaration
[Unmanaged]
public int MipLevels { get; }
Property Value
System.Int32
|
ResidentMipLevels
Gets the current mip levels count of the texture that are on GPU ready to use.
Declaration
[Unmanaged]
public int ResidentMipLevels { get; }
Property Value
System.Int32
|
Size
Gets the total size of the texture. Actual resident size may be different due to dynamic content streaming. Returns Float2.Zero if texture is not loaded.
Declaration
[Unmanaged]
public Float2 Size { get; }
Property Value
Float2
|
Texture
Gets GPU texture object allocated by the asset.
Declaration
[Unmanaged]
public GPUTexture Texture { get; }
Property Value
GPUTexture
|
TextureGroup
Gets or sets the index of the texture group used by this texture.
Declaration
[Unmanaged]
public int TextureGroup { get; set; }
Property Value
System.Int32
|
TotalMemoryUsage
Gets the total memory usage that texture may have in use (if loaded to the maximum quality). Exact value may differ due to memory alignment and resource allocation policy.
Declaration
[Unmanaged]
public ulong TotalMemoryUsage { get; }
Property Value
System.UInt64
|
Width
Gets the total width of the texture. Actual resident size may be different due to dynamic content streaming. Returns 0 if texture is not loaded.
Declaration
[Unmanaged]
public int Width { get; }
Property Value
System.Int32
|
Methods
GetMipData(Int32, out Int32, out Int32)
Gets the mip data.
Declaration
[Unmanaged]
public byte[] GetMipData(int mipIndex, out int rowPitch, out int slicePitch)
Parameters
System.Int32
mipIndex
The mip index (zero-based). |
System.Int32
rowPitch
The data row pitch (in bytes). |
System.Int32
slicePitch
The data slice pitch (in bytes). |
Returns
System.Byte[]
The mip-map data or empty if failed to get it. |
GetPixels(out Color[], Int32, Int32)
Gets the texture pixels as Color array.
Declaration
[Unmanaged]
public bool GetPixels(out Color[] pixels, int mipIndex = 0, int arrayIndex = 0)
Parameters
Color[]
pixels
The result texture pixels array. |
System.Int32
mipIndex
The mip index (zero-based). |
System.Int32
arrayIndex
The array or depth slice index (zero-based). |
Returns
System.Boolean
True if failed, otherwise false. |
Remarks
Supported only for 'basic' texture formats (uncompressed, single plane).
GetPixels(out Color32[], Int32, Int32)
Gets the texture pixels as Color32 array.
Declaration
[Unmanaged]
public bool GetPixels(out Color32[] pixels, int mipIndex = 0, int arrayIndex = 0)
Parameters
Color32[]
pixels
The result texture pixels array. |
System.Int32
mipIndex
The mip index (zero-based). |
System.Int32
arrayIndex
The array or depth slice index (zero-based). |
Returns
System.Boolean
True if failed, otherwise false. |
Remarks
Supported only for 'basic' texture formats (uncompressed, single plane).
Init(ref TextureBase.InitData)
Initializes the texture storage container with the given data. Valid only for virtual assets. Can be used in both Editor and at runtime in a build game. It does not perform any data streaming or uploading to the GPU. Only the texture resource is being initialized and the data is copied to be streamed later.
Declaration
public void Init(ref TextureBase.InitData initData)
Parameters
TextureBase.InitData
initData
The texture init data. |
Remarks
Can be used only for virtual assets (see IsVirtual and CreateVirtualAsset<T>()).
SetPixels(Color[], Int32, Int32, Boolean)
Sets the texture pixels as Color array (asset must be virtual and already initialized).
Declaration
[Unmanaged]
public bool SetPixels(Color[] pixels, int mipIndex = 0, int arrayIndex = 0, bool generateMips = false)
Parameters
Color[]
pixels
The texture pixels array. |
System.Int32
mipIndex
The mip index (zero-based). |
System.Int32
arrayIndex
The array or depth slice index (zero-based). |
System.Boolean
generateMips
Enables automatic mip-maps generation (fast point filter) based on the current mip (will generate lower mips). |
Returns
System.Boolean
True if failed, otherwise false. |
Remarks
Supported only for 'basic' texture formats (uncompressed, single plane).
SetPixels(Color32[], Int32, Int32, Boolean)
Sets the texture pixels as Color32 array (asset must be virtual and already initialized).
Declaration
[Unmanaged]
public bool SetPixels(Color32[] pixels, int mipIndex = 0, int arrayIndex = 0, bool generateMips = false)
Parameters
Color32[]
pixels
The texture pixels array. |
System.Int32
mipIndex
The mip index (zero-based). |
System.Int32
arrayIndex
The array or depth slice index (zero-based). |
System.Boolean
generateMips
Enables automatic mip-maps generation (fast point filter) based on the current mip (will generate lower mips). |
Returns
System.Boolean
True if failed, otherwise false. |
Remarks
Supported only for 'basic' texture formats (uncompressed, single plane).