Changeset 2350 for code/branches/objecthierarchy2/src/orxonox/objects
- Timestamp:
- Dec 7, 2008, 4:18:11 AM (16 years ago)
- Location:
- code/branches/objecthierarchy2/src/orxonox/objects
- Files:
-
- 2 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/objecthierarchy2/src/orxonox/objects/CMakeLists.txt
r2254 r2350 3 3 EventDispatcher.cc 4 4 EventTarget.cc 5 GlobalShader.cc 5 6 Level.cc 6 7 Radar.cc -
code/branches/objecthierarchy2/src/orxonox/objects/items/Engine.cc
r2256 r2350 32 32 #include "core/CoreIncludes.h" 33 33 #include "core/XMLPort.h" 34 #include "objects/Scene.h" 34 35 #include "objects/worldentities/pawns/SpaceShip.h" 36 #include "tools/Shader.h" 35 37 36 38 namespace orxonox … … 59 61 this->accelerationUpDown_ = 0.0; 60 62 63 this->boostBlur_ = 0; 64 61 65 this->registerVariables(); 62 66 } … … 65 69 { 66 70 if (this->isInitialized() && this->ship_) 71 { 67 72 this->ship_->setEngine(0); 73 74 if (this->boostBlur_) 75 delete this->boostBlur_; 76 } 68 77 } 69 78 … … 178 187 this->ship_->setBoost(false); 179 188 this->ship_->setSteeringDirection(Vector3::ZERO); 189 190 if (!this->boostBlur_ && this->ship_->hasLocalController() && this->ship_->hasHumanController()) 191 { 192 this->boostBlur_ = new Shader(this->ship_->getScene()->getSceneManager()); 193 this->boostBlur_->setCompositor("Radial Blur"); 194 } 195 196 if (this->boostBlur_ && this->maxSpeedFront_ != 0 && this->boostFactor_ != 1) 197 this->boostBlur_->setParameter("Ogre/Compositor/Radial_Blur", 0, 0, "sampleStrength", 5.0f * clamp((-velocity.z - this->maxSpeedFront_) / ((this->boostFactor_ - 1) * this->maxSpeedFront_), 0.0f, 1.0f)); 198 } 199 200 void Engine::changedActivity() 201 { 202 SUPER(Engine, changedActivity); 203 204 if (this->boostBlur_) 205 this->boostBlur_->setVisible(this->isVisible()); 180 206 } 181 207 … … 188 214 if (ship->getEngine() != this) 189 215 ship->setEngine(this); 216 217 if (this->boostBlur_) 218 { 219 delete this->boostBlur_; 220 this->boostBlur_ = 0; 221 } 190 222 } 191 223 } -
code/branches/objecthierarchy2/src/orxonox/objects/items/Engine.h
r2256 r2350 48 48 49 49 virtual void tick(float dt); 50 virtual void changedActivity(); 50 51 51 52 virtual void addToSpaceShip(SpaceShip* ship); … … 124 125 float accelerationLeftRight_; 125 126 float accelerationUpDown_; 127 128 Shader* boostBlur_; 126 129 }; 127 130 } -
code/branches/objecthierarchy2/src/orxonox/objects/worldentities/Backlight.cc
r2254 r2350 38 38 #include "core/XMLPort.h" 39 39 #include "objects/Scene.h" 40 #include "util/Exception.h" 40 41 41 42 namespace orxonox … … 59 60 if (Core::showsGraphics()) 60 61 { 61 assert(this->getScene()); 62 assert(this->getScene()->getSceneManager()); 63 assert(this->getScene()->getRootSceneNode()); 62 if (!this->getScene()) 63 ThrowException(AbortLoading, "Can't create Camera, no scene given."); 64 if (!this->getScene()->getSceneManager()) 65 ThrowException(AbortLoading, "Can't create Camera, no scene manager given."); 66 if (!this->getScene()->getRootSceneNode()) 67 ThrowException(AbortLoading, "Can't create Camera, no root scene node given."); 64 68 65 69 this->ribbonTrail_ = this->getScene()->getSceneManager()->createRibbonTrail(this->getNode()->getName()); -
code/branches/objecthierarchy2/src/orxonox/objects/worldentities/Camera.cc
r2171 r2350 37 37 #include <OgreSceneNode.h> 38 38 #include <OgreViewport.h> 39 #include <OgreCompositorManager.h> 40 #include <OgreResource.h> 39 41 40 42 #include "util/Exception.h" … … 42 44 #include "core/ConfigValueIncludes.h" 43 45 #include "objects/Scene.h" 46 #include "tools/Shader.h" 44 47 #include "CameraManager.h" 45 48 … … 75 78 { 76 79 this->releaseFocus(); 80 this->getScene()->getSceneManager()->destroyCamera(this->camera_); 77 81 } 78 82 } … … 122 126 void Camera::setFocus(Ogre::Viewport* viewport) 123 127 { 128 // This workaround is needed to avoid weird behaviour with active compositors while 129 // switching the camera (like freezing the image) 130 // 131 // Last known Ogre version needing this workaround: 132 // 1.4.8 133 134 // deactivate all compositors 135 { 136 Ogre::ResourceManager::ResourceMapIterator iterator = Ogre::CompositorManager::getSingleton().getResourceIterator(); 137 while (iterator.hasMoreElements()) 138 Ogre::CompositorManager::getSingleton().setCompositorEnabled(viewport, iterator.getNext()->getName(), false); 139 } 140 124 141 this->bHasFocus_ = true; 125 142 viewport->setCamera(this->camera_); 143 144 // reactivate all visible compositors 145 { 146 for (ObjectList<Shader>::iterator it = ObjectList<Shader>::begin(); it != ObjectList<Shader>::end(); ++it) 147 it->updateVisibility(); 148 } 126 149 } 127 150 }
Note: See TracChangeset
for help on using the changeset viewer.