Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
GreveN JLI Master

Alter: 38 Anmeldedatum: 08.01.2004 Beiträge: 901 Wohnort: Sachsen - Dresden Medaillen: Keine
|
Verfasst am: 07.11.2004, 14:10 Titel: SDL - Teil einer Grafik laden |
|
|
Hi @all,
habe ein kleines Problem mit SDL, wie stell ich es an, das ich nur ein Teil einer Grafik in ein Surface lade?
Ich hatte mir das so gedacht:
Code: | SDL_Surface* LoadGraphic(std::string path, SDL_Rect* src_rect){
SDL_Surface* src_gfx = SDL_LoadBMP(path.c_str());
SDL_Surface* dest_gfx = 0;
SDL_BlitSurface(src_gfx, src_rect, dest_gfx, 0);
return dest_gfx;
}; |
Geht aber einfach nicht, der Compiler spuckt keine Warnung, keinen Fehler oder sonst irgendwas aus, das Programm stürzt an der Stelle einfach ab ohne irgendeine Fehlermeldung oder sonstwas in der Art...
Mit 'SDL_BlitSurface()' müsste es doch theoretisch möglich sein, einen beliebigen Ausschnitt eines SDL_Surface's in ein anderes zu kopieren, oder?
Hab beim googeln leider nix brauchbares gefunden...  |
|
Nach oben |
|
 |
Patrick Dark JLI Master

Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 07.11.2004, 14:22 Titel: |
|
|
Hi,
also ich würde da nicht mit der Blt-Funktion dran gehen.
Nimm die beiden hier:
http://sdldoc.csn.ul.ie/sdllocksurface.php
http://sdldoc.csn.ul.ie/sdlunlocksurface.php
Lock Deine Surface und kopier nur die Daten raus die Du auch brauchst, damit kann man dann auch sehr interessante "Schweinereien" anstellen z.B. ein Parallelogramm-Surface uvm
Achja zu Deiner Funktion eine Verbesserung:
Code: |
#ifdef UNICODE
typedef unistring std::stringw;
#else
typedef unistring std::string;
#endif
inline SDL_Surface* const LoadGraphic (const unistring& FileName, const SDL_Rect* src_rect)
{
// [...]
} |
_________________ 'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ] |
|
Nach oben |
|
 |
C++Builder Senior JLI'ler

Anmeldedatum: 04.10.2003 Beiträge: 235
Medaillen: Keine
|
Verfasst am: 10.11.2004, 17:38 Titel: |
|
|
guck mal was SDL_GetError() zurückgibt wenn SDL_BlitSurface() -1 zurückgibt |
|
Nach oben |
|
 |
GreveN JLI Master

Alter: 38 Anmeldedatum: 08.01.2004 Beiträge: 901 Wohnort: Sachsen - Dresden Medaillen: Keine
|
Verfasst am: 10.11.2004, 17:52 Titel: |
|
|
Ok danke euch beiden, ich tüftel schon dran... *g*
Hat bloß die letzten Tage nicht soviel Zeit was zumachen...  |
|
Nach oben |
|
 |
C++Builder Senior JLI'ler

Anmeldedatum: 04.10.2003 Beiträge: 235
Medaillen: Keine
|
Verfasst am: 02.12.2004, 16:26 Titel: |
|
|
ähm dein Blit kann nicht funktionieren weil dst_gfx ein nullpointer ist. Du musst erst eine Surface mittels SDL_CreateRGBSurface erstellen. Am Wochenende kann ich dir auch den Code dazu posten. |
|
Nach oben |
|
 |
GreveN JLI Master

Alter: 38 Anmeldedatum: 08.01.2004 Beiträge: 901 Wohnort: Sachsen - Dresden Medaillen: Keine
|
Verfasst am: 02.12.2004, 18:35 Titel: |
|
|
Jetzt wo du's sagst ist eigentlich logisch...
Naja, benutz eh kein SDL mehr...  |
|
Nach oben |
|
 |
|