diff --git a/cocos/base/CCDirector.cpp b/cocos/base/CCDirector.cpp index d2fd236ff6..6f7797d9e7 100644 --- a/cocos/base/CCDirector.cpp +++ b/cocos/base/CCDirector.cpp @@ -256,6 +256,14 @@ void Director::setGLDefaultValues() setAlphaBlending(true); setDepthTest(false); setProjection(_projection); + + // Everything should be drawn within `Scene::render()`. + // Otherwise it might not render correctly since the GL state might not be the correct one + // so the FPS should be part of Scene. But until we move them there, this little hack is to + // set the default glViewPort(), so that when `Scene::render()` exits, the viewport is the correct + // one for the FPS + auto vp = Camera::getDefaultViewport(); + glViewport(vp._left, vp._bottom, vp._width, vp._height); } // Draw the Scene