5#ifndef BALL_VIEW_RENDERING_RENDERSETUP_H
6#define BALL_VIEW_RENDERING_RENDERSETUP_H
8#ifndef BALL_VIEW_RENDERING_GLRENDERER_H
12#ifndef BALL_VIEW_RENDERING_RENDERTARGET_H
16#ifndef BALL_VIEW_RENDERING_GLRENDERWINDOW_H
20#ifndef BALL_SYSTEM_MUTEX_H
24#include <QtCore/QThread>
25#include <QtCore/QWaitCondition>
27#include <boost/enable_shared_from_this.hpp>
45 :
public QThread,
public boost::enable_shared_from_this<RenderSetup>
117 bool isPaused()
const {
return rendering_paused_; }
292 void lock() { render_mutex_.lock(); }
293 void unlock() { render_mutex_.unlock(); }
312 void makeDependentOn(boost::shared_ptr<RenderSetup>& partner) { keep_in_sync_.push_back(partner); }
377 boost::shared_ptr<RenderSetup>
getRenderer() {
return renderer_; }
TMutexLocker< BALL_DEFAULT_MUTEXLOCKER_TYPE, BALL_DEFAULT_MUTEX_TYPE > MutexLocker
@ RENDER_TO_BUFFER_FINISHED_EVENT
Event posted by renderers after a new buffer is available.
@ TILING_RENDERER
Used for offscreen rendering.
@ STL_RENDERER
Renders into an STL file.
@ OPENGL_RENDERER
Standard OpenGL renderer.
@ POV_RENDERER
Renders into a POVRay file.
@ VRML_RENDERER
Renders into a VRML file (deprecated)
String export_after_ttl_filename_
RenderSetup(const RenderSetup &rs)
void setReceiveBufferUpdates(bool do_receive)
void updateCamera(const Camera *camera=0)
bool use_continuous_loop_
bool exportPNG(const String &filename)
void setLights(bool reset_all=false)
void setBufferReady(bool is_ready)
void setStereoMode(STEREO_SETUP stereo)
int getTimeToLive() const
std::deque< boost::shared_ptr< RenderSetup > > keep_in_sync_
void useContinuousLoop(bool use_loop)
Vector3 mapViewportTo3D(Position x, Position y)
bool isReadyToSwap()
Returns true iff bufferIsReady() holds for this renderer and all dependent ones.
Position prepareGridTextures(const RegularData3D &grid, const ColorMap &map)
void exportPNGAfterTTL(String filename)
void setupEnvironmentMap(const QImage &image)
QWaitCondition wait_for_render
void projectionModeChanged()
RenderSetup(Renderer *r, RenderTarget *t, Scene *scene, const Stage *stage)
std::deque< boost::shared_ptr< RenderSetup > > & getDependentRenderers()
Vector2 map3DToViewport(const Vector3 &vec)
GLRenderer * gl_renderer_
void pickObjects(Position x1, Position y1, Position x2, Position y2, std::list< GeometricObject * > &objects)
bool bufferIsReady()
Returns true if the buffer has been filled and just waits for painting.
void updateBackgroundColor()
STEREO_SETUP stereo_setup_
RendererType renderer_type_
void bufferRepresentation(const Representation &rep)
void removeRepresentation(const Representation &rep)
void resize(Size width, Size height)
void setTimeToLive(int ttl)
void removeGridTextures(const RegularData3D &grid)
void makeDependentOn(boost::shared_ptr< RenderSetup > &partner)
void showRuler(bool show)
bool receivesBufferUpdates() const
void setOffset(const Vector3 &offset)
RendererType getRendererType()
void updateMaterialForRepresentation(const Representation *rep)
GLRenderWindow * gl_target_
virtual void makeCurrent()
boost::shared_ptr< RenderSetup > getRenderer()
RenderToBufferFinishedEvent(boost::shared_ptr< RenderSetup > renderer)
boost::shared_ptr< RenderSetup > renderer_