void PluginLayerWebKitThread::setPluginView(PluginView* pluginView)
{
    m_pluginView = pluginView;
    setNeedsTexture(isDrawable() && pluginView);
    setLayerProgram(LayerProgramRGBA);

    if (m_pluginView)
        setNeedsDisplay();
    else {
        // We can't afford to wait until the next commit
        // to set the m_pluginView to 0 in the impl, because it is
        // about to be destroyed.
        layerCompositingThread()->setPluginView(0);
        setNeedsCommit();
    }
}
void VideoLayerWebKitThread::setMediaPlayer(MediaPlayer* mediaPlayer)
{
    m_mediaPlayer = mediaPlayer;

    // This is a bit of a misnomer, since we don't need an actual GL texture.
    // However, the LayerRenderer will only process layers that "need textures"
    setNeedsTexture(isDrawable() && (contents() || drawsContent() || this->mediaPlayer()));

    if (!m_mediaPlayer) {
        // We can't afford to wait until the next commit to set the m_mediaPlayer
        // to 0 in the impl, because it is about to be destroyed.
        layerCompositingThread()->setMediaPlayer(0);

        // Clear hole punch rect.
        setHolePunchRect(IntRect());
    }

    setNeedsCommit();
}
CanvasLayerWebKitThread::CanvasLayerWebKitThread(BlackBerry::Platform::Graphics::Buffer* buffer, const IntSize& size)
    : LayerWebKitThread(CanvasLayer, 0)
{
    m_compositingThreadClient = new CanvasLayerCompositingThreadClient(buffer, size);
    layerCompositingThread()->setClient(m_compositingThreadClient);
}
CanvasLayerWebKitThread::~CanvasLayerWebKitThread()
{
    layerCompositingThread()->setClient(0);
    delete m_compositingThreadClient;
}