virtual void doScreenShot(std::string fileToSave) = 0;
virtual uint getLayerTypeCapabilities(LayerType layerType);
+ virtual Shader* createShader(const string* vertexName, const string* fragmentName);
protected:
Scene* m_pScene;
static bool debugMode;
};
+inline Shader* BaseRenderer::createShader(const string* vertexName, const string* fragmentName)
+{
+ return NULL;
+}
inline void BaseRenderer::setdebug(bool onoff)
{
debugMode = onoff;
uint getNumberOfHardwareLayers(uint screenID);
uint* getScreenResolution(uint screenID);
uint* getScreenIDs(uint* length);
- void signalWindowSystemRedraw();
+ void signalWindowSystemRedraw();
+ Shader* createShader(const string* vertexName, const string* fragmentName);
private:
X11WindowSystem* m_pWindowSystem;
#include "X11GLESRenderer.h"
#include "config.h"
+#include "Shader.h"
#include "ShaderProgramGLES.h"
#include "X11/Xlib.h"
#include "TextureBinders/X11CopyGLES.h"
void X11GLESRenderer::signalWindowSystemRedraw()
{
- m_pWindowSystem->signalRedrawEvent();
+ m_pWindowSystem->signalRedrawEvent();
+}
+
+Shader* X11GLESRenderer::createShader(const string* vertexName, const string* fragmentName)
+{
+ Shader *result = NULL;
+ m_pWindowSystem->setSystemState(WAKEUP_STATE);
+ m_pWindowSystem->wakeUpRendererThread();
+ m_pGraphicSystem->activateGraphicContext();
+ result = Shader::createShader(*vertexName,*fragmentName);
+ m_pGraphicSystem->releaseGraphicContext();
+ m_pWindowSystem->setSystemState(IDLE_STATE);
+ return result;
}
extern "C" BaseRenderer* createX11GLESRenderer(Scene* pScene){
#include <string>
#include "LayerType.h"
-
+#include "Shader.h"
/**
* Abstract Base of all CompositingControllers, ie Renderers.
*/
virtual unsigned int* getScreenResolution(unsigned int screenID) = 0;
virtual unsigned int* getScreenIDs(unsigned int* length) = 0;
+
+ virtual Shader* createShader(const string* vertexName, const string* fragmentName) = 0;
- virtual void signalWindowSystemRedraw()=0;
-
+ virtual void signalWindowSystemRedraw()=0;
};
#endif /* _IRENDERER_H_ */