[solved] OpenGL: DisplayList unter Windows in Virtualbox

Für Probleme bezüglich Grafik, Audio, GL, ACS, ...
Antworten
Scotty
Beiträge: 768
Registriert: Mo 4. Mai 2009, 13:24
OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
CPU-Target: x86_64-linux-qt/gtk2
Kontaktdaten:

[solved] OpenGL: DisplayList unter Windows in Virtualbox

Beitrag von Scotty »

Ich benutze diese recht einfache Liste (und eine etwas komplexere):

Code: Alles auswählen

type
  LetterField : TGluint;
 
procedure Initialize...
  LetterField:=glGenLists(1);
  glNewList(LetterField, GL_COMPILE);
   glBegin(GL_QUADS);
    glNormal3f(0.0, 1.0, 0.0);
    glTexCoord2f(0,0); glVertex3f(0.0, cDist, 0.0);
    glTexCoord2f(1,0); glVertex3f(1.0-cSpace, cDist, 0.0);
    glTexCoord2f(1,1); glVertex3f(1.0-cSpace, cDist, 1.0-cSpace);
    glTexCoord2f(0,1); glVertex3f(0.0, cDist, 1.0-cSpace);
   glEnd;
  glEndList;
 
procedure Render...
   glCallList(LetterField);
Dabei kommt es zum Fehler 1280 "invalid enumerant". Lasse ich den Code unter Linux laufen oder zeichen ich alles von glBegin() bis glEnd() ohne die Displayliste, dann gibt es keine Probleme. Mache ich was falsch?

PS: XP läuft in einer VirtualBox, guestadditions sind aktiv.
Zuletzt geändert von Scotty am Mo 16. Dez 2013, 10:54, insgesamt 1-mal geändert.

carli
Beiträge: 657
Registriert: Sa 9. Jan 2010, 17:32
OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
CPU-Target: 64Bit

Re: OpenGL: DisplayList unter Windows

Beitrag von carli »

Lass die Finger von Displaylists. Das ist ein veraltetes Feature und Vertexbufferobjekte sind schneller. Es kann sein, dass dein Grafiktreiber (Guestadditions) keine Displaylists kann (was ich gut verstehen kann)

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1629
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: OpenGL: DisplayList unter Windows

Beitrag von corpsman »

Also ich nutze die Displaylisten für Schriften ganz gerne..

Übrigens gibt es für rein OpenGl technische Fragen hier ein echt gutes Forum. Die verstehen dort auch FPC *g*

Zu deiner Frage :

Der Aufruf müsste sein :

Code: Alles auswählen

 
  glListBase(LetterField);
  Number := 0;
  glCallLists(1, GL_UNSIGNED_BYTE, @Number); 
Kann mich aber auch irren, hab das nur so geschwind rausgesucht..
--
Just try it

Scotty
Beiträge: 768
Registriert: Mo 4. Mai 2009, 13:24
OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
CPU-Target: x86_64-linux-qt/gtk2
Kontaktdaten:

Re: OpenGL: DisplayList unter Windows

Beitrag von Scotty »

Danke für die Antworten. VertexBufferObjects sieht auf den ersten Blick wie ein Overkill für mein kleines Quad aus (die andere Liste besteht aus vier Dreiecken; und in einem zweiten GLContext gibt es Würfel - jeweils in einer Liste, deshalb auch nur glCallList() statt glCallLists(). Ich glaube, dass ich eher irgendwo etwas nicht richtig initialisiert habe. Aber zuerst teste ich morgen auf einem nativen XP...

carli
Beiträge: 657
Registriert: Sa 9. Jan 2010, 17:32
OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
CPU-Target: 64Bit

Re: OpenGL: DisplayList unter Windows

Beitrag von carli »

Scotty hat geschrieben:Danke für die Antworten. VertexBufferObjects sieht auf den ersten Blick wie ein Overkill für mein kleines Quad aus (die andere Liste besteht aus vier Dreiecken; und in einem zweiten GLContext gibt es Würfel - jeweils in einer Liste, deshalb auch nur glCallList() statt glCallLists(). Ich glaube, dass ich eher irgendwo etwas nicht richtig initialisiert habe. Aber zuerst teste ich morgen auf einem nativen XP...
Du haust ja auch alle Quads des Schriftzugs in deinen VertexBuffer.

Und dass es auf XP nicht läuft, liegt am Grafiktreiber der VM.

Scotty
Beiträge: 768
Registriert: Mo 4. Mai 2009, 13:24
OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
CPU-Target: x86_64-linux-qt/gtk2
Kontaktdaten:

Re: OpenGL: DisplayList unter Windows

Beitrag von Scotty »

carli hat geschrieben:Und dass es auf XP nicht läuft, liegt am Grafiktreiber der VM.
Stimmt. Mit einem nativen Windows funktioniert alles. VBO schau ich mir bei Gelegenheit an, danke.

Antworten