setDesignResolutionSize 사용시 CCListView와 CCScrollView 버그 해결
지난 포스팅에서 cocos2d-x 플랫폼별 해상도와 리소스 관련된 내용을 다뤘는데요, 이것과 관련한 버그가 존재하네요. eglView.setFrameSize(800, 480); eglView.setDesignResolutionSize(480, 320); 일단 제 폰이 800 x 480이라 2배 뻥튀기 하기위해 위와 같이 설정했구요 아래 스샷을 보시죠. < 비정상 > < 정상 > 어떠신가요? 스샷만 보더라도 뭔가.. 잘 못 되었다라는 것을 알수 있겠죠? 저와 같은 문제에 빠진 분들이 있더군요. 대충 소스를 보니 setDesignResolutionSize를 통해 CCEGLView의 ScreenScaleFactor는 1.0이 아닌 값으로 변경이 되어지는데 반해 CCDirector에 있는 ContentScaleFactor은 1.0 그대로 여서 아래의 소스에서 문제가 발생합니다. void CCListView::visit(void) { if (!m_pListViewParent) { CCRect rectSelf; float factor = CC_CONTENT_SCALE_FACTOR(); rectSelf.origin = convertToWorldSpace(CCPoint(0,0)); rectSelf.origin.x *= factor; rectSelf.origin.y *= factor; rectSelf.size = this->getContentSize(); rectSelf.size.width *= factor; rectSelf.size.height *= factor; glScissor((GLsizei)rectSelf.origin.x, (GLsizei)rectSelf.origin.y, (GLsizei)rectSelf.size.width , (GLsi...