C# Класс CrystalMpq.DataFormats.Surface

Represents a surface of image data.
Наследование: IDisposable, ICloneable
Показать файл Открыть проект Примеры использования класса

Открытые методы

Метод Описание
Clone ( ) : object
CopyToArgb ( SurfaceData surfaceData ) : void

Copies the contents of the surface to a buffer of same dimensions.

The destination buffer should use the ARGB format represented by ArgbColor. Some basic checks will be done to disallow invalid buffer informations. However, it is the responsibility of the caller to provide a valid destination buffer.

CreateStream ( ) : Stream

Creates a stream for accessing the surface data.

The returned stream can be used for reading the surface data, and, for some surface formats, to modify the surface data.

Dispose ( ) : void
Lock ( ) : SurfaceData

Locks the surface for direct read/write access.

Unlock must be called once direct buffer access is not needed anymore. Forgetting to unlock a locked surface is likely to prevent the buffer from being disposed, thus causing a memory leak. Neither Dispose nor Finalize will unlock the surface, for safety reasons.

Surface ( int width, int height, byte alphaBitCount, bool alphaPremultiplied = false ) : System

Initializes a new instance of the Surface class.

The following restriction is imposed on width and height: The size in bytes of the uncompressed ARGB data for a given surface must fit into an Int32.

ToArray ( ) : byte[]

Gets a copy of the buffer's contents.

Unlock ( ) : void

Защищенные методы

Метод Описание
CopyToArgbInternal ( SurfaceData surfaceData ) : void
Dispose ( bool disposing ) : void

Releases unmanaged and - optionally - managed resources.

Implementation in the base class do nothing.

LockInternal ( int &stride ) : IntPtr

Locks the surface for direct read/write access.

Surface ( Surface surface ) : System

Initializes a new instance of the Surface class by copying data from another Surface.

The base implementation in Surface only copies the common surface characteristics. Copying the actual surface data needs to be done by subclasses overriding this constructor.

UnlockInternal ( ) : void
ValidateDimensions ( int width, int height ) : void

Validates the specified surface dimensions.

This method should throw an ArgumentOutOfRangeException if any of the two dimensions are not allowed. If the combination of width and height is not allowed, ArgumentException should be thrown. Note that the method will be called before object initialization. Thus, the instance should not be used at all from this method.

Описание методов

Clone() публичный Метод

public Clone ( ) : object
Результат object

CopyToArgb() публичный Метод

Copies the contents of the surface to a buffer of same dimensions.
The destination buffer should use the ARGB format represented by ArgbColor. Some basic checks will be done to disallow invalid buffer informations. However, it is the responsibility of the caller to provide a valid destination buffer.
The dimensions of the buffer specified by do not match those of the surface. The stride in does not match the width.
public CopyToArgb ( SurfaceData surfaceData ) : void
surfaceData SurfaceData Information on the destination buffer.
Результат void

CopyToArgbInternal() защищенный абстрактный Метод

protected abstract CopyToArgbInternal ( SurfaceData surfaceData ) : void
surfaceData SurfaceData
Результат void

CreateStream() публичный абстрактный Метод

Creates a stream for accessing the surface data.
The returned stream can be used for reading the surface data, and, for some surface formats, to modify the surface data.
public abstract CreateStream ( ) : Stream
Результат Stream

Dispose() публичный Метод

public Dispose ( ) : void
Результат void

Dispose() защищенный Метод

Releases unmanaged and - optionally - managed resources.
Implementation in the base class do nothing.
protected Dispose ( bool disposing ) : void
disposing bool true to release both managed and unmanaged resources; false to release only unmanaged resources.
Результат void

Lock() публичный Метод

Locks the surface for direct read/write access.
Unlock must be called once direct buffer access is not needed anymore. Forgetting to unlock a locked surface is likely to prevent the buffer from being disposed, thus causing a memory leak. Neither Dispose nor Finalize will unlock the surface, for safety reasons.
public Lock ( ) : SurfaceData
Результат SurfaceData

LockInternal() защищенный абстрактный Метод

Locks the surface for direct read/write access.
protected abstract LockInternal ( int &stride ) : IntPtr
stride int The stride.
Результат System.IntPtr

Surface() защищенный Метод

Initializes a new instance of the Surface class by copying data from another Surface.
The base implementation in Surface only copies the common surface characteristics. Copying the actual surface data needs to be done by subclasses overriding this constructor.
is null.
protected Surface ( Surface surface ) : System
surface Surface A reference surface which should be copied.
Результат System

Surface() публичный Метод

Initializes a new instance of the Surface class.
The following restriction is imposed on width and height: The size in bytes of the uncompressed ARGB data for a given surface must fit into an Int32.
Either or has a value that is not allowed. /// The dimensions specified by and are not allowed. /// - or - /// is true while is zero. /// - or - /// Another parameter verification has failed. ///
public Surface ( int width, int height, byte alphaBitCount, bool alphaPremultiplied = false ) : System
width int The surface width.
height int The surface height.
alphaBitCount byte The alpha bit count.
alphaPremultiplied bool If set to true, the surface uses premultiplied alpha.
Результат System

ToArray() публичный абстрактный Метод

Gets a copy of the buffer's contents.
public abstract ToArray ( ) : byte[]
Результат byte[]

Unlock() публичный Метод

public Unlock ( ) : void
Результат void

UnlockInternal() защищенный абстрактный Метод

protected abstract UnlockInternal ( ) : void
Результат void

ValidateDimensions() защищенный Метод

Validates the specified surface dimensions.
This method should throw an ArgumentOutOfRangeException if any of the two dimensions are not allowed. If the combination of width and height is not allowed, ArgumentException should be thrown. Note that the method will be called before object initialization. Thus, the instance should not be used at all from this method.
Either or has a value that is not allowed. The dimensions specified by and are not allowed.
protected ValidateDimensions ( int width, int height ) : void
width int The proposed surface width.
height int The proposed surface height.
Результат void