2012-12-19 3 views
7

Delphi X3의 Firemonkey 응용 프로그램의 기본 TForm3D 창은 Context:TContext3D이며 사용 된 현재 장치에 대한 액세스 권한을 부여합니다.
필자의 경우 Windows7 64의 경우 항상 TDX10Context 개체 (FMX.Context.DX10.pas)가 표시됩니다.Firemonkey가 Delphi XE3에서 DirectX 9 컨텍스트를 사용하게하려면 어떻게해야합니까?

나는 FMX.Context.DX9.pas 그냥 조상 TCustomDX9Context을 볼 수에서 TDX9Context 클래스에서 새로운 인스턴스를 만들 수 없습니다 가시성을 가지고있다.

내가 엄격한 개인 TList :(에서 등록을 한 차원 컨텍스트를 수집 TContextManager 클래스를 발견,이 생성자를 호출 할 수있는 유일한 클래스 ...

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

그들은 문맥을 얻을 수 TContextManager 전화입니다 새로운 형태를 만들 때, 다음 읽기 전용 특성 TContextManager.DefaultContextClass이 사용됩니다.

내가 DefaultContextClass 이외의 컨텍스트에 대한 액세스를 찾을 수있는 방법이 없습니다.

+2

(https://plus.google.com/u/0/107332916729762772829/ posts/VKvvLHwdYUc) : [GlobalUseDX10] (http://docwiki.embarcadero.com/Libraries/XE3/en/FMX.Types.GlobalUseDX10) : = 거짓; –

+0

예! :) 예기치 않게 쉽고 마술 적이었습니다! 그것은 작동합니다! 이 코드 행은 application.initialize 이전이어야합니다! – piXelicidio

+0

나는 초보자입니다. 내 질문에 대답해야할지 모르겠습니다. : -/ – piXelicidio

답변

2

프로젝트 파일에 다음 줄을 넣어 : 기록을 위해당신 G의 + [포스트]에 대한 댓글에서

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

감사합니다. 트릭이 완벽하게 작동합니다. 또한 g + 사용자에게 감사해야합니다. Sergionn Rad. – piXelicidio