void CubeMapExample::drawEvent() { defaultFramebuffer.clear(FramebufferClear::Depth); defaultFramebuffer.invalidate({DefaultFramebuffer::InvalidationAttachment::Color}); camera->draw(drawables); swapBuffers(); }
void MotionBlurExample::drawEvent() { defaultFramebuffer.clear(DefaultFramebuffer::Clear::Color|DefaultFramebuffer::Clear::Depth); camera->draw(drawables); swapBuffers(); cameraObject->rotateX(1.0_degf); spheres[0]->rotateZ(-2.0_degf); spheres[1]->rotateZ(1.0_degf); spheres[2]->rotateZ(-0.5_degf); Utility::sleep(40); redraw(); }
void BulletExample::drawEvent() { GL::defaultFramebuffer.clear(GL::FramebufferClear::Color|GL::FramebufferClear::Depth); /* Housekeeping: remove any objects which are far away from the origin */ for(Object3D* obj = _scene.children().first(); obj; ) { Object3D* next = obj->nextSibling(); if(obj->transformation().translation().dot() > 100*100) delete obj; obj = next; } /* Step bullet simulation */ _bWorld.stepSimulation(_timeline.previousFrameDuration(), 5); /* Draw the cubes */ if(_drawCubes) _camera->draw(_drawables); /* Debug draw. If drawing on top of cubes, avoid flickering by setting depth function to <= instead of just <. */ if(_drawDebug) { if(_drawCubes) GL::Renderer::setDepthFunction(GL::Renderer::DepthFunction::LessOrEqual); _debugDraw.setTransformationProjectionMatrix( _camera->projectionMatrix()*_camera->cameraMatrix()); _bWorld.debugDrawWorld(); if(_drawCubes) GL::Renderer::setDepthFunction(GL::Renderer::DepthFunction::Less); } swapBuffers(); _timeline.nextFrame(); redraw(); }