Esempio n. 1
0
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());
    }
    
}
Esempio n. 2
0
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.
        }
    }
}