rendered paste bodyfunction LoadGLTexture(const Surface: PSDL_Surface; const IsTexture: Boolean): PLGLRec;
var
NewSizeX, NewSizeY: DWord;
ATex: GLUInt;
Temp: PSDL_Surface;
i, j: Longint;
GLBPP: Longint;
begin
Result:=nil;
GetMem(Result, SizeOf(TLGLRec));
if IsTexture then begin
NewSizeX:=NextPowerOf(Surface^.w);
NewSizeY:=NextPowerOf(Surface^.h);
Result^.StretchX:=1.0 * Surface^.w / NewSizeX;
Result^.StretchY:=1.0 * Surface^.h / NewSizeY;
Temp:=Surface;
if Temp^.format^.BytesPerPixel = 4 then
GLBPP:=GL_BGRA_EXT
else
GLBPP:=GL_BGR_EXT;
Writeln(NewSizeX, ' ', NewSizeY);
glGenTextures(1, @Result^.Texture);
glBindTexture(GL_TEXTURE_2D, Result^.Texture);
glTexImage2D(GL_TEXTURE_2D, 0, Temp^.format^.BytesPerPixel,
NewSizeX, NewSizeY, 0, GLBPP, GL_UNSIGNED_BYTE, Temp^.Pixels);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
SDL_UnlockSurface(Temp);
SDL_FreeSurface(Temp);
Result^.Surface:=nil;
end else Result^.Surface:=Surface;
end;