{
LOG_DEBUG("BaseRenderer", "Creating Renderer");
m_pInputManager = new InputManager(pScene);
+ setHealth(HealthRunning);
}
BaseRenderer::~BaseRenderer()
{
delete m_pInputManager;
}
+ setHealth(HealthStopped);
}
uint BaseRenderer::getLayerTypeCapabilities(LayerType layerType)
virtual void doScreenShotOfLayer(std::string fileName, const uint id) = 0;
virtual void doScreenShotOfSurface(std::string fileName, const uint id, const uint layer_id) = 0;
+ unsigned long int mThreadId; // TODO: remove
protected:
virtual void ClearDamage();
Scene* m_pScene;
{
return false;
}
+ mThreadId = renderThread;
while (!m_initialized)
{
sleep(1);
return false;
}
+ mThreadId = renderThread;
while (false == m_initialized)
{
usleep(10000); // TODO
pthread_mutex_unlock(&init_lock);
return false;
}
+ mThreadId = renderThread;
+
pthread_cond_wait(&init_condition,&init_lock);
/* while (!m_initialized)
{
void forceCompositionWindowSystem();
Shader* createShader(const string* vertexName, const string* fragmentName);
+ virtual HealthCondition getHealth();
+
private:
X11WindowSystem* m_pWindowSystem;
GLESGraphicsystem* m_pGraphicSystem;
#include "X11/Xlib.h"
#include "TextureBinders/X11CopyGLES.h"
#include "TextureBinders/X11EglImage.h"
+#include <pthread.h>
+#include <signal.h>
X11GLESRenderer::X11GLESRenderer(Scene* pScene)
: BaseRenderer(pScene)
return result;
}
+HealthCondition X11GLESRenderer::getHealth()
+{
+ HealthCondition health = PluginBase::getHealth();
+ if (0 != pthread_kill(m_pWindowSystem->mThreadId, 0))
+ {
+ health = HealthDead;
+ }
+ return health;
+}
+
extern "C" BaseRenderer* createX11GLESRenderer(Scene* pScene){
return new X11GLESRenderer(pScene);
}
#define _IRENDERER_H_
#include <string>
+#include "PluginBase.h"
#include "LayerType.h"
#include "Shader.h"
* Abstract Base of all CompositingControllers, ie Renderers.
* \defgroup RendererAPI Layer Management Renderer API
*/
-class IRenderer
+class IRenderer : public PluginBase
{
public:
/**