Einzelnen Beitrag anzeigen

Peter666

Registriert seit: 11. Aug 2007
357 Beiträge
 
#1

OpenGL und Firemonkey

  Alt 20. Mai 2013, 13:41
Hallo,

ich habe ein Problem mit OpenGL.
Als Basis für meine Demoanwendung habe ich folgenden Code genommen:
http://escargot.la.coocan.jp/SimpleS...OpenGL_FMX.pas

Das geht soweit unter OSX, als auch Windows ohne probleme. Nun wollte ich anstelle der Farbe eine Textur verwenden.
Im Prinzip macht man da ja so etwas:

Delphi-Quellcode:
 

var
 id: GLUint;
 width, height: integer; //größe der Textur
 pData: pointer; //Zeiger auf die Textur width*height*4 (für rgb)

...

 glGenTextures(1, @id);
 glBindTexture(GL_TEXTURE_2D, id);

 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
 gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGBA, Width, Height, GL_RGBA, GL_UNSIGNED_BYTE, pData);
Leider kennt die OpenGL Übersetzung von Embarcadero glGenTextures und glBindTexture nicht, bzw. unter OSX wird gluBuild2DMipmaps nicht erkannt.

procedure glGenTextures(n: GLsizei; textures: PGLuint);
{$IFDEF MSWINDOWS} stdcall; {$ENDIF} {$IFDEF UNIX} cdecl;
{$ENDIF} external opengl32;
procedure glBindTexture(target: GLEnum; Texture: GLuint);
{$IFDEF MSWINDOWS} stdcall; {$ENDIF} {$IFDEF UNIX} cdecl;
{$ENDIF} external opengl32;

Da die Funktionen fehlen habe ich oben stehende Notlösung eingebaut. Hat jemand eine Idee warum das nicht geht? Textures ist 0 und das bedeutet es gibt irgendwo ein Fehler

Peter
PS: OpenGL ist natürlich zu dem Zeipunkt wo ich die Textur erstellen will schon initialisiert.

Geändert von Peter666 (20. Mai 2013 um 13:48 Uhr)
  Mit Zitat antworten Zitat