- // create texture use either GenerateTextureFunc1 or GenerateTextureFunc2
- tex := TglBitmap2D.Create(
- glBitmapSize(512, 512),
- tfRGBA8ub4,
- @GenerateTextureFunc1
- //@GenerateTextureFunc2
- );
- tex.GenTexture;
+ tex := TglBitmap2D.Create; // create texture object
+ data := TglBitmapData.Create; // create texture data object
+ try
+ data.LoadFromFunc( // generate texture data using either GenerateTextureFunc1 or GenerateTextureFunc2
+ glBitmapSize(512, 512),
+ tfRGBA8ub4,
+ @GenerateTextureFunc1
+ //@GenerateTextureFunc2
+ );
+ tex.UploadData(data); // upload data to video card
+ finally
+ FreeAndNil(data); // after upload is done, the data object could be freed to save memory
+ end;