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

Aktuelle Zeit: Fr Jul 18, 2025 14:01

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



Ein neues Thema erstellen Auf das Thema antworten  [ 20 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 27, 2005 15:41 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
i0n0s hat geschrieben:
Werde ich schon machen :)

Gut...dann muss ich ja nicht mehr weinen... :D

PS: Habs schon im Wiki gesehn.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 27, 2005 20:10 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
Ok, der SDL_Loader ist fast vollständig.
Aktuell benutzt er nur Alphakanäle wenn man tgas benutzt, aber ich werde wohl einfach bei allen Bildern mit 32 BpP als mit Alphakanal ausgestattet ansehen.

Nur eine Sache konnte ich ihm noch nicht abgewöhnen:
Das "auf dem Kopf laden".

Theoretisch ist es kein Problem:
Ich muss nur das "Array" auf das der Pointer zeigt durchlaufen und Werte vertauschen.
Praktisch ist genau das das Problem.
Auf den ersten Pixel kann ich dank der SDL-Doku-Demo zugreifen, alle Versuche auf den zweiten Pixel zuzugreifen sind gescheitert.
Könntet ihr bitte meine Pointerkenntnisse verbessern und mir sagen, wie ich auf den x-ten Pixel zugreifen kann?

Hier nochmal das was ich zu Verfügung stehen habe:
:arrow: einen Pointer auf den Anfang des Bildes im Speicher
:arrow: die BpP, daher was ich für einen Datentyp nehmen muss um einen Pixel zu erwischen
:arrow: die Breite und Höhe des Bildes
Ansich reichen die Daten ja aus, ich schaffe es denoch nicht auf Pixel x zuzugreifen :cry:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 27, 2005 20:16 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Also zum Thema Pointer kann ich dir nur empfehlen mal in meine glBitmap zu schauen. Dort bei der Methode FlipVert solltest du deine Antwort finden. In der glBitmap ist übrigens auch eingebaut, dass er nur einen Alphakanal mit an OpenGL sendet, wenn auch einer geladen würde. Ist einfacher als man denkt.

PS: TGAs haben ein Flag womit man die Ursprung von Oben Links nach Unten Links setzen kann. Je nachdem kann sie dann dennoch auf dem Kopf stehen. Oder eben jetzt auch richtig herum.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 27, 2005 20:55 
Offline
DGL Member

Registriert: Mo Jan 20, 2003 20:10
Beiträge: 424
Wohnort: nähe Starnberg
Schau Dir auch die Unit SDLUtils an. Dort wird auf die Struktur von PSDL_Surface und dem Pointer auf die Daten in der Variable Pixel zugegriffen. Wichtig ist, das Du den Surface mit SDL_LockSurface(LSSurface) gegen den Zugriff von aussen sperrst und mit SDL_UnlockSurface(LSSurface) wieder entsperrst. So wie ich die Doku verstanden habe, werden dadurch die Daten in der Membervariable PSDL_Surface.Pixel gültig.

Gruß
Thomas

_________________
http://www.seban.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jul 29, 2005 15:15 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
@Lossy ex:
habe mir die Funktion FlipHorz angeschaut.
Habe sie soweit auch verstanden, nur die Methode über SDLUtils ist doch einfacher ;-)

@KidPaddle
vielen Dank für den Tip mit SDLUtils. Die Unit ist ja verdammt mächtig. Habe direkt das passende (PutPixel, GetPixel) gefunden.
Die Surface muss ich nicht locken, da sie nicht in Benutzung ist. Dies kann man über SDL_MayLock abfragen.
Das Locken ist anscheinend nur notwendig, wenn es meine "Ausgabe"surface ist.

Habe es jetzt aber geschaftt und einen Texturenlader mit Hilfe von SDL_Image geschrieben.
Die Datei findet ihr im Anhang und funktioniert und Delphi und Kylix. Freepascal wurde noch nicht getestet.
Es unterstützt aktuell BMP, JPEG, PCX, PNG, PNM, TGA.
Bilder werden automatisch gespiegelt.
Datei steht unter MPL 1.1.

Wäre nett wenn ihr sie euch anschauen würdet. Vorallem ob das Rechtliche soweit richtig abgedeckt ist.
Die beiden Fremdfunktionen habe ich übrigens übernohmen, weil die SDLUtils nicht in der DGLSDK enthalten ist.


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 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 | 15 Queries | GZIP : On ]