From 6056f470e1f9e25aa03f7fe1d3692abc37d3ffd4 Mon Sep 17 00:00:00 2001
From: Bergmann89 <info@bergmann89.de>
Date: Tue, 17 Mar 2015 20:21:34 +0100
Subject: [PATCH] * added class function to get format descriptor from given
 format * fixed alignment bug in texture data download

---
 glBitmap.pas | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/glBitmap.pas b/glBitmap.pas
index 165ee38..638bf0f 100644
--- a/glBitmap.pas
+++ b/glBitmap.pas
@@ -455,7 +455,12 @@ type
     { get the format descriptor by a given OpenGL internal format
         @param aInternalFormat  OpenGL internal format to get format descriptor for
         @returns                suitable format descriptor or tfEmpty-Descriptor }
-    class function GetByFormat(const aInternalFormat: GLenum): TglBitmapFormatDescriptor;
+    class function GetByFormat(const aInternalFormat: GLenum): TglBitmapFormatDescriptor; overload;
+
+    { get the format descriptor by the given format
+        @param aFormat  format to get descriptor for
+        @return         suitable format descriptor or tfEmpty-Descriptor }
+    class function GetByFormat(const aFormat: TglBitmapFormat): TglBitmapFormatDescriptor; overload;
   end;
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -3921,6 +3926,14 @@ begin
 end;
 
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+class function TglBitmapFormatDescriptor.GetByFormat(const aFormat: TglBitmapFormat): TglBitmapFormatDescriptor;
+begin
+  result := TFormatDescriptor.Get(aFormat);
+  if not Assigned(result) then
+    result := TFormatDescriptor.Get(tfEmpty);
+end;
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 //TFormatDescriptor///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 class procedure TFormatDescriptor.Init;
@@ -8427,6 +8440,7 @@ begin
   FormatDesc := TFormatDescriptor.Get(IntFormat);
   GetMem(Temp, FormatDesc.GetSize(TempWidth, TempHeight));
   try
+    glPixelStorei(GL_PACK_ALIGNMENT, 1);
     if FormatDesc.IsCompressed then begin
       if not Assigned(glGetCompressedTexImage) then
         raise EglBitmap.Create('compressed formats not supported by video adapter');
-- 
2.1.4