Wrapperlib für Grim2D
Verfasst: 21.08.2005 11:30
Ich habe gestern eine DirectX8 2D-Engine gefunden ( http://grim.10tons.org/ ) und hab mal versucht die in PB zum laufen zu bringen, kann ja nicht so schwer sein... War dann aber doch bisl komplizierter, hab über 10 Stunden gebraucht um ein lauffähiges Beispiel in PB zu starten.
Und damit nicht jeder daran verzweifelt, hab ich für die Lib einen Wrapper geschrieben. Dadurch kann man dann die Funktionen mit Grim_...(...) aufrufen (z.B. Grim_System_Initiate()), nur bei Grim_System_GetState() muss man aufpassen was zurückgegeben wird, bei String oder Float wird nämlich der Pointer dazu zurückgegeben:
Vielleicht erstell ich auch noch eine Resident für die Konstanten, so viele sind das ja nicht.. (Erledigt!)
Hier gibts die Lib: http://www.purearea.net/pb/showcase/sho ... p=0&sort=1 (oder auch direkt: http://www.deeem2031.de/GrimWrapper.zip )
Und noch ein kleines BeispielProggy (Nachbau des 1. Tutorials von Grim)
[EDIT] Die Resident ist jetzt auch mit drin.
Und damit nicht jeder daran verzweifelt, hab ich für die Lib einen Wrapper geschrieben. Dadurch kann man dann die Funktionen mit Grim_...(...) aufrufen (z.B. Grim_System_Initiate()), nur bei Grim_System_GetState() muss man aufpassen was zurückgegeben wird, bei String oder Float wird nämlich der Pointer dazu zurückgegeben:
Code: Alles auswählen
Debug PeekF(Grim_System_GetState(#grSTATE_FONTSCALE))
Debug PeekS(Grim_System_GetState(#grSTATE_TITLE))Hier gibts die Lib: http://www.purearea.net/pb/showcase/sho ... p=0&sort=1 (oder auch direkt: http://www.deeem2031.de/GrimWrapper.zip )
Und noch ein kleines BeispielProggy (Nachbau des 1. Tutorials von Grim)
Code: Alles auswählen
Procedure FrameProc()
If Grim_Key_Down(#DIK_ESCAPE)
ProcedureReturn #False
EndIf
ProcedureReturn #True
EndProcedure
If OpenLibrary(0,"c:\purebasic\compilers\grim.dll")
Grim_GetInterface(0,"c:\purebasic\compilers\grim.dll")
Grim_System_SetState(#grSTATE_FRAMEFUNC,@FrameProc())
Grim_System_SetState(#grSTATE_WINDOWED,#True)
Grim_System_SetState(#grSTATE_KEYBOARD,#True)
Grim_System_Initiate()
Grim_System_Start()
Grim_System_Shutdown()
Grim_Inferface_Release()
CloseLibrary(0)
EndIf