* added class function to get format descriptor from given format
authorBergmann89 <info@bergmann89.de>
Tue, 17 Mar 2015 19:21:34 +0000 (20:21 +0100)
committerBergmann89 <info@bergmann89.de>
Tue, 17 Mar 2015 19:23:51 +0000 (20:23 +0100)
* fixed alignment bug in texture data download

glBitmap.pas

index 165ee38..638bf0f 100644 (file)
@@ -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');