From 39d0b4a3cc4b5d49c02b79eac4f7fa7d40691c9e Mon Sep 17 00:00:00 2001 From: Bergmann89 Date: Sat, 3 May 2014 18:32:27 +0200 Subject: [PATCH] * Format: implemented HasRed, HasGreen and HasBlue * fixed some compiler hints and warnings --- glBitmap.pas | 44 +++++++++++++++++++++++++++++++++++--------- 1 file changed, 35 insertions(+), 9 deletions(-) diff --git a/glBitmap.pas b/glBitmap.pas index fdeaae1..b181705 100644 --- a/glBitmap.pas +++ b/glBitmap.pas @@ -24,7 +24,7 @@ History - GetPixel isn't set if you are loading textures inside the constructor (Thanks Wilson) 10-08-2008 - AddAlphaFromglBitmap used the custom pointer instead the imagedatapointer (Thanks Wilson) -- Additional Datapointer for functioninterface now has the name CustomData +- Additional Datapointer for functioninterface now has the name CustomData 24-07-2008 - AssigneAlphaToBitmap overwrites his own palette (Thanks Wilson) - If you load an texture from an file the property Filename will be set to the name of the file @@ -53,7 +53,7 @@ History - Property DataPtr now has the name Data - Functions are more flexible between RGB(A) and BGR(A). RGB can be saved as Bitmap and will be saved as BGR - Unused Depth removed -- Function FreeData to freeing image data added +- Function FreeData to freeing image data added 24-10-2007 - ImageID flag of TGAs was ignored. (Thanks Zwoetzen) 15-11-2006 @@ -221,7 +221,7 @@ unit glBitmap; // Please uncomment the defines below to configure the glBitmap to your preferences. // If you have configured the unit you can uncomment the warning above. -{$MESSAGE warn 'Hey. I''m the glBitmap.pas and i need to be configured. My master tell me your preferences! ;)'} +{.$MESSAGE warn 'Hey. I''m the glBitmap.pas and i need to be configured. My master tell me your preferences! ;)'} ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Preferences /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -889,6 +889,9 @@ type TglBitmapFormatDescriptor = class(TObject) protected function GetIsCompressed: Boolean; virtual; abstract; + function GetHasRed: Boolean; virtual; abstract; + function GetHasGreen: Boolean; virtual; abstract; + function GetHasBlue: Boolean; virtual; abstract; function GetHasAlpha: Boolean; virtual; abstract; function GetglDataFormat: GLenum; virtual; abstract; @@ -896,6 +899,9 @@ type function GetglInternalFormat: GLenum; virtual; abstract; public property IsCompressed: Boolean read GetIsCompressed; + property HasRed: Boolean read GetHasRed; + property HasGreen: Boolean read GetHasGreen; + property HasBlue: Boolean read GetHasBlue; property HasAlpha: Boolean read GetHasAlpha; property glFormat: GLenum read GetglFormat; @@ -927,7 +933,7 @@ type fFreeDataOnDestroy: Boolean; fFreeDataAfterGenTexture: Boolean; fData: PByte; - fIsResident: Boolean; + fIsResident: GLboolean; fBorderColor: array[0..3] of Single; fDimension: TglBitmapPixelPosition; @@ -1011,7 +1017,7 @@ type property Dimension: TglBitmapPixelPosition read fDimension; property Data: PByte read fData; - property IsResident: Boolean read fIsResident; + property IsResident: GLboolean read fIsResident; procedure AfterConstruction; override; procedure BeforeDestruction; override; @@ -1272,6 +1278,9 @@ type fglDataFormat: GLenum; function GetIsCompressed: Boolean; override; + function GetHasRed: Boolean; override; + function GetHasGreen: Boolean; override; + function GetHasBlue: Boolean; override; function GetHasAlpha: Boolean; override; function GetglFormat: GLenum; override; @@ -2308,7 +2317,7 @@ begin end; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -//TglBitmapFormatDescriptor/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//TFormatDescriptor/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function TFormatDescriptor.GetRedMask: QWord; begin @@ -2340,6 +2349,24 @@ begin end; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +function TFormatDescriptor.GetHasRed: Boolean; +begin + result := (fRange.r > 0); +end; + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +function TFormatDescriptor.GetHasGreen: Boolean; +begin + result := (fRange.g > 0); +end; + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +function TFormatDescriptor.GetHasBlue: Boolean; +begin + result := (fRange.b > 0); +end; + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function TFormatDescriptor.GetHasAlpha: Boolean; begin result := (fRange.a > 0); @@ -5650,7 +5677,7 @@ begin if (ID > 0) then begin Bind(false); - glTexParameteriv(Target, GL_TEXTURE_SWIZZLE_RGBA, @fSwizzle[0]); + glTexParameteriv(Target, GL_TEXTURE_SWIZZLE_RGBA, PGLint(@fSwizzle[0])); end; end; @@ -6347,7 +6374,6 @@ const MAGIC_LEN = 2; JPEG_MAGIC: String[MAGIC_LEN] = #$FF#$D8; var - jpeg: TJPEGImage; intf: TLazIntfImage; reader: TFPReaderJPEG; StreamPos: Int64; @@ -8028,7 +8054,7 @@ procedure TglBitmap2D.GetDataFromTexture; var Temp: PByte; TempWidth, TempHeight: Integer; - TempIntFormat: Cardinal; + TempIntFormat: GLint; IntFormat, f: TglBitmapFormat; FormatDesc: TFormatDescriptor; begin -- 2.1.4