Hier mal der Test code
Code: Alles auswählen
#DefaultAdapter = 0
; Wichtige Include dateien
XIncludeFile "SimpleDX11_Imports.pb"
XIncludeFile "SimpleDX11_Structures.pb"
XIncludeFile "SimpleDX11_Interfaces.pb"
XIncludeFile "SimpleDX11_HelperProcedures.pb"
; Tastatur initialisieren
If Not InitKeyboard()
MessageRequester("Fehler", "Die Tastatur konnte nicht initialisiert werden!")
End
EndIf
;/////////////////////
;// GLOBALS //
;/////////////////////
sdxFactory.IDXGIFactory1 =0
sdxAdapter.IDXGIAdapter1 =0
sdxDevice.ID3D11Device =0
sdxImmediateContext.ID3D11DeviceContext =0
Procedure CleanUp()
Shared sdxFactory, sdxAdapter, sdxDevice
If sdxFactory : sdxFactory\Release() : EndIf
If sdxAdapter : sdxAdapter\Release() : EndIf
If sdxDevice : sdxDevice\Release() : EndIf
EndProcedure
; Ein fenster öffnen
#Window = 0
WID.l
If OpenWindow(#Window, 50, 200, 800, 600,"Test Simple DirectX 11 Screen (Device 1)",#PB_Window_SystemMenu | #PB_Window_SizeGadget)
WID = WindowID(#Window)
Else
MessageRequester("Fehler", "Fenster konnte nicht geöffnet werden!")
End
EndIf
If CreateDXGIFactory1(@IID_IDXGIFactory1, @sdxFactory)
MessageRequester("Fehler", "IDXGIFactory1 konnte nicht erstellt werden!")
CleanUp()
End
EndIf
If sdxFactory\EnumAdapters1(#DefaultAdapter, @sdxAdapter)
MessageRequester("Fehler", "IDXGIAdapter1 konnte nicht enumeriert werden!")
CleanUp()
End
EndIf
*desc = AllocateMemory(128)
sdxAdapter\GetDesc1(*desc)
Debug PeekS(*desc, -1, #PB_Unicode)
If D3D11CreateDevice(sdxAdapter, #D3D_DRIVER_TYPE_HARDWARE, #Null, #Null, #Null, #Null, #D3D11_SDK_VERSION, @sdxDevice, @sdxFeaturLevel, @sdxImmediateContext)
MessageRequester("Fehler", "ID3D11Device konnte nicht erstellt werden!")
CleanUp()
End
EndIf
; Hauptschleife
Repeat
Event.l = WindowEvent()
Delay(1)
Until Event = #PB_Event_CloseWindow
CleanUp()