[SDL] Neues Surface mit Transparent erzeugen

Für Probleme bezüglich Grafik, Audio, GL, ACS, ...
Antworten
Nidhoegger
Beiträge: 8
Registriert: Mo 9. Mär 2009, 14:31

[SDL] Neues Surface mit Transparent erzeugen

Beitrag von Nidhoegger »

Hallo,

ich versuche ein neues Surface mit SDL_CreateRGBSurface zu erstellen, welches transparent ist. Bisher hab ich das so gemacht:
Surface Erstellen -> mit FF00FF (Farbe) Füllen -> ColorKey drüber.

Aber: Das problem ist das ich jetzt auf das surface etwas blitten will, was selbst leicht transparent ist. Das problem ist das diese transparenz nun die colorkey farbe annimmt.

Wie erstelle ich das surface mit echter transparenz? ich hatte gefunden das man es mit SDL_FillRect (surface, MapRGBA(0,0,0,0)) machen kann, aber das funktioniert bei mir nicht.


Danke für alle antworten

-Nidhoegger

Stoney
Beiträge: 19
Registriert: Mo 14. Sep 2009, 15:16
OS, Lazarus, FPC: Mac OS (Lazarus 0.9.31, FPC 2.5.1)
CPU-Target: 32Bit & 64Bit
Wohnort: Königsbrunn
Kontaktdaten:

Re: [SDL] Neues Surface mit Transparent erzeugen

Beitrag von Stoney »

Du bist schon auf dem richtigen Weg, du musst allerdings nicht SDL_FillRect anwenden.

Mach es einfach so:

Code: Alles auswählen

MeinSurface := SDL_CreateRGBSurface(SDL_HWSURFACE, Breite, Hoehe, Bittiefe, 0, 0, 0, 0); 
SDL_SetColorKey(MeinSurface, SDL_SRCCOLORKEY, 0);


So habe ich es jedenfalls bei mir gelöst. Statt SDL_HWSURFACE kannst du natürlich die Flags setzen, die du möchtest/brauchst.

Antworten