void Camera::applyViewport() { if(nullptr == _fbo) { glViewport(getDefaultViewport()._left, getDefaultViewport()._bottom, getDefaultViewport()._width, getDefaultViewport()._height); } else { glViewport(_viewport._left * _fbo->getWidth(), _viewport._bottom * _fbo->getHeight(), _viewport._width * _fbo->getWidth(), _viewport._height * _fbo->getHeight()); } }
void Camera::applyViewport() { glGetIntegerv(GL_VIEWPORT, _oldViewport); if(nullptr == _fbo) { glViewport(getDefaultViewport()._left, getDefaultViewport()._bottom, getDefaultViewport()._width, getDefaultViewport()._height); } else { glViewport(_viewport._left * _fbo->getWidth(), _viewport._bottom * _fbo->getHeight(), _viewport._width * _fbo->getWidth(), _viewport._height * _fbo->getHeight()); } }
void SceneSerializer::handleNode(const Value& entries, SceneNode* node) { handleNodeProperties(entries, node); // Then recursively handle scene objects and scenen nodes. for (Value::ConstMemberIterator entryIter = entries.MemberBegin(); entryIter != entries.MemberEnd(); ++entryIter) { const Value& entryKey = entryIter->name; const Value& entryValue = entryIter->value; assert(entryKey.IsString()); string key = entryKey.GetString(); if (key == kEntityKey) { handleEntity(entryValue, createChildSceneNode(node, entryValue)); } else if (key == kEntityGroupKey) { handleNode(entryValue, createChildSceneNode(node, entryValue)); } else if (key == kIncludeKey) { assert(entryValue.IsString()); handleInclude(entryValue.GetString(), kDefaultSceneNodeClass, createChildSceneNodeWithNameSuffix(node, "")); } else if (key == kCameraKey) { if (entryValue.IsObject()) { handleCamera(entryValue, createChildSceneNode(node, entryValue)); } else if (entryValue.IsString()) { // This is not a camera definition, but a referance to a camera. string cameraName = entryValue.GetString(); node->addVisibleCamera(cameraName); Camera* camera = mSceneMgr->getCamera(cameraName); assert(camera != NULL && "Error: camera is null. " "Please define camera before using to it."); getDefaultViewport()->addCamera(camera); } } else { // Assume it is a simple node property and it has been handled. } } }