//---------------------------------------------------------------------------void TConvert::LoadTex(int Tex){ int Width, Height; int X, Y; UINT32 *Data, *Index; Graphics::TBitmap *BM; AnsiString Txt; BM = TexImage->Picture->Bitmap; // get the texture glBindTexture(GL_TEXTURE_2D, Tex); glGetTexLevelParameteriv( GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &Width); glGetTexLevelParameteriv( GL_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT, &Height); Data = new UINT32[Width * Height]; glGetTexImage( GL_TEXTURE_2D, 0, GL_RGBA, GL_UNSIGNED_BYTE, (void *)Data); Index = Data; BM->Width = Width; BM->Height = Height; for (Y = 0; Y < Height; Y++) { for(X = 0; X < Width; X++) { BM->Canvas->Pixels[X][Y] = RGBA2TColor( *Index++); } } delete Data;}//---------------------------------------------------------------------------TColor TConvert::RGBA2TColor(UINT32 Color){ // we must now convert RGBA to BGR int R, G, B, Temp; R = (Color & 0xFF000000) >> 24; // Red G = (Color & 0xFF0000)>>16; // Green B = (Color & 0xFF00) >> 8; // Blue Temp = R | ( G << 8) | (B << 16); // Alpha is ignored return (TColor) Temp;}//---------------------------------------------------------------------------