Seite 1 von 1

SDL und PureBasic

Verfasst: 18.05.2005 11:41
von Lebostein
Hi,

hat schonmal jemand SDL in Verbindung mit PureBasic benutzt? Ich hab gestern damit ein bisschen rumgespielt und bin noch nicht so richtig weit gekommen. Folgender Code funktioniert. Es wird ein Fullscreen mit 800x600 Pixeln geöffnet bei einer Farbtiefe von 32 Bit:

Code: Alles auswählen

#SDL_Library       = 99

#SDL_INIT_VIDEO    = $00000020
#SDL_HWSURFACE     = $00000001
#SDL_DOUBLEBUF     = $40000000
#SDL_FULLSCREEN    = $80000000

OpenLibrary(#SDL_Library, "SDL.dll")

CallFunction(#SDL_Library, "SDL_Init", #SDL_INIT_VIDEO)
SurfaceID = CallFunction(#SDL_Library, "SDL_SetVideoMode", 800, 600, 32, #SDL_HWSURFACE | #SDL_DOUBLEBUF | #SDL_FULLSCREEN)
CallFunction(#SDL_Library, "SDL_Quit")

CloseLibrary(#SDL_Library)

Debug SurfaceID
Jetzt hab ich aber in der Docu gelesen, dass zum Beispiel die Funktion SDL_SetVideoMode eine Struktur Namens SDL_Surface zurückgibt. Scheinbar kann aber CallFunction nur einzelne Zahlenwerte und keine Struktur zurückgeben....

Wer hat schonmal derartiges versucht? Danke für jeden Hinweis.

Verfasst: 18.05.2005 12:09
von ts-soft
Alle Parameter an eine DLL sind Long und die Rückgaben auch, jedoch sind es meist nur Zeiger auf Speicherbereiche (Structuren sind nichts anderes).

Am besten siehste Dir mal die von Danilo zusammengestellte Text-Datei an, die findest Du hier: http://forums.purebasic.com/german/view ... t&start=10

Ich hoffe das ich die frage richtig verstanden habe. Wenn die Rückgabe per Stack erfolgt dann einfach ein leeres ProcedureReturn nach erfolgtem Funktionsaufruf. Wird in diesem Fall aber wohl nicht so sein

Verfasst: 18.05.2005 12:44
von Lebostein
Ah, Danke für den Hinweis. Mittlerweile bin ich auch im engl. Forum fündig geworden:

http://forums.purebasic.com/english/vie ... l&start=16