2013-06-08 4 views
0

저는 Qt와 cryengine을 시작했습니다. 저는 cryengine 내부에서 Qt GUI 응용 프로그램을 실행하고 싶습니다. Visual Studio 2010에서 Qt 부가 기능으로 프로그래밍 중입니다. 나는 같은 솔루션으로 컴파일 된 크라이 엔진 소스 코드와 Qt GUI 소스 코드를 가지고 있습니다. 그러나 실제로 코드 내부에서 Qt GUI를 실제로 실행하는 방법에 대해서는 확신 할 수 없습니다.CryEngine 3에서 Qt GUI 실행

누구나 Qt GUI를 실행하는 데 사용할 수있는 코드 예제를 제공 할 수 있습니까? 그리고 분명히하기 위해, 내 Qt 프로젝트에는 main.cpp, 헤더, 또 다른 .cpp 및 .ui 파일이 포함되어 있습니다. GUI를 실행하기 위해 이들 중 하나를 사용할 수 있습니까? 아니면 컴파일 할 때 만들어진 실제 .exe를 실행해야합니까?

고마워요.

+1

정상적인 위젯 기반 Qt 애플리케이션에 CryEngine을 포함 시키거나 CryEngine 렌더링 콘텐트 위에 Qtish "오버레이"를 추가하려면 무엇을 원하십니까? – peppe

+0

나는 CryEngine 렌더링 된 콘텐츠의 오버레이 오버레이를 선호합니다. – user2453703

+0

크라이 켄 소스가있는 경우 스케일 폼을 사용할 수없는 이유는 무엇입니까? –

답변

0

솔직히 말하면, 어떻게 Qt가 작동하는지 잘 모르겠습니다. 그러나 가정 Qt는 당신이 약간 해키 방법으로 그것을 할 것을 악용 할 수 있습니다 이미지를 렌더링 할 수 있습니다 :

  • 간단한 샌드 박스 에디터 물질 (하나의 물질 층, ILLUM 쉐이더, 단지 확산 맵 - 어떤을) 준비를
  • 상기 크라이 엔진에서 크라이 엔진
  • 까지 '영상'을 재료를 찾는 것이 메모리에서 이미지 (본질적 픽셀 어레이/스트림)
  • 전달할 Qt는 UI 렌더링을 복제 한 이미지를 설정할 확산지도로. 당신은 지금 당신이 할 수있는 3 차원 UI 요소를하려는 경우

    • 이 EntityFlashTag 의 사본을 작성 :
    • 당신은 심지어 접근법을 사용하여 스케일 폼의 3D 기능을 에뮬레이션 할 수있는 화면

    에 직접 그 렌더링 :

  • 새 엔터티의 스폰 및 인스턴스
  • UI 재질 (렌더링 된 Qt UI 이미지 포함)을 설정하고 엔터티 인스턴스에 적용
  • ,
  • 스케일 당신은 모든하여 GameDll 내부 크라이 엔진 관련 할 수 있어야 엔티티 위치

을 조정하고 -하지만 슬프게도 난 (나중에 할 수도 있습니다) 지금 당신에게 코드 조각을 줄 수 없습니다. 또한이 접근 방식에는 큰 단점이 있습니다. 전체 UI 상호 작용을 직접 구현해야합니다.


당신은 Qt는 UI가 정말 크라이 엔진 이상이어야하고 '전체'크라이 엔진 소스 코드를 갖고 싶어 그렇지 않은 경우, 당신은 Qt는 응용 프로그램 내부의 크라이 엔진을 호스팅 할 수 있습니다. 이 접근법을 사용하려면 CryEngine의 컨테이너 역할을하는 Qt 위젯을 만들어야하고 그 위젯이 네이티브 핸들을 갖도록해야합니다 (다음 링크를 보길 원할 것입니다 : Force QWidget Child to have its own Window Handle). 그런 다음 엔진을 초기화 할 때 해당 핸들을 사용합니다 (PC 런처 코드와 GameDll 내부의 게임 시작 관련 코드를 살펴볼 수 있습니다). 그 자리에 남은 UI를 엔진 위젯 위에 배치 할 수 있습니다 (레이아웃에 추가하지 않고 요소를 추가하는 것만으로 충분할 수 있습니다. 손으로 배치해야하지만 요소를 손으로 배치해야합니다).


CryEngine 안에 실제로 Qt를 호스팅하여 더 나은 접근 방법이있을 수 있습니다.하지만 어떻게 할 수 있을지 전혀 모르겠습니다.