Merge remote-tracking branch 'glBitmap@DGL/master'
[LazOpenGLCore.git] / uglcBitmap.pas
index 0388f46..0a17caa 100644 (file)
@@ -22,7 +22,7 @@
   - download texture data from video card
   - manipulate texture data (e.g. add alpha, remove alpha, convert to other format, switch RGB, ...) }
 
-unit glBitmap;
+unit uglcBitmap;
 
 {$I glBitmapConf.inc}
 
@@ -1063,11 +1063,11 @@ type
   public
     { bind texture
         @param aEnableTextureUnit   enable texture unit for this texture (e.g. glEnable(GL_TEXTURE_2D)) }
-    procedure Bind(const aEnableTextureUnit: Boolean = true); virtual;
+    procedure Bind({$IFNDEF OPENGL_ES}const aEnableTextureUnit: Boolean = true{$ENDIF}); virtual;
 
     { bind texture
         @param aDisableTextureUnit  disable texture unit for this texture (e.g. glEnable(GL_TEXTURE_2D)) }
-    procedure Unbind(const aDisableTextureUnit: Boolean = true); virtual;
+    procedure Unbind({$IFNDEF OPENGL_ES}const aDisableTextureUnit: Boolean = true{$ENDIF}); virtual;
 
     { upload texture data from given data object to video card
         @param aData        texture data object that contains the actual data
@@ -1180,12 +1180,12 @@ type
     { bind texture
         @param aEnableTexCoordsGen  enable cube map generator
         @param aEnableTextureUnit   enable texture unit }
-    procedure Bind({$IFNDEF OPENGL_ES}const aEnableTexCoordsGen: Boolean = true;{$ENDIF} const aEnableTextureUnit: Boolean = true); reintroduce; virtual;
+    procedure Bind({$IFNDEF OPENGL_ES}const aEnableTexCoordsGen: Boolean = true; const aEnableTextureUnit: Boolean = true{$ENDIF}); reintroduce; virtual;
 
     { unbind texture
         @param aDisableTexCoordsGen   disable cube map generator
         @param aDisableTextureUnit    disable texture unit }
-    procedure Unbind({$IFNDEF OPENGL_ES}const aDisableTexCoordsGen: Boolean = true;{$ENDIF} const aDisableTextureUnit: Boolean = true); reintroduce; virtual;
+    procedure Unbind({$IFNDEF OPENGL_ES}const aDisableTexCoordsGen: Boolean = true; const aDisableTextureUnit: Boolean = true{$ENDIF}); reintroduce; virtual;
   end;
 {$IFEND}
 
@@ -1207,6 +1207,7 @@ type
 
   TglcBitmapFormat    = TglBitmapFormat;
   TglcBitmap2D        = TglBitmap2D;
+  TglcBitmapData      = TglBitmapData;
 {$IF NOT DEFINED(OPENGL_ES)}
   TglcBitmap1D        = TglBitmap1D;
   TglcBitmapCubeMap   = TglBitmapCubeMap;
@@ -8121,7 +8122,7 @@ begin
 {$IF NOT DEFINED(OPENGL_ES) OR DEFINED(OPENGL_ES_EXT)}
     if GL_EXT_texture_filter_anisotropic then begin
       if fAnisotropic > 0 then begin
-        Bind(false);
+        Bind({$IFNDEF OPENGL_ES}false{$ENDIF});
         glGetIntegerv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, @MaxAnisotropic);
         if aValue > MaxAnisotropic then
           fAnisotropic := MaxAnisotropic;
@@ -8142,7 +8143,7 @@ begin
   if (ID <> 0) then
     glDeleteTextures(1, @fID);
   glGenTextures(1, @fID);
-  Bind(false);
+  Bind({$IFNDEF OPENGL_ES}false{$ENDIF});
 end;
 
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -8164,14 +8165,14 @@ begin
   aBuildWithGlu := false;
   if (MipMap = mmMipmap) then begin
     if (GL_VERSION_1_4 or GL_SGIS_generate_mipmap) then
-      glTexParameteri(Target, GL_GENERATE_MIPMAP, GL_TRUE)
+      glTexParameteri(Target, GL_GENERATE_MIPMAP, GLint(GL_TRUE))
     else
       aBuildWithGlu := true;
   end else if (MipMap = mmMipmapGlu) then
     aBuildWithGlu := true;
 {$ELSE}
   if (MipMap = mmMipmap) then
-    glTexParameteri(Target, GL_GENERATE_MIPMAP, GL_TRUE);
+    glGenerateMipmap(Target);
 {$ENDIF}
 end;
 
@@ -8254,7 +8255,7 @@ begin
 
   //apply filter
   if (ID > 0) then begin
-    Bind(false);
+    Bind({$IFNDEF OPENGL_ES}false{$ENDIF});
     glTexParameteri(Target, GL_TEXTURE_MAG_FILTER, fFilterMag);
 
     if (MipMap = mmNone) {$IFNDEF OPENGL_ES}or (Target = GL_TEXTURE_RECTANGLE){$ENDIF} then begin
@@ -8326,7 +8327,7 @@ begin
   CheckAndSetWrap(R, fWrapR);
 
   if (ID > 0) then begin
-    Bind(false);
+    Bind({$IFNDEF OPENGL_ES}false{$ENDIF});
     glTexParameteri(Target, GL_TEXTURE_WRAP_S, fWrapS);
     glTexParameteri(Target, GL_TEXTURE_WRAP_T, fWrapT);
 {$IF NOT DEFINED(OPENGL_ES) OR DEFINED(OPENGL_ES_3_0)}
@@ -8377,19 +8378,23 @@ end;
 {$IFEND}
 
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-procedure TglBitmap.Bind(const aEnableTextureUnit: Boolean);
+procedure TglBitmap.Bind({$IFNDEF OPENGL_ES}const aEnableTextureUnit: Boolean{$ENDIF});
 begin
+{$IFNDEF OPENGL_ES}
   if aEnableTextureUnit then
     glEnable(Target);
+{$ENDIF}
   if (ID > 0) then
     glBindTexture(Target, ID);
 end;
 
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-procedure TglBitmap.Unbind(const aDisableTextureUnit: Boolean);
+procedure TglBitmap.Unbind({$IFNDEF OPENGL_ES}const aDisableTextureUnit: Boolean{$ENDIF});
 begin
+{$IFNDEF OPENGL_ES}
   if aDisableTextureUnit then
     glDisable(Target);
+{$ENDIF}
   glBindTexture(Target, 0);
 end;
 
@@ -8530,7 +8535,7 @@ end;
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 //TglBitmap2D/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-procedure TglBitmap2D.UploadDataIntern(const aDataObj: TglBitmapData; const aTarget: GLenum; const aBuildWithGlu: Boolean);
+procedure TglBitmap2D.UploadDataIntern(const aDataObj: TglBitmapData; const aTarget: GLenum{$IFNDEF OPENGL_ES}; const aBuildWithGlu: Boolean{$ENDIF});
 var
   fd: TglBitmapFormatDescriptor;
 begin
@@ -8695,9 +8700,9 @@ begin
 end;
 
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-procedure TglBitmapCubeMap.Bind({$IFNDEF OPENGL_ES}const aEnableTexCoordsGen: Boolean;{$ENDIF} const aEnableTextureUnit: Boolean);
+procedure TglBitmapCubeMap.Bind({$IFNDEF OPENGL_ES}const aEnableTexCoordsGen: Boolean; const aEnableTextureUnit: Boolean{$ENDIF});
 begin
-  inherited Bind (aEnableTextureUnit);
+  inherited Bind({$IFNDEF OPENGL_ES}aEnableTextureUnit{$ENDIF});
 {$IFNDEF OPENGL_ES}
   if aEnableTexCoordsGen then begin
     glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, fGenMode);
@@ -8711,9 +8716,9 @@ begin
 end;
 
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-procedure TglBitmapCubeMap.Unbind({$IFNDEF OPENGL_ES}const aDisableTexCoordsGen: Boolean;{$ENDIF} const aDisableTextureUnit: Boolean);
+procedure TglBitmapCubeMap.Unbind({$IFNDEF OPENGL_ES}const aDisableTexCoordsGen: Boolean; const aDisableTextureUnit: Boolean{$ENDIF});
 begin
-  inherited Unbind(aDisableTextureUnit);
+  inherited Unbind({$IFNDEF OPENGL_ES}aDisableTextureUnit{$ENDIF});
 {$IFNDEF OPENGL_ES}
   if aDisableTexCoordsGen then begin
     glDisable(GL_TEXTURE_GEN_S);