2010년 3월 8일 월요일

ogre, alt enter 로 창모드 전체모드 전환

오늘부로 오우거 1.7 로 갈아탔다.
cmake 기본지원에 boost 를 같이 배포하더군.
외부라이브러리를 껴서 배포하는건 좀 병신짓인데... 편하긴 하지만.. 흠
어쨌건 기존 내가 쓰던 cmake 파일을 FindOgre.cmake 를 쓰도록 적절히 수정하고
몇가지 api 가 바뀐게 있어서(제길) 조금 수정해주니 내가 지금껏 만들던 예제들은 잘 돌더라.
아직 오류가 남아있어서 종료처리가 비정상이긴 한데..

어쨌건 전체화면 전환 코드나 적어둔다.
렌더윈도우에서 크기를 얻어서 전체화면/창모드 만 바꾸는 코드
[code cpp]
    void toggleFullscreen()
    {
        unsigned int width,height,color;
        int left,top;
        RenderWindow* w = app_->getRenderWindow();
        w->getMetrics(width,height,color,left,top);
        w->setFullscreen(!w->isFullScreen(),
                         width,
                         height);
    }
[/code]

OIS 에서 alt-enter 를 받는건 enter 를 받은 시점에서 alt 를 검사하면 된다.
[code cpp]
    virtual bool keyPressed(const OIS::KeyEvent& e)
    {
        switch(e.key)
        {
        case OIS::KC_ESCAPE:
            keepRendering_ = false;
            break;
        case OIS::KC_RETURN:
            if(keyboard_->isModifierDown(OIS::Keyboard::Alt))
                toggleFullscreen();
            break;
        default:
            break;
        }
        return true;
    }
[/code]


댓글 없음: