2012-06-15 2 views
0

지금 당분간은 제 게임을하고 있고 창문에서는 잘 작동합니다. 모든 것이 교차 플랫폼을 지원하도록 설계되었습니다. 당신이 내 질문을 이해하기 위해서는 모든 것이 어떻게 작동하는지 조금 설명해야 할 것입니다 :iOS에서 OpenGL ES 2.0 초기화

플랫폼, 비디오, XML, 이미지 및 엔진의 여러 라이브러리가 있습니다. 이들 각각은 Windows에서 DLL로 또는 iOS에서 정적 라이브러리로 컴파일됩니다.

라이브러리의 모든 항목은 정상적인 기능 (extern "C"으로 선언 됨)이거나 인터페이스가있는 객체입니다.

폴더 구조는 Project, Include, Source와 같이 구성됩니다.

include 폴더에는 인터페이스 및 함수 프로토 타입과 같은 모든 플랫폼에 대한 공통 코드 만 있습니다. 원본 폴더에는 각 플랫폼마다 다른 폴더가 있습니다.

나는 플랫폼 라이브러리를 iOS에서 아무 문제없이 이식 할 수 있었지만 지금은 비디오 1에 붙어 있습니다.

렌더링 API (Windows에서는 OpenGL, iOS에서는 OpenGL-ES 2)를 처리합니다.

IVideoDriver* CreateVideoDriver(void* container) 

컨테이너 창 아래 HWND입니다 :

나는 다음과 같은 기능을 사용할 수있는 드라이버를 만듭니다.

iOS에서이 초기화 스타일을 사용하는 방법에 대해 잘 모르겠다.

자습서를 읽었으며 샘플 소스 코드를 살펴 봤지만 어떻게해야하는지 알 수 없습니다. 내가보기에 OpenGL 초기화는 뷰에서 수행되어야하며 모든 코드를 링크하는 방법을 모른다. 나는 객관적인 - C 코드를 사용해야 만한다는 것을 알고 있지만 그것은 문제가 아닙니다.

누구든지이 문제로 나를 도와 줄 수 있습니까?

+1

나는 cocos2d-x 엔진을 살펴볼 것을 권장합니다. 그것은 크로스 플랫폼이며 OpenGL ES를 사용하며 멋진 코드 구조를 가지고 있습니다. 동영상의 경우 - 전체 화면 동영상 인 경우 기본 iOS 플레이어 인 'MPMoviePlayerController'(하드웨어가 가속 됨)를 사용하는 것이 더 나은 방법입니다. – brigadir

+0

여러 엔진을 검사했지만 어떻게 든 cocos2d-x를 건너 뛰었습니다. 비디오 라이브러리는 낮은 레버 렌더링 기능 (속성 스트림 설정, 텍스처 바인딩, 인덱스 배열 렌더링 등)을 처리합니다. 나는 현재 영화 재생을위한 계획이 없다. 의견을 보내 주셔서 감사합니다. – Sanctus2099

답변

1

사용 (GLEssentials 또는 GLES2Sample 참조) 많은 아이폰 OS 샘플에 제공되는 EAGLViewESRenderer.

매우 사용하기 쉽습니다. OGLES 프레임 워크와의 링크를 잊지 마세요! VideoDriverIOS.h/VideoDriverIOS에서

:

귀하의 VideoDriverIOS처럼 보일 것이다.mm

class VideoDriverIOS : public IVideoDriver 
{ 
public: 
    ... 
    // implement the pure virual here 
protected: 
    EAGLView* mView; 
    ... 
} 

및 메소드에서 mView 객체를 직접 사용할 수 있습니다.

+0

나는 이것을 좋아한다. 그것은 효과가있을 것 같은데. 나는 그것을 테스트 할 시간이 없었지만 이제는 주말이 올 것이다. 잘 이해했다면 mView는 CreateVideoDriver에서 전달 될 것입니다. 그렇게하면 초기화가 바깥에서 수행 될 수 있습니다. 렌더링은 여전히 ​​완벽하게 작동하며 EAGLView는 꽤 표준적인 클래스입니다. – Sanctus2099

+0

나는 그렇다고 대답 할 것입니다. viewController.mm에서 [viewDidLoad]는 EAGLView를 인스턴스화하고 EAGLView ptr로 your_lib-> createVideoDriver를 호출합니다. VideoDriverIOS로 IVideoDriver 결과를 캐스트 해, 플랫폼 고유의 조작을 실행합니다. 이것은 단지 맹목적인 추측 일뿐입니다. 그러나 제가 이해 한 한, 그것은 당신의 프로젝트에 들어갈 수 있습니다. – rockeye

2

iOS 5.0에서 Apple은 OpenGL ES 인식 뷰의 기본 구현을 제공하는 GLKit보기를 도입했습니다. GLKit View를 관리하는 GLKit View Controller를 사용할 수도 있습니다. 이것들은 Xcode를 통해 기본 .xib로 바로 드래그하여 구현에 매끄럽게 연결할 수있는 객체입니다.

Ray Wenderlich는 훌륭한 초보 게시물을 작성했으며, 모든 것을 연결하는 데 도움이 될 수 있습니다. http://www.raywenderlich.com/5223/beginning-opengl-es-2-0-with-glkit-part-1

행운을 빌어 요!