Units Class Hierarchy Classes, Interfaces, Objects and Records Types Variables Constants Functions and Procedures Identifiers |
Class TglBitmapData
Unit
glBitmap
Declaration
type TglBitmapData = class(TObject)
Description
class to store texture data in. used to load, save and manipulate data before assigned to texture object all operations on a data object can be done from a background thread
Hierarchy
Overview
Fields
Methods
|
function GetFormatDescriptor: TglBitmapFormatDescriptor; |
|
function GetWidth: Integer; |
|
function GetHeight: Integer; |
|
function GetScanlines(const aIndex: Integer): PByte; |
|
procedure SetFormat(const aValue: TglBitmapFormat); |
|
procedure PrepareResType(var aResource: String; var aResType: PChar); |
|
procedure UpdateScanlines; |
|
function LoadPNG(const aStream: TStream): Boolean; virtual; |
|
procedure SavePNG(const aStream: TStream); virtual; |
|
function LoadJPEG(const aStream: TStream): Boolean; virtual; |
|
procedure SaveJPEG(const aStream: TStream); virtual; |
|
function LoadRAW(const aStream: TStream): Boolean; |
|
procedure SaveRAW(const aStream: TStream); |
|
function LoadBMP(const aStream: TStream): Boolean; |
|
procedure SaveBMP(const aStream: TStream); |
|
function LoadTGA(const aStream: TStream): Boolean; |
|
procedure SaveTGA(const aStream: TStream); |
|
function LoadDDS(const aStream: TStream): Boolean; |
|
procedure SaveDDS(const aStream: TStream); |
|
function FlipHorz: Boolean; virtual; |
|
function FlipVert: Boolean; virtual; |
|
procedure LoadFromFile(const aFilename: String); |
|
procedure LoadFromStream(const aStream: TStream); virtual; |
|
procedure LoadFromFunc(const aSize: TglBitmapSize; const aFunc: TglBitmapFunction; const aFormat: TglBitmapFormat; const aArgs: Pointer = nil); |
|
procedure LoadFromResource(const aInstance: Cardinal; aResource: String; aResType: PChar = nil); |
|
procedure LoadFromResourceID(const aInstance: Cardinal; const aResourceID: Integer; const aResType: PChar); |
|
procedure SaveToFile(const aFilename: String; const aFileType: TglBitmapFileType); |
|
procedure SaveToStream(const aStream: TStream; const aFileType: TglBitmapFileType); virtual; |
|
function Convert(const aFunc: TglBitmapFunction; const aCreateTemp: Boolean; const aArgs: Pointer = nil): Boolean; overload; |
|
function Convert(const aSource: TglBitmapData; const aFunc: TglBitmapFunction; aCreateTemp: Boolean; const aFormat: TglBitmapFormat; const aArgs: Pointer = nil): Boolean; overload; |
|
function ConvertTo(const aFormat: TglBitmapFormat): Boolean; virtual; |
|
function AssignToLazIntfImage(const aImage: TLazIntfImage): Boolean; |
|
function AssignFromLazIntfImage(const aImage: TLazIntfImage): Boolean; |
|
function AssignAlphaToLazIntfImage(const aImage: TLazIntfImage): Boolean; |
|
function AddAlphaFromLazIntfImage(const aImage: TLazIntfImage; const aFunc: TglBitmapFunction = nil; const aArgs: Pointer = nil): Boolean; |
|
function AddAlphaFromResource(const aInstance: Cardinal; aResource: String; aResType: PChar = nil; const aFunc: TglBitmapFunction = nil; const aArgs: Pointer = nil): Boolean; |
|
function AddAlphaFromResourceID(const aInstance: Cardinal; const aResourceID: Integer; const aResType: PChar; const aFunc: TglBitmapFunction = nil; const aArgs: Pointer = nil): Boolean; |
|
function AddAlphaFromFunc(const aFunc: TglBitmapFunction; const aArgs: Pointer = nil): Boolean; virtual; |
|
function AddAlphaFromFile(const aFileName: String; const aFunc: TglBitmapFunction = nil; const aArgs: Pointer = nil): Boolean; |
|
function AddAlphaFromStream(const aStream: TStream; const aFunc: TglBitmapFunction = nil; const aArgs: Pointer = nil): Boolean; |
|
function AddAlphaFromDataObj(const aDataObj: TglBitmapData; aFunc: TglBitmapFunction; const aArgs: Pointer): Boolean; |
|
function AddAlphaFromColorKey(const aRed, aGreen, aBlue: Byte; const aDeviation: Byte = 0): Boolean; |
|
function AddAlphaFromColorKeyRange(const aRed, aGreen, aBlue: Cardinal; const aDeviation: Cardinal = 0): Boolean; |
|
function AddAlphaFromColorKeyFloat(const aRed, aGreen, aBlue: Single; const aDeviation: Single = 0): Boolean; |
|
function AddAlphaFromValue(const aAlpha: Byte): Boolean; |
|
function AddAlphaFromValueRange(const aAlpha: Cardinal): Boolean; |
|
function AddAlphaFromValueFloat(const aAlpha: Single): Boolean; |
|
function RemoveAlpha: Boolean; virtual; |
|
procedure FillWithColor(const aRed, aGreen, aBlue: Byte; const aAlpha: Byte = 255); |
|
procedure FillWithColorRange(const aRed, aGreen, aBlue: Cardinal; const aAlpha: Cardinal = $FFFFFFFF); |
|
procedure FillWithColorFloat(const aRed, aGreen, aBlue: Single; const aAlpha: Single = 1.0); |
|
procedure SetData(const aData: PByte; const aFormat: TglBitmapFormat; const aWidth: Integer = -1; const aHeight: Integer = -1); virtual; |
|
function Clone: TglBitmapData; |
|
procedure Invert(const aRed, aGreen, aBlue, aAlpha: Boolean); |
|
procedure GenerateNormalMap(const aFunc: TglBitmapNormalMapFunc = nm3x3; const aScale: Single = 2; const aUseAlpha: Boolean = false); |
|
constructor Create; overload; |
|
constructor Create(const aFileName: String); overload; |
|
constructor Create(const aStream: TStream); overload; |
|
constructor Create(const aSize: TglBitmapSize; const aFormat: TglBitmapFormat; aData: PByte = nil); overload; |
|
constructor Create(const aSize: TglBitmapSize; const aFormat: TglBitmapFormat; const aFunc: TglBitmapFunction; const aArgs: Pointer = nil); overload; |
|
constructor Create(const aInstance: Cardinal; const aResource: String; const aResType: PChar = nil); overload; |
|
constructor Create(const aInstance: Cardinal; const aResourceID: Integer; const aResType: PChar); overload; |
|
destructor Destroy; override; |
Properties
Description
Fields
|
fData: PByte; |
texture data
|
|
fFilename: String; |
file the data was load from
|
|
fScanlines: array of PByte; |
pointer to begin of each line
|
|
fHasScanlines: Boolean; |
True if scanlines are initialized, False otherwise
|
Methods
|
function GetWidth: Integer; |
Returns
the width of the texture data (in pixel) or -1 if no data is set |
|
function GetHeight: Integer; |
Returns
the height of the texture data (in pixel) or -1 if no data is set |
|
function GetScanlines(const aIndex: Integer): PByte; |
get scanline at index aIndex
Returns
Pointer to start of line or Nil |
|
procedure SetFormat(const aValue: TglBitmapFormat); |
set new value for the data format. only possible if new format has the same pixel size. if you want to convert the texture data, see ConvertTo function
|
|
procedure PrepareResType(var aResource: String; var aResType: PChar); |
splits a resource identifier into the resource and it's type
Parameters
- aResource
- resource identifier to split and store name in
- aResType
- type of the resource
|
|
procedure UpdateScanlines; |
updates scanlines array
|
|
function LoadPNG(const aStream: TStream): Boolean; virtual; |
try to load a PNG from a stream
Parameters
- aStream
- stream to load PNG from
Returns
True on success, False otherwise
|
|
procedure SavePNG(const aStream: TStream); virtual; |
save texture data as PNG to stream
Parameters
- aStream
- stream to save data to
|
|
function LoadJPEG(const aStream: TStream): Boolean; virtual; |
try to load a JPEG from a stream
Parameters
- aStream
- stream to load JPEG from
Returns
True on success, False otherwise
|
|
procedure SaveJPEG(const aStream: TStream); virtual; |
save texture data as JPEG to stream
Parameters
- aStream
- stream to save data to
|
|
function LoadRAW(const aStream: TStream): Boolean; |
try to load a RAW image from a stream
Parameters
- aStream
- stream to load RAW image from
Returns
True on success, False otherwise
|
|
procedure SaveRAW(const aStream: TStream); |
save texture data as RAW image to stream
Parameters
- aStream
- stream to save data to
|
|
function LoadBMP(const aStream: TStream): Boolean; |
try to load a BMP from a stream
Parameters
- aStream
- stream to load BMP from
Returns
True on success, False otherwise
|
|
procedure SaveBMP(const aStream: TStream); |
save texture data as BMP to stream
Parameters
- aStream
- stream to save data to
|
|
function LoadTGA(const aStream: TStream): Boolean; |
try to load a TGA from a stream
Parameters
- aStream
- stream to load TGA from
Returns
True on success, False otherwise
|
|
procedure SaveTGA(const aStream: TStream); |
save texture data as TGA to stream
Parameters
- aStream
- stream to save data to
|
|
function LoadDDS(const aStream: TStream): Boolean; |
try to load a DDS from a stream
Parameters
- aStream
- stream to load DDS from
Returns
True on success, False otherwise
|
|
procedure SaveDDS(const aStream: TStream); |
save texture data as DDS to stream
Parameters
- aStream
- stream to save data to
|
|
function FlipHorz: Boolean; virtual; |
flip texture horizontal
Returns
True in success, False otherwise
|
|
function FlipVert: Boolean; virtual; |
flip texture vertical
Returns
True in success, False otherwise
|
|
procedure LoadFromFile(const aFilename: String); |
load a texture from a file
Parameters
- aFilename
- file to load texuture from
|
|
procedure LoadFromStream(const aStream: TStream); virtual; |
load a texture from a stream
Parameters
- aStream
- stream to load texture from
|
|
procedure LoadFromFunc(const aSize: TglBitmapSize; const aFunc: TglBitmapFunction; const aFormat: TglBitmapFormat; const aArgs: Pointer = nil); |
use a function to generate texture data
Parameters
- aSize
- size of the texture
- aFunc
- callback to use for generation
- aFormat
- format of the texture data
- aArgs
- user defined paramaters (use at will)
|
|
procedure LoadFromResource(const aInstance: Cardinal; aResource: String; aResType: PChar = nil); |
load a texture from a resource
Parameters
- aInstance
- resource handle
- aResource
- resource indentifier
- aResType
- resource type (if known)
|
|
procedure LoadFromResourceID(const aInstance: Cardinal; const aResourceID: Integer; const aResType: PChar); |
load a texture from a resource id
Parameters
- aInstance
- resource handle
- aResource
- resource ID
- aResType
- resource type
|
|
procedure SaveToFile(const aFilename: String; const aFileType: TglBitmapFileType); |
save texture data to a file
Parameters
- aFilename
- filename to store texture in
- aFileType
- file type to store data into
|
|
procedure SaveToStream(const aStream: TStream; const aFileType: TglBitmapFileType); virtual; |
save texture data to a stream
Parameters
- aFilename
- filename to store texture in
- aFileType
- file type to store data into
|
|
function Convert(const aFunc: TglBitmapFunction; const aCreateTemp: Boolean; const aArgs: Pointer = nil): Boolean; overload; |
convert texture data using a user defined callback
Parameters
- aFunc
- callback to use for converting
- aCreateTemp
- create a temporary buffer to use for converting
- aArgs
- user defined paramters (use at will)
Returns
True if converting was successful, False otherwise
|
|
function Convert(const aSource: TglBitmapData; const aFunc: TglBitmapFunction; aCreateTemp: Boolean; const aFormat: TglBitmapFormat; const aArgs: Pointer = nil): Boolean; overload; |
convert texture data using a user defined callback
Parameters
- aSource
- glBitmap to read data from
- aFunc
- callback to use for converting
- aCreateTemp
- create a temporary buffer to use for converting
- aFormat
- format of the new data
- aArgs
- user defined paramters (use at will)
Returns
True if converting was successful, False otherwise
|
|
function ConvertTo(const aFormat: TglBitmapFormat): Boolean; virtual; |
convert texture data using a specific format
Parameters
- aFormat
- new format of texture data
Returns
True if converting was successful, False otherwise
|
|
function AssignToLazIntfImage(const aImage: TLazIntfImage): Boolean; |
assign texture data to TLazIntfImage object
Parameters
- aImage
- TLazIntfImage to write data to
Returns
True on success, False otherwise
|
|
function AssignFromLazIntfImage(const aImage: TLazIntfImage): Boolean; |
assign texture data from TLazIntfImage object
Parameters
- aImage
- TLazIntfImage to read data from
Returns
True on success, False otherwise
|
|
function AssignAlphaToLazIntfImage(const aImage: TLazIntfImage): Boolean; |
assign alpha channel data to TLazIntfImage object
Parameters
- aImage
- TLazIntfImage to write data to
Returns
True on success, False otherwise
|
|
function AddAlphaFromLazIntfImage(const aImage: TLazIntfImage; const aFunc: TglBitmapFunction = nil; const aArgs: Pointer = nil): Boolean; |
assign alpha channel data from TLazIntfImage object
Parameters
- aImage
- TLazIntfImage to read data from
- aFunc
- callback to use for converting
- aArgs
- user defined parameters (use at will)
Returns
True on success, False otherwise
|
|
function AddAlphaFromResource(const aInstance: Cardinal; aResource: String; aResType: PChar = nil; const aFunc: TglBitmapFunction = nil; const aArgs: Pointer = nil): Boolean; |
load alpha channel data from resource
Parameters
- aInstance
- resource handle
- aResource
- resource ID
- aResType
- resource type
- aFunc
- callback to use for converting
- aArgs
- user defined parameters (use at will)
Returns
True on success, False otherwise
|
|
function AddAlphaFromResourceID(const aInstance: Cardinal; const aResourceID: Integer; const aResType: PChar; const aFunc: TglBitmapFunction = nil; const aArgs: Pointer = nil): Boolean; |
load alpha channel data from resource ID
Parameters
- aInstance
- resource handle
- aResourceID
- resource ID
- aResType
- resource type
- aFunc
- callback to use for converting
- aArgs
- user defined parameters (use at will)
Returns
True on success, False otherwise
|
|
function AddAlphaFromFunc(const aFunc: TglBitmapFunction; const aArgs: Pointer = nil): Boolean; virtual; |
add alpha channel data from function
Parameters
- aFunc
- callback to get data from
- aArgs
- user defined parameters (use at will)
Returns
True on success, False otherwise
|
|
function AddAlphaFromFile(const aFileName: String; const aFunc: TglBitmapFunction = nil; const aArgs: Pointer = nil): Boolean; |
add alpha channel data from file (macro for: new glBitmap, LoadFromFile, AddAlphaFromGlBitmap)
Parameters
- aFilename
- file to load alpha channel data from
- aFunc
- callback to use for converting
- aArgs
- SetFormat user defined parameters (use at will)
Returns
True on success, False otherwise
|
|
function AddAlphaFromStream(const aStream: TStream; const aFunc: TglBitmapFunction = nil; const aArgs: Pointer = nil): Boolean; |
add alpha channel data from stream (macro for: new glBitmap, LoadFromStream, AddAlphaFromGlBitmap)
Parameters
- aStream
- stream to load alpha channel data from
- aFunc
- callback to use for converting
- aArgs
- user defined parameters (use at will)
Returns
True on success, False otherwise
|
|
function AddAlphaFromDataObj(const aDataObj: TglBitmapData; aFunc: TglBitmapFunction; const aArgs: Pointer): Boolean; |
add alpha channel data from existing glBitmap object
Parameters
- aBitmap
- TglBitmap to copy alpha channel data from
- aFunc
- callback to use for converting
- aArgs
- user defined parameters (use at will)
Returns
True on success, False otherwise
|
|
function AddAlphaFromColorKey(const aRed, aGreen, aBlue: Byte; const aDeviation: Byte = 0): Boolean; |
add alpha to pixel if the pixels color is greter than the given color value
Parameters
- aRed
- red threshold (0-255)
- aGreen
- green threshold (0-255)
- aBlue
- blue threshold (0-255)
- aDeviatation
- accepted deviatation (0-255)
Returns
True on success, False otherwise
|
|
function AddAlphaFromColorKeyRange(const aRed, aGreen, aBlue: Cardinal; const aDeviation: Cardinal = 0): Boolean; |
add alpha to pixel if the pixels color is greter than the given color value
Parameters
- aRed
- red threshold (0-Range.r)
- aGreen
- green threshold (0-Range.g)
- aBlue
- blue threshold (0-Range.b)
- aDeviatation
- accepted deviatation (0-max(Range.rgb))
Returns
True on success, False otherwise
|
|
function AddAlphaFromColorKeyFloat(const aRed, aGreen, aBlue: Single; const aDeviation: Single = 0): Boolean; |
add alpha to pixel if the pixels color is greter than the given color value
Parameters
- aRed
- red threshold (0.0-1.0)
- aGreen
- green threshold (0.0-1.0)
- aBlue
- blue threshold (0.0-1.0)
- aDeviatation
- accepted deviatation (0.0-1.0)
Returns
True on success, False otherwise
|
|
function AddAlphaFromValue(const aAlpha: Byte): Boolean; |
add a constand alpha value to all pixels
Parameters
- aAlpha
- alpha value to add (0-255)
Returns
True on success, False otherwise
|
|
function AddAlphaFromValueRange(const aAlpha: Cardinal): Boolean; |
add a constand alpha value to all pixels
Parameters
- aAlpha
- alpha value to add (0-max(Range.rgb))
Returns
True on success, False otherwise
|
|
function AddAlphaFromValueFloat(const aAlpha: Single): Boolean; |
add a constand alpha value to all pixels
Parameters
- aAlpha
- alpha value to add (0.0-1.0)
Returns
True on success, False otherwise
|
|
function RemoveAlpha: Boolean; virtual; |
remove alpha channel
Returns
True on success, False otherwise
|
|
procedure FillWithColor(const aRed, aGreen, aBlue: Byte; const aAlpha: Byte = 255); |
fill complete texture with one color
Parameters
- aRed
- red color for border (0-255)
- aGreen
- green color for border (0-255)
- aBlue
- blue color for border (0-255)
- aAlpha
- alpha color for border (0-255)
|
|
procedure FillWithColorRange(const aRed, aGreen, aBlue: Cardinal; const aAlpha: Cardinal = $FFFFFFFF); |
fill complete texture with one color
Parameters
- aRed
- red color for border (0-Range.r)
- aGreen
- green color for border (0-Range.g)
- aBlue
- blue color for border (0-Range.b)
- aAlpha
- alpha color for border (0-Range.a)
|
|
procedure FillWithColorFloat(const aRed, aGreen, aBlue: Single; const aAlpha: Single = 1.0); |
fill complete texture with one color
Parameters
- aRed
- red color for border (0.0-1.0)
- aGreen
- green color for border (0.0-1.0)
- aBlue
- blue color for border (0.0-1.0)
- aAlpha
- alpha color for border (0.0-1.0)
|
|
procedure SetData(const aData: PByte; const aFormat: TglBitmapFormat; const aWidth: Integer = -1; const aHeight: Integer = -1); virtual; |
set data pointer of texture data
Parameters
- aData
- pointer to new texture data
- aFormat
- format of the data stored at aData
- aWidth
- width of the texture data
- aHeight
- height of the texture data
|
|
function Clone: TglBitmapData; |
create a clone of the current object
Returns
clone of this object |
|
procedure Invert(const aRed, aGreen, aBlue, aAlpha: Boolean); |
invert color data (bitwise not)
Parameters
- aRed
- invert red channel
- aGreen
- invert green channel
- aBlue
- invert blue channel
- aAlpha
- invert alpha channel
|
|
procedure GenerateNormalMap(const aFunc: TglBitmapNormalMapFunc = nm3x3; const aScale: Single = 2; const aUseAlpha: Boolean = false); |
create normal map from texture data
Parameters
- aFunc
- normal map function to generate normalmap with
- aScale
- scale of the normale stored in the normal map
- aUseAlpha
- generate normalmap from alpha channel data (if present)
|
|
constructor Create; overload; |
constructor - creates a texutre data object
|
|
constructor Create(const aFileName: String); overload; |
constructor - creates a texture data object and loads it from a file
Parameters
- aFilename
- file to load texture from
|
|
constructor Create(const aStream: TStream); overload; |
constructor - creates a texture data object and loads it from a stream
Parameters
- aStream
- stream to load texture from
|
|
constructor Create(const aSize: TglBitmapSize; const aFormat: TglBitmapFormat; aData: PByte = nil); overload; |
constructor - creates a texture data object with the given size, format and data
Parameters
- aSize
- size of the texture
- aFormat
- format of the given data
- aData
- texture data - be carefull: the data will now be managed by the texture data object
|
|
constructor Create(const aSize: TglBitmapSize; const aFormat: TglBitmapFormat; const aFunc: TglBitmapFunction; const aArgs: Pointer = nil); overload; |
constructor - creates a texture data object with the given size and format and uses the given callback to create the data
Parameters
- aSize
- size of the texture
- aFormat
- format of the given data
- aFunc
- callback to use for generating the data
- aArgs
- user defined parameters (use at will)
|
|
constructor Create(const aInstance: Cardinal; const aResource: String; const aResType: PChar = nil); overload; |
constructor - creates a texture data object and loads it from a resource
Parameters
- aInstance
- resource handle
- aResource
- resource indentifier
- aResType
- resource type (if known)
|
|
constructor Create(const aInstance: Cardinal; const aResourceID: Integer; const aResType: PChar); overload; |
constructor - creates a texture data object and loads it from a resource
Parameters
- aInstance
- resource handle
- aResourceID
- resource ID
- aResType
- resource type (if known)
|
|
destructor Destroy; override; |
destructor
|
Properties
|
property Data: PByte read fData; |
texture data (be carefull with this!)
|
|
property Filename: String read fFilename; |
file the data was loaded from
|
|
property Width: Integer read GetWidth; |
width of the texture data (in pixel)
|
|
property Height: Integer read GetHeight; |
height of the texture data (in pixel)
|
|
property Scanlines[constaIndex:Integer]: PByte read GetScanlines; |
pointer to begin of line at given index or Nil
|
Generated by PasDoc 0.13.0 on 2014-12-24 04:27:09
|