48 Renderer* renderer = pipe->getRenderer();
53 if( !GLEW_ARB_shader_objects )
55 sendError( ERROR_EVOLVE_ARB_SHADER_OBJECTS_MISSING );
58 if( !GLEW_EXT_blend_func_separate )
60 sendError( ERROR_EVOLVE_EXT_BLEND_FUNC_SEPARATE_MISSING );
63 if( !GLEW_ARB_multitexture )
65 sendError( ERROR_EVOLVE_ARB_MULTITEXTURE_MISSING );
69 glEnable( GL_SCISSOR_TEST );
71 glClear( GL_COLOR_BUFFER_BIT );
73 glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
77 if( !renderer->loadShaders( ))
79 sendError( ERROR_EVOLVE_LOADSHADERS_FAILED );
89 static const std::string _logoTextureName =
90 std::string( lunchbox::getExecutablePath() +
91 "/../share/Equalizer/data/logo.rgb" );
94 void Window::_loadLogo()
96 if( !GLEW_ARB_texture_rectangle )
98 LBWARN <<
"Can't load overlay logo, GL_ARB_texture_rectangle not "
99 <<
"available" << std::endl;
104 _logoTexture = om.getEqTexture( _logoTextureName.c_str( ));
111 LBWARN <<
"Can't load overlay logo " << _logoTextureName << std::endl;
115 _logoTexture = om.newEqTexture( _logoTextureName.c_str(),
116 GL_TEXTURE_RECTANGLE_ARB );
117 LBASSERT( _logoTexture );
121 LBVERB <<
"Created logo texture of size " << _logoTexture->
getWidth() <<
"x"
122 << _logoTexture->
getHeight() << std::endl;
129 const FrameData& frameData = pipe->getFrameData();
132 if( frameData.useStatistics() && !channels.empty( ))
133 EQ_GL_CALL( channels.back()->drawStatistics( ));
virtual bool configInitGL(const eq::uint128_t &initID)
Initialize the OpenGL state for this window.
EQ_API bool upload(const Frame::Buffer buffer, util::Texture *texture, const Vector2i &position, util::ObjectManager &glObjects) const
Upload this image to the frame buffer or a texture.
virtual bool configInit(const eq::uint128_t &initID)
Initialize this window.
EQ_API EventOCommand sendError(const uint32_t error) final
Send a window error event to the application node.
const Channels & getChannels() const
EQFABRIC_INL void setIAttribute(const WindowSettings::IAttribute attr, const int32_t value)
Set a window attribute.
EQ_API void deleteGLObjects(util::ObjectManager &om)
Delete all OpenGL objects allocated from the given object manager.
virtual void swapBuffers()
Swap the front and back buffer of the window.
std::vector< Channel * > Channels
A vector of pointers to eq::Channel.
const P * getPipe() const
EQ_API int32_t getWidth() const
A facility class to manage OpenGL objects across shared contexts.
virtual EQ_API void swapBuffers()
Swap the front and back buffer of the window.
EQ_API int32_t getHeight() const
EQ_API const GLEWContext * glewGetContext() const
Get the GLEW context for this window.
EQ_API bool readImage(const std::string &filename, const Frame::Buffer buffer)
Read pixel data from an uncompressed rgb image file.
virtual EQ_API bool configInit(const uint128_t &initID)
Initialize this window.
util::ObjectManager & getObjectManager()