20 #ifndef EQSEQUEL_RENDERER_H 21 #define EQSEQUEL_RENDERER_H 23 #include <co/objectFactory.h> 25 #include <eq/util/objectManager.h> 26 #include <seq/types.h> 58 SEQ_API
virtual bool init(co::Object* initData LB_UNUSED) {
return true; }
68 SEQ_API
virtual bool exit() {
return true; }
80 SEQ_API
virtual bool initContext(co::Object* initData);
99 SEQ_API
virtual void clear(co::Object* frameData);
108 virtual void draw(co::Object* frameData) = 0;
139 SEQ_API
void setNearFar(
const float nearPlane,
const float farPlane);
193 virtual bool processEvent(EventType,
const SizeEvent&) {
return false; }
194 virtual bool processEvent(EventType,
const PointerEvent&) {
return false; }
195 virtual bool processEvent(EventType,
const KeyEvent&) {
return false; }
196 virtual bool processEvent(
const AxisEvent&) {
return false; }
197 virtual bool processEvent(
const ButtonEvent&) {
return false; }
202 detail::Renderer* getImpl() {
return _impl; }
276 SEQ_API
virtual co::Object*
createObject(
const uint32_t type);
279 SEQ_API
virtual void destroyObject(co::Object*
object,
const uint32_t type);
290 SEQ_API co::Object*
mapObject(
const uint128_t& identifier,
291 co::Object* instance);
301 SEQ_API
bool unmap(co::Object*
object);
305 detail::Renderer*
const _impl;
309 #endif // EQSEQUEL_RENDERER_H const Application & getApplication() const
virtual SEQ_API void clear(co::Object *frameData)
Clear the frame buffer.
SEQ_API void bindDrawFrameBuffer()
Bind the window draw buffer, which can be (multisampled) FBO or window buffer.
SEQ_API const Matrix4f & getModelMatrix() const
virtual void draw(co::Object *frameData)=0
Render the scene.
SEQ_API const ViewData * getViewData() const
virtual bool processEvent(EventType)
virtual SEQ_API ~Renderer()
Destruct this renderer.
The main application object.
SEQ_API void updateNearFar(const Vector4f &boundingSphere)
Update the near and far planes to tightly enclose the given sphere.
SEQ_API co::Object * getFrameData()
SEQ_API const Frustumf & getFrustum() const
SEQ_API void setNearFar(const float nearPlane, const float farPlane)
Set the near and far planes.
virtual SEQ_API bool initContext(co::Object *initData)
Initialize a rendering context.
SEQ_API const GLEWContext * glewGetContext() const
Get the GLEW context for this renderer.
virtual SEQ_API ViewData * createViewData(View &view)
Create a new per-view data instance.
SEQ_API bool unmap(co::Object *object)
Unmap an object from the object map.
virtual SEQ_API void applyPerspectiveFrustum()
Apply the perspective frustum matrix for the current rendering task.
virtual SEQ_API bool init(co::Object *initData)
Initialize the renderer.
virtual SEQ_API void applyRenderContext()
Apply the current rendering parameters to the rendering context.
SEQ_API const PixelViewport & getPixelViewport() const
virtual SEQ_API co::Object * createObject(const uint32_t type)
A View is a 2D area of a Layout.
Application & getApplication()
SEQ_API Renderer(Application &application)
Construct a new renderer.
SEQ_API const RenderContext & getRenderContext() const
SEQ_API uint32_t getWindowID() const
Sequel - A simple interface to the Equalizer parallel rendering framework.
virtual SEQ_API void destroyViewData(ViewData *viewData)
Delete the given view data.
A facility class to manage OpenGL objects across shared contexts.
SEQ_API co::Object * mapObject(const uint128_t &identifier, co::Object *instance)
Map and return an object.
SEQ_API const Matrix4f & getViewMatrix() const
virtual SEQ_API bool exit()
De-initialize the renderer.
virtual SEQ_API void applyScreenFrustum()
Apply an orthographic frustum for pixel-based 2D operations.
virtual SEQ_API void destroyObject(co::Object *object, const uint32_t type)
virtual SEQ_API bool exitContext()
De-initialize a rendering context.
SEQ_API void requestRedraw()
Request another call to draw().
The context applied to a channel during rendering operations.
SEQ_API const ObjectManager & getObjectManager() const
virtual SEQ_API void applyModelMatrix()
Apply the current model matrix to the rendering context.