Seite 2 von 5

Re: SimpleDX11 lib Projekt

Verfasst: 25.10.2012 19:49
von Nero
Hab die zip neu hochgeladen für die passenden includes

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()

Re: SimpleDX11 lib Projekt

Verfasst: 25.10.2012 19:59
von DrShrek
Nero: Hast Du Skype?

Re: SimpleDX11 lib Projekt

Verfasst: 25.10.2012 20:27
von DrShrek
Also mal fürs erste: Lib2PBImport funktioniert nicht richtig.
Es macht statt .i (für pointer) immer ein .l

Das ist schon mal eine erste Fehlerquelle.

Re: SimpleDX11 lib Projekt

Verfasst: 25.10.2012 22:09
von DrShrek
Hier mal ein Beispiel wie es besser deklariert wird (SimpleDX11_imports.pb):

Code: Alles auswählen

Import #LIB_DXGI
...
CreateDXGIFactory1.i(*riid.i, *ppFactory.i) As "_CreateDXGIFactory1@8"
Und so hast Du es deklariert:

Code: Alles auswählen

Import #LIB_DXGI
...
CreateDXGIFactory1(a.l,b.l) As "_CreateDXGIFactory1@8"

Re: SimpleDX11 lib Projekt

Verfasst: 26.10.2012 12:38
von Nero
DrShrek hat geschrieben:Nero: Hast Du Skype?
Noch nicht wieder Installiert brauche es so selten kann es aber am WE mal installieren.
DrShrek hat geschrieben:Also mal fürs erste: Lib2PBImport funktioniert nicht richtig.
Es macht statt .i (für pointer) immer ein .l

Das ist schon mal eine erste Fehlerquelle.
Jep hast recht.

EDIT 1:
Ohman ich depp :oops: hatte adapter auf NULL und daher Drivertype auf #D3D_DRIVER_TYPE_HARDWARE hätte aber #D3D_DRIVER_TYPE_UNKNOWN sein müssen :coderselixir:


Nun geht es /:-> hab das zip geupdatet.

Bild

EDIT 2:
Ich denke irgendwie ist der Thread nicht mehr im richtigen Forum :lol:

Re: SimpleDX11 lib Projekt

Verfasst: 26.10.2012 19:57
von DrShrek
Nero hat geschrieben: EDIT 2:
Ich denke irgendwie ist der Thread nicht mehr im richtigen Forum :lol:
Doch eine Chance für ein z.B. SVN Project?
Ich wäre dabei ;-)

Re: SimpleDX11 lib Projekt

Verfasst: 26.10.2012 20:25
von Nero
Hm erstmal sollte geklärt werden was es im endefeckt werden soll :lol:

Ursprünglich hatte ich es so gedacht das ich mir mit C++ ne lib schreibe über die
ich dann DX einfach initialisieren kann und die mir befehle für 2D bzw 3D zur verfügung
stellt also wie die Befehle die bei PB dabei sind nur auf DX11 basis.
Also keine kommplette 3D engine.

Dann welche Sprache PB oder VC++?
Desweiteren bin ich nicht wirklich für ne UserLib, erstens ich hab keinen schimmer wie ich eine
mit PB erstelle und der C++ Code im PB SDK Ordner erzeugt mit VC Express 2010 nur error's beim Compilieren,
hab da nach dem ersten versuch garnicht weiter geschaut es hinzubiegen.
Daher hatte ich einfach ne normale static lib erstellt und mir die PB befehle importiert die ich brauchte.
So muß man die Lib zwar in PB importieren aber das ist ja nicht wirklich nen Problem.
Auf der anderen Seite PB ist bequemer zu programmieren :lol: allerdings da es DX11 in PB nicht gibt ne menge
handarbeit :roll:

Aber noch ist alles offen bisher gibts ja nix auser ein paar test codes.

Re: SimpleDX11 lib Projekt

Verfasst: 26.10.2012 20:47
von DrShrek
Also ich bin auch eher eine native C++ Library.

Re: SimpleDX11 lib Projekt

Verfasst: 26.10.2012 21:18
von Nero
Ich erstelle mal ein neues VC++ project nur mit DX Initialisierung dann kannst du es dir anschauen und
deine meinung sagen.
Poste es dann morgen oder am Sontag je nach dem wie ich morgen zeit habe.

Re: SimpleDX11 lib Projekt

Verfasst: 26.10.2012 21:33
von DrShrek
Es geht Dir doch um ein DX11 Subsystem welches die DX9 Befehle von PureBasic abdeckt, oder?
Oder um etwas anderes?