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

Aktuelle Zeit: Di Jul 08, 2025 08:54

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: glDrawPixels und Canvas
BeitragVerfasst: Di Mär 23, 2004 13:40 
Offline
DGL Member

Registriert: Di Mär 23, 2004 13:28
Beiträge: 1
hi,

ich hoffe mal, dass diese frage nicht schon gestellt wurde, falls doch sorry.

also, zu meinem problem.

ich habe von meinem Prof. folgende aufgabe bekommen:

10.1.Erstelle ein Bild in einem Surface / Canvas und lese die Information
in einen Buffer.
10.2. Lese das Bild mit glDrawPixels in eine OpenGl Anwendung ein.
10.3. teste die Geschwindigkeit

ok, mein problem, wie kann ich nun den inhalt des buffers an glDrawPixels übergeben? ich habe die RGB werte jedes Pixels in ein Array geladen. die genaue beschreibung von glDrawPixels hat mir leider auch nicht weitergeholfen.

könnt ihr mir vielleicht ein tutorial nennen, wo das beschrieben wird?

danke schonmal für die hilfe.

MfG


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 23, 2004 15:35 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Geht doch recht einfach, denn glDrawPixels erwartet als letzten Parameter nur einen Zeiger auf dein Pixelarray, wobei sich deine Pixel dort Reihenweise befinden müssen. Wie die Pixel dort abgelegt sind, das bestimmt der format-Parameter (normalerweise GL_RGB) und der type-Parameter (normalerweise GL_UNSIGNED_BYTE). Also einfach ein zweidimensionales array erstellen, das deine RGB-Pixel speichert, dies dann über Canvas.Pixels füllen und an glDrawPixels übergeben.

(Pseudo)Codetechnisch sieht das ungefähr so aus :
Code:
  1. PixelData : array of array of RGBTriplet;
  2. ...
  3. SetLength(PixelData, Image.Width, Image.Height);
  4. for y := 1 to Image.Height do
  5.  for x := 1 to Image.Width do
  6.   PixelData[x-1,y-1] := ColorToRGBTriplet(Image.Canvas.Pixels[x,y]);
  7. ...
  8. glDrawPixels(Image.Width, Image.Height, GL_RGB, GL_UNSIGNED_BYTE, @PixelData[0,0]);

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 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.006s | 14 Queries | GZIP : On ]