Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Do Jul 17, 2025 23:18

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Mi Feb 16, 2005 13:48 
Offline
DGL Member

Registriert: So Nov 14, 2004 18:14
Beiträge: 5
Hoi,

ich bin vor einigen Wochen von Windows/Delphi auf Linux(SuSE 9.0 Prof)/FPC umgestiegen..

Mithilfe von SDL und dem entsprechenden Template, hier aus dem Forum, war der Umstieg recht einfach.. nur habe ich bisher keinen Texturloader gefunden, der unter Linux mit FPC funktioniert. (Verwende momentan nur die JEDI-Header)

Mithilfe von SDL_Image kann ich zwar ein Bild als SDL_Surface laden, aber wie ich aus einem solchen Surface eine OpenGL-Textur erstelle, entzieht sich meinen Fähigkeiten. Ich hab zwar versucht im Wiki etwas dazu zu finden, aber wirklich schlauer bin ich dadurch auch nicht geworden (was wohl unter anderem daran liegt, daß im Wiki noch nicht alle Befehle drinstehen).

Meine Frage ist also, wie ich aus dem Surface, das ich mithilfe von SDL_Image kriege, eine OpenGL-Textur erstelle, oder ob es bessere Alternativen dazu gibt. Komplett einen eigenen Loader zu schreiben steht momentan allerdings ausser Frage, dafür reichen meine Fähigkeiten bei weitem noch nicht aus *g*.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Feb 16, 2005 22:04 
Offline
Fels i.d. Brandung
Benutzeravatar

Registriert: Sa Mai 04, 2002 19:48
Beiträge: 3830
Wohnort: Tespe (nahe Hamburg)
Das ist an sich nicht so schwer. Ich habe dabei festgestellt, dass die Textur scheinbar gespiegelt ist. Warum konnte ich bisher IMAO nicht klären. Allerdings sollte das ja kein Hinterungsgrund sein SDL als Loader zu verwenden ;)

Code:
  1.  
  2. var
  3. tex : PSDL_Surface;
  4.     texture : gluInt;
  5. [..]
  6. procedure Init_Resource;
  7. begin
  8.     tex := IMG_Load('./wiki.jpg');
  9.     if assigned(tex) then
  10.     begin
  11.         WriteLn('Bind texture');
  12.         WriteLn(tex^.w);
  13.         WriteLn(tex^.h);
  14.        
  15.          glGenTextures(1, @texture);
  16.         glBindTexture(GL_TEXTURE_2D, texture);
  17.  
  18.         glTexImage2D(GL_TEXTURE_2D, 0, 3, tex^.w, tex^.h,0, GL_RGB, GL_UNSIGNED_BYTE, tex^.pixels);
  19.  
  20.         glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
  21.         glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
  22.  
  23.         //SDL_FreeSurface(tex);
  24.     end;
  25.    
  26.     glEnable(GL_TEXTURE_2D);
  27.    glBindTexture(GL_TEXTURE_2D,texture);
  28. end;
  29.  

_________________
"Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Feb 17, 2005 00:43 
Offline
DGL Member

Registriert: So Nov 14, 2004 18:14
Beiträge: 5
Danke, dann kann ich endlich meinen Basiscode vervollständigen. =) (Spiegelung ist nicht so das Problem..)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 16 Queries | GZIP : On ]