EGLImageLayerWebKitThread.h [plain text]
#ifndef EGLImageLayerWebKitThread_h
#define EGLImageLayerWebKitThread_h
#if USE(ACCELERATED_COMPOSITING)
#include "EGLImageLayerCompositingThreadClient.h"
#include "LayerWebKitThread.h"
namespace BlackBerry {
namespace Platform {
namespace Graphics {
class GLES2SharedTexture;
class GLES2SharedTextureAccessor;
}
}
}
namespace WebCore {
class EGLImageLayerWebKitThread : public LayerWebKitThread {
public:
virtual ~EGLImageLayerWebKitThread();
virtual void setNeedsDisplay();
protected:
EGLImageLayerWebKitThread(LayerType);
virtual void updateTextureContentsIfNeeded() = 0;
virtual void commitPendingTextureUploads();
virtual void deleteTextures() = 0;
void updateFrontBuffer(const IntSize&, unsigned backBufferTexture);
void deleteFrontBuffer();
private:
bool createTextureIfNeeded(const IntSize&);
void createShaderIfNeeded();
void blitToFrontBuffer(unsigned backBufferTexture);
RefPtr<EGLImageLayerCompositingThreadClient> m_client;
bool m_needsDisplay;
unsigned m_program;
BlackBerry::Platform::Graphics::GLES2SharedTexture* m_texture;
BlackBerry::Platform::Graphics::GLES2SharedTextureAccessor* m_textureAccessor;
IntSize m_size;
};
}
#endif // USE(ACCELERATED_COMPOSITING)
#endif // EGLImageLayerWebKitThread_h