2012-12-19 11 views
7

Główne okno TForm3D aplikacji Firemonkey w Delphi X3 ma Context:TContext3D, która daje mi dostęp do bieżącego używanego urządzenia.
W moim przypadku z Windows7 64, zawsze pokazuje obiekt TDX10Context z FMX.Context.DX10.pas.Jak zmusić Firemonkey do użycia kontekstu DirectX 9 w Delphi XE3?

Nie mam widoczności, aby utworzyć nową instancję klasy TDX9Context z pliku FMX.Context.DX9.pas, aby zobaczyć przodka TCustomDX9Context.

znalazłem klasę TContextManager że zebrać przez zarejestrowanych konteksty 3D w ścisłym prywatnej TList :(, jest to jedyna klasa, która może wywołać konstruktor ...

{ Don't call contructor directly from TContext - only using TContextManager class } 
constructor CreateFromWindow(const AParent: TFmxHandle; const AWidth, AHeight: Integer;` 

Nazywają TContextManager uzyskać kontekst przy tworzeniu nowych form, a następnie właściwość tylko do odczytu TContextManager.DefaultContextClass służy.

nie sposób mogę znaleźć dostęp do kontekstach innych niż DefaultContextClass.

+2

Z komentarzem na G + [post] (https://plus.google.com/u/0/107332916729762772829/ posts/VKvvLHwdYUc): [GlobalUseDX10] (http://docwiki.embarcadero.com/Libraries/XE3/en/FMX.Types.GlobalUseDX10): = Fałsz; –

+0

Tak! :) To było nieoczekiwanie łatwe i magiczne! to działa! Ten wiersz kodu musi być przed aplikacją.initialize! – piXelicidio

+0

Jestem nowicjuszem tutaj, nie wiem czy powinienem odpowiedzieć na moje własne pytanie? : -/ – piXelicidio

Odpowiedz

2

Dla przypomnienia:

Umieść następujący wiersz w pliku projektu:

GlobalUseDX10 := False; <<-- add this. 
Application.Initialize; <<-- just before this line. 
+0

Dzięki, sztuczka działa idealnie. Powinniśmy również podziękować użytkownikowi g +: Sergionn Rad. – piXelicidio

Powiązane problemy