JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=8c55f186f9aeacdf4f0ffc42ddf4ff88Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

SDL - Teil einer Grafik laden

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
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

BeitragVerfasst am: 07.11.2004, 14:10    Titel: SDL - Teil einer Grafik laden Antworten mit Zitat

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... Confused
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Yahoo Messenger MSN Messenger
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 07.11.2004, 14:22    Titel: Antworten mit Zitat

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 Wink z.B. ein Parallelogramm-Surface uvm Wink

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
C++Builder
Senior JLI'ler



Anmeldedatum: 04.10.2003
Beiträge: 235

Medaillen: Keine

BeitragVerfasst am: 10.11.2004, 17:38    Titel: Antworten mit Zitat

guck mal was SDL_GetError() zurückgibt wenn SDL_BlitSurface() -1 zurückgibt
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
GreveN
JLI Master


Alter: 38
Anmeldedatum: 08.01.2004
Beiträge: 901
Wohnort: Sachsen - Dresden
Medaillen: Keine

BeitragVerfasst am: 10.11.2004, 17:52    Titel: Antworten mit Zitat

Ok danke euch beiden, ich tüftel schon dran... *g*
Hat bloß die letzten Tage nicht soviel Zeit was zumachen... Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Yahoo Messenger MSN Messenger
C++Builder
Senior JLI'ler



Anmeldedatum: 04.10.2003
Beiträge: 235

Medaillen: Keine

BeitragVerfasst am: 02.12.2004, 16:26    Titel: Antworten mit Zitat

ä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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
GreveN
JLI Master


Alter: 38
Anmeldedatum: 08.01.2004
Beiträge: 901
Wohnort: Sachsen - Dresden
Medaillen: Keine

BeitragVerfasst am: 02.12.2004, 18:35    Titel: Antworten mit Zitat

Jetzt wo du's sagst ist eigentlich logisch... Smile

Naja, benutz eh kein SDL mehr... Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Yahoo Messenger MSN Messenger
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum