128040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu/*
228040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu * Copyright (C) 2010 Google Inc. All rights reserved.
328040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu *
428040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu * Redistribution and use in source and binary forms, with or without
528040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu * modification, are permitted provided that the following conditions
628040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu * are met:
728040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu *
828040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu * 1.  Redistributions of source code must retain the above copyright
928040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu *     notice, this list of conditions and the following disclaimer.
1028040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu * 2.  Redistributions in binary form must reproduce the above copyright
1128040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu *     notice, this list of conditions and the following disclaimer in the
1228040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu *     documentation and/or other materials provided with the distribution.
1328040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu *
1428040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
1528040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
1628040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
1728040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
1828040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
1928040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
2028040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
2128040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
2228040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
2328040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2428040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu */
2528040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu
2628040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu#include "config.h"
2728040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu
2828040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu#if USE(ACCELERATED_COMPOSITING)
2928040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu
3028040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu#include "PluginLayerChromium.h"
3128040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu
3228040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu#include "GraphicsContext3D.h"
3328040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu#include "LayerRendererChromium.h"
342bde8e466a4451c7319e3a072d118917957d6554Steve Block#include "cc/CCLayerImpl.h"
352bde8e466a4451c7319e3a072d118917957d6554Steve Block#include "cc/CCPluginLayerImpl.h"
3628040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu
3728040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhunamespace WebCore {
3828040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu
3928040489d744e0c5d475a88663056c9040ed5320Teng-Hui ZhuPassRefPtr<PluginLayerChromium> PluginLayerChromium::create(GraphicsLayerChromium* owner)
4028040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu{
4128040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu    return adoptRef(new PluginLayerChromium(owner));
4228040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu}
4328040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu
4428040489d744e0c5d475a88663056c9040ed5320Teng-Hui ZhuPluginLayerChromium::PluginLayerChromium(GraphicsLayerChromium* owner)
4528040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu    : LayerChromium(owner)
462bde8e466a4451c7319e3a072d118917957d6554Steve Block    , m_textureId(0)
4728040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu{
4828040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu}
4928040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu
502bde8e466a4451c7319e3a072d118917957d6554Steve BlockPassRefPtr<CCLayerImpl> PluginLayerChromium::createCCLayerImpl()
5128040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu{
522bde8e466a4451c7319e3a072d118917957d6554Steve Block    return CCPluginLayerImpl::create(this);
5328040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu}
5428040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu
552bde8e466a4451c7319e3a072d118917957d6554Steve Blockvoid PluginLayerChromium::setTextureId(unsigned id)
5628040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu{
572bde8e466a4451c7319e3a072d118917957d6554Steve Block    m_textureId = id;
5828040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu}
5928040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu
602bde8e466a4451c7319e3a072d118917957d6554Steve Blockvoid PluginLayerChromium::pushPropertiesTo(CCLayerImpl* layer)
6128040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu{
622bde8e466a4451c7319e3a072d118917957d6554Steve Block    LayerChromium::pushPropertiesTo(layer);
632bde8e466a4451c7319e3a072d118917957d6554Steve Block
642bde8e466a4451c7319e3a072d118917957d6554Steve Block    CCPluginLayerImpl* pluginLayer = static_cast<CCPluginLayerImpl*>(layer);
652bde8e466a4451c7319e3a072d118917957d6554Steve Block    pluginLayer->setTextureId(m_textureId);
6628040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu}
6728040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu
6828040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu}
6928040489d744e0c5d475a88663056c9040ed5320Teng-Hui Zhu#endif // USE(ACCELERATED_COMPOSITING)
70