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

Aktuelle Zeit: Mi Jul 09, 2025 22:31

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



Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Sa Jun 09, 2007 16:12 
Offline
DGL Member

Registriert: Sa Okt 22, 2005 20:24
Beiträge: 291
Wohnort: Frauenfeld/CH
Ich hab mich mal an Renderpass herangewagt und irgendwie will das einfach nicht funktionieren.
Ich habe dabei als Resultat von Renderpass einfach eine weisse Fläche.

Init:

Code:
  1.   renderpass := CreateEmptyTexture(Screen_Width, Screen_Height, 3);
  2.  
  3. function CreateEmptyTexture(Width, Height, bpp: integer): Cardinal;
  4. var
  5.   pTexData: Pointer;
  6. begin
  7.   glEnable(GL_TEXTURE_2D);
  8.   GetMem(pTexData, Width*Height*bpp);
  9.  
  10.   // Textur generieren und drauf zeigen
  11.   glGenTextures(1, @result);
  12.   glBindTexture(GL_TEXTURE_2D, result);
  13.  
  14.   // Daten in den Speicher, Lineares Filtering aktivieren
  15.   glTexImage2D(GL_TEXTURE_2D, 0, bpp, Width, Height, 0, GL_RGB, GL_UNSIGNED_BYTE, pTexData);
  16.   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
  17.   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
  18.  
  19.   // Freigeben
  20.   FreeMem(pTexData);
  21. end;


Draw:
Code:
  1.    
  2.     glEnable(GL_TEXTURE_2D);
  3.     glBindTexture(GL_TEXTURE_2D, Renderpass); //Textur Renderpass binden
  4.     glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 0, 0, Screen_Width, Screen_Height, 0); //Gerendertes auf die Textur kopieren
  5.     glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT); //wieder buffer löschen
  6. //dann wird mit meiner GUI wieder gezeichnet.
  7.  


ich habe echt keine Ahnung warum das ganze nicht funktioniert. An der GUI selbst sollte es nicht liegen, da ja etwas angezeigt wird, aber dieses etwas ist eben total weiss.

mfg

_________________
bester uo-shard: www.uosigena.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jun 09, 2007 16:18 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Apr 25, 2005 17:51
Beiträge: 464
Im Wiki gibts ein Tutorial dazu.

Hat deine Textur eine Größe von 2^n?

Hm und eigentlich müsste auch glCopyTexSubImage2D anstatt glCopyTexImage2D gehen.

_________________
__________
"C++ is the best language for garbage collection principally because it creates less garbage." Bjarne Stroustrup


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jun 09, 2007 19:55 
Offline
DGL Member

Registriert: Sa Okt 22, 2005 20:24
Beiträge: 291
Wohnort: Frauenfeld/CH
hmm ja lag wohl am 2^n

das ganze ist aber irgenwie blöd, weil ich ja einfach nur den Bildschirm kopieren will. Also die ganze Oberfläche, egal wie gross dieser nun ist.

muss ich mir mal überlegen wie ich das nun mach.

mfg

_________________
bester uo-shard: www.uosigena.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jun 09, 2007 20:55 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Man kann einfach die nächst größere 2^n Texture nehmen. Der Rand bleibt dann eben ungenutzt.


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 9 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:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 16 Queries | GZIP : On ]