2012-12-19 13 views
7

La finestra principale di TForm3D dell'applicazione Firemonkey in Delphi X3 ha uno Context:TContext3D che mi consente di accedere al dispositivo corrente utilizzato.
Nel mio caso con Windows7 64, mostra sempre un oggetto TDX10Context da .Come forzare Firemonkey a utilizzare un contesto DirectX 9 in Delphi XE3?

non ho la visibilità per creare nuova istanza da TDX9Context classe da FMX.Context.DX9.pas solo per vedere l'antenato TCustomDX9Context.

ho trovato la classe TContextManager che raccolgono i contesti 3D registerd in modo rigoroso privato TList :(, questa è l'unica classe che può chiamare il costruttore ...

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

Lo chiamano TContextManager per ottenere un contesto durante la creazione di nuove forme, quindi una proprietà di sola lettura TContextManager.DefaultContextClass viene utilizzata.

non c'è modo posso trovare l'accesso a contesti diversi da DefaultContextClass.

+2

Da un commento sul tuo G + [post] (https://plus.google.com/u/0/107332916729762772829/ post/VKvvLHwdYUc): [GlobalUseDX10] (http://docwiki.embarcadero.com/Libraries/XE3/en/FMX.Types.GlobalUseDX10): = False; –

+0

Sì! :) Questo è stato inaspettatamente facile e magico! Funziona! Questa riga di codice deve essere prima dell'applicazione application.initialize! – piXelicidio

+0

Sono un principiante qui, non so se dovrebbe rispondere alla mia stessa domanda? : -/ – piXelicidio

risposta

2

Per la cronaca:

Mettere la seguente riga nel file di progetto:

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

Grazie, il trucco funziona perfettamente. Dovremmo anche ringraziare l'utente g +: Sergionn Rad. – piXelicidio

Problemi correlati