반응형
기본 template(Win32빌드)으로 생성한 프로젝트를 예로 들겠습니다.
AppDelegate.cpp 파일안에 applicationDidFinishLaunching 함수 내용을 약간 수정하면 전체화면 구동이 가능합니다.
아래는 수정 전의 applicationDidFinishLaunching함수 입니다.
bool AppDelegate::applicationDidFinishLaunching() { // initialize director auto director = Director::getInstance(); auto glview = director->getOpenGLView(); if(!glview) { glview = GLViewImpl::create("My Game"); director->setOpenGLView(glview); } // turn on display FPS director->setDisplayStats(true); // set FPS. the default value is 1.0/60 if you don't call this director->setAnimationInterval(1.0 / 60); // create a scene. it's an autorelease object auto scene = HelloWorld::createScene(); // run director->runWithScene(scene); return true; }
6번째줄에 보면 glview = GLViewImpl::create("My Game"); 라는 부분이 있는데, 창을 생성하는 부분입니다.
이 부분을 풀 스크린으로 창이 생성 되도록 수정할 수 있습니다.
이후 창의 크기 변화나 Window 설정 관련 수정은 glview 객체를 통해 가능합니다.
if(!glview) { //glview = GLViewImpl::create("My Game"); glview = GLViewImpl::createWithFullScreen("My Game"); director->setOpenGLView(glview); }
이렇게 풀 스크린으로 창을 생성한 뒤에 창의 클라이언트 영역(그려지는 영역)을 설정해주어야 합니다.
전체화면 이라는것은 '바탕화면의 해상도 크기 만큼'이라는 해석이 가능하기 때문에, 코딩도 마찬가지로
바탕화면의 해상도를 구하고 해당 크기 만큼 클라이언트 영역을 설정해 줍니다.
바탕화면을 구하기 위해서는 getFrameSize() 함수를 사용해서 구할 수 있습니다.
getFrameSize() 함수는 Size 형의 객체를 리턴합니다.
auto framesize = glview->getFrameSize(); glview->setDesignResolutionSize(framesize.width, framesize.height, kResolutionShowAll);
이렇게 소스를 추가하면 바탕화면 크기만큼 클라이언트 영역을 가진 윈도우가 생성됩니다.
아래는 applicationDidFinishLaunching 함수의 풀 소스코드 입니다.
bool AppDelegate::applicationDidFinishLaunching() { auto director = Director::getInstance(); auto glview = director->getOpenGLView(); if(!glview) { glview = GLViewImpl::createWithFullScreen("My Game"); director->setOpenGLView(glview); } auto framesize = glview->getFrameSize(); glview->setDesignResolutionSize(framesize.width, framesize.height, kResolutionShowAll); // turn on display FPS director->setDisplayStats(true); // set FPS. the default value is 1.0/60 if you don't call this director->setAnimationInterval(1.0 / 60); // create a scene. it's an autorelease object auto scene = HelloWorld::createScene(); // run director->runWithScene(scene); return true; }