AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Header Übersetzung DirectX 11.1 und Direct2D 1.1
Thema durchsuchen
Ansicht
Themen-Optionen

Header Übersetzung DirectX 11.1 und Direct2D 1.1

Ein Thema von SonnyBoyPro · begonnen am 11. Feb 2014 · letzter Beitrag vom 12. Feb 2014
Antwort Antwort
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.073 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: Header Übersetzung DirectX 11.1 und Direct2D 1.1

  Alt 12. Feb 2014, 12:26
Hab hier auch nur Win7 mit SP Update und leider kein Win8.1
Aber mit den Service Pack kannst du doch zumindest bis DXGI 1.2 testen?
Ich guck gleich mal in meiner Win7-VM.
  Mit Zitat antworten Zitat
SonnyBoyPro

Registriert seit: 9. Mai 2007
68 Beiträge
 
#2

AW: Header Übersetzung DirectX 11.1 und Direct2D 1.1

  Alt 12. Feb 2014, 12:36
ich hab mal in meinem aktuellen projekt das probiert

Delphi-Quellcode:
{ working with D3D11.1 }
Result := FD3D11Device.QueryInterface(ID3D11Device1, FD3D11Device1);
    if (FAILED(Result)) then
        Exit;

    Result := FDeviceContext.QueryInterface(ID3D11DeviceContext1, FD3DContext1);
    if (FAILED(Result)) then
        Exit;

    { try some new stuff }
      Result := FD3D11Device.QueryInterface(IDXGIDevice2, pDXGIDevice);
      Result := pDXGIDevice.GetParent(IDXGIAdapter, pDXGIAdapter);
      pDXGIAdapter.GetParent(IDXGIFactory1, pIDXGIFactory);
damit hab ich für die pIDXGIFactory zumindest mal einen gültigen Zeiger bekommen. Ansonsten fehlt mir momentan der Anwendungsfall


und bei Deinem Bsp zu ändern auf
Delphi-Quellcode:
 Result := Result and Succeeded(FDXGIDevice1.GetAdapter(LDXGIAdapter));
  Result := Result and Succeeded(LDXGIAdapter.GetParent(IDXGIFactory2, LDXGIFactory2));
  Result := Result and Succeeded(LDXGIFactory2.CreateSwapChain(FD3DDevice1, GetSwapChainDescriptor, FSwapChain));
  Result := Result and Succeeded(FDXGIDevice1.SetMaximumFrameLatency(1));
geht.

Geändert von SonnyBoyPro (12. Feb 2014 um 12:50 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#3

AW: Header Übersetzung DirectX 11.1 und Direct2D 1.1

  Alt 12. Feb 2014, 13:21
Gibt es von Microsoft eigentlich keine TLB-Dateien (oder TLB-Resourcen eingebettet in den DLLs) die alle Deklarationen enthalten?
Dann könnte man die Header bequem in Delphi importieren...
fork me on Github
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.073 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Header Übersetzung DirectX 11.1 und Direct2D 1.1

  Alt 12. Feb 2014, 14:08
Gibt es von Microsoft eigentlich keine TLB-Dateien (oder TLB-Resourcen eingebettet in den DLLs) die alle Deklarationen enthalten?
Dann könnte man die Header bequem in Delphi importieren...
Nein, gibt es nicht!
Weder Google noch RAD Studio -> Component -> Import Component bieten mir was passendes an.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.073 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Header Übersetzung DirectX 11.1 und Direct2D 1.1

  Alt 12. Feb 2014, 14:05
damit hab ich für die pIDXGIFactory zumindest mal einen gültigen Zeiger bekommen. Ansonsten fehlt mir momentan der Anwendungsfall
DXGI 1.2 geht in meiner VM (siehe Anhang).

Jedoch muss ich explizit in der VM den DriverType auf WARP setzen, weil der Versuch eines Hardware Drivers eine Floating Point Exception im 64-Bit Build auslöst.
Unter 32-Bit in der VM kann er sogar einen Hardware-Driver Device erstellen?!

Der Anwendungsfall wäre halt nur IDXGIFactory2::CreateSwapChainForHwnd().
Angehängte Dateien
Dateityp: pas DirectXBase.pas (8,5 KB, 42x aufgerufen)
  Mit Zitat antworten Zitat
SonnyBoyPro

Registriert seit: 9. Mai 2007
68 Beiträge
 
#6

AW: Header Übersetzung DirectX 11.1 und Direct2D 1.1

  Alt 12. Feb 2014, 14:25
DXGI 1.2 geht in meiner VM (siehe Anhang).

Jedoch muss ich explizit in der VM den DriverType auf WARP setzen, weil der Versuch eines Hardware Drivers eine Floating Point Exception im 64-Bit Build auslöst.
Unter 32-Bit in der VM kann er sogar einen Hardware-Driver Device erstellen?!

Der Anwendungsfall wäre halt nur IDXGIFactory2::CreateSwapChainForHwnd().
Hehe, ja Windows und VM

Gut wenn soweit alles geht. Ich arbeite momentan ohne der Forms Unit, erzeuge mir also das Fenster-Handle selbst (so wie in den ganzen C++ DirectX Beispielen und Büchern). Ob das jetzt Vor- oder Nachteil mit sich bringt weiß ich nicht. Da ich aber in meinem Fall sowieso auf die Standard-Botschaften Auswertung von Controls etc verzichten WILL hat's für mich in dem Fall eher Vorteile
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.073 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Header Übersetzung DirectX 11.1 und Direct2D 1.1

  Alt 12. Feb 2014, 15:09
Gut wenn soweit alles geht. Ich arbeite momentan ohne der Forms Unit, erzeuge mir also das Fenster-Handle selbst (so wie in den ganzen C++ DirectX Beispielen und Büchern). Ob das jetzt Vor- oder Nachteil mit sich bringt weiß ich nicht. Da ich aber in meinem Fall sowieso auf die Standard-Botschaften Auswertung von Controls etc verzichten WILL hat's für mich in dem Fall eher Vorteile
Ich weiß es auch nicht besser, aber:

Zitat von MSDN:
Starting with Direct3D 11.1, we recommend not to use CreateSwapChain anymore to create a swap chain. Instead, use CreateSwapChainForHwnd, CreateSwapChainForCoreWindow, or CreateSwapChainForComposition depending on how you want to create the swap chain
Ich finde in der MSDN gar keine Beispiele mehr, die IDXGIFactory::CreateSwapChain verwenden??
  Mit Zitat antworten Zitat
SonnyBoyPro

Registriert seit: 9. Mai 2007
68 Beiträge
 
#8

AW: Header Übersetzung DirectX 11.1 und Direct2D 1.1

  Alt 12. Feb 2014, 16:36
Ich finde in der MSDN gar keine Beispiele mehr, die IDXGIFactory::CreateSwapChain verwenden??
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx

Notes for Windows Store apps
The D3D11CreateDeviceAndSwapChain function does not exist for Windows Store apps. Instead, Windows Store apps use the D3D11CreateDevice function and then use the IDXGIFactory2::CreateSwapChainForCoreWindow method.

und ich denke das könnte der Grund sein -> 1 Programm für unterschiedliche Plattformen -> einfach Aufruf je nach Plattform und ansonsten wirds kompliziert ...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz