summaryrefslogtreecommitdiffstats
path: root/WebCore/platform/graphics/android/MediaLayer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/platform/graphics/android/MediaLayer.cpp')
-rw-r--r--WebCore/platform/graphics/android/MediaLayer.cpp152
1 files changed, 0 insertions, 152 deletions
diff --git a/WebCore/platform/graphics/android/MediaLayer.cpp b/WebCore/platform/graphics/android/MediaLayer.cpp
deleted file mode 100644
index 1ba6d46..0000000
--- a/WebCore/platform/graphics/android/MediaLayer.cpp
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-#include "config.h"
-#include "MediaLayer.h"
-#include "MediaTexture.h"
-#include "TilesManager.h"
-
-#if USE(ACCELERATED_COMPOSITING)
-
-#define LAYER_DEBUG
-#undef LAYER_DEBUG
-
-#ifdef DEBUG
-
-#include <cutils/log.h>
-#include <wtf/text/CString.h>
-
-#undef XLOG
-#define XLOG(...) android_printLog(ANDROID_LOG_DEBUG, "MediaLayer", __VA_ARGS__)
-
-#else
-
-#undef XLOG
-#define XLOG(...)
-
-#endif // DEBUG
-
-namespace WebCore {
-
-MediaLayer::MediaLayer(jobject weakWebViewRef) : LayerAndroid((RenderLayer*) NULL)
-{
- m_bufferedTexture = new MediaTexture(EGL_NO_CONTEXT);
- m_bufferedTexture->producerInc();
- m_videoTexture = new VideoTexture(weakWebViewRef);
- m_videoTexture->incStrong(this);
-
- m_isCopy = false;
- m_currentTextureInfo = 0;
- m_isContentInverted = false;
- m_outlineSize = 0;
- XLOG("Creating Media Layer %p", this);
- XLOG("producer: %d consumer: %d", m_bufferedTexture->getProducerCount(),
- m_bufferedTexture->getConsumerCount());
-}
-
-MediaLayer::MediaLayer(const MediaLayer& layer) : LayerAndroid(layer)
-{
- m_bufferedTexture = layer.getTexture();
- m_bufferedTexture->consumerInc();
- m_videoTexture = layer.m_videoTexture;
- m_videoTexture->incStrong(this);
-
- m_isCopy = true;
- m_currentTextureInfo = 0;
- m_isContentInverted = layer.m_isContentInverted;
- m_outlineSize = layer.m_outlineSize;
- XLOG("Creating Media Layer Copy %p -> %p", &layer, this);
- XLOG("producer: %d consumer: %d COPY", m_bufferedTexture->getProducerCount(),
- m_bufferedTexture->getConsumerCount());
-}
-
-MediaLayer::~MediaLayer()
-{
- XLOG("Deleting Media Layer");
- XLOG("producer: %d consumer: %d %s", m_bufferedTexture->getProducerCount(),
- m_bufferedTexture->getConsumerCount(), (m_isCopy) ? "COPY" : "");
-
- if (m_isCopy)
- m_bufferedTexture->consumerDec();
- else
- m_bufferedTexture->producerDec();
- m_videoTexture->decStrong(this);
-}
-
-bool MediaLayer::drawGL(GLWebViewState* glWebViewState, SkMatrix& matrix)
-{
- TilesManager::instance()->shader()->clip(drawClip());
-
- // when the plugin gains focus webkit applies an outline to the
- // widget, which causes the layer to expand to accommodate the
- // outline. Therefore, we shrink the rect by the outline's dimensions
- // to ensure the plugin does not draw outside of its bounds.
- SkRect mediaBounds;
- mediaBounds.set(0, 0, getSize().width(), getSize().height());
- mediaBounds.inset(m_outlineSize, m_outlineSize);
-
- // check to see if we need to create a video texture
- m_videoTexture->initNativeWindowIfNeeded();
- // draw any video content if present
- m_videoTexture->drawVideo(drawTransform(), mediaBounds);
-
- // draw the primary content
- if (m_bufferedTexture) {
- TextureInfo* textureInfo = m_bufferedTexture->consumerLock();
- if (textureInfo && textureInfo->m_width != 0 && textureInfo->m_height != 0) {
- // the layer's shader draws the content inverted so we must undo
- // that change in the transformation matrix
- TransformationMatrix m = drawTransform();
- if (!m_isContentInverted) {
- m.flipY();
- m.translate(0, -getSize().height());
- }
-
- bool forceBlending = textureInfo->m_internalFormat == GL_RGBA ||
- textureInfo->m_internalFormat == GL_BGRA_EXT ||
- textureInfo->m_internalFormat == GL_ALPHA;
- TilesManager::instance()->shader()->drawLayerQuad(m, mediaBounds,
- textureInfo->m_textureId,
- 1.0f, forceBlending);
- }
- m_bufferedTexture->consumerRelease();
- }
-
- return drawChildrenGL(glWebViewState, matrix);
-}
-
-ANativeWindow* MediaLayer::acquireNativeWindowForVideo()
-{
- return m_videoTexture->requestNewWindow();
-}
-
-void MediaLayer::setWindowDimensionsForVideo(const ANativeWindow* window, const SkRect& dimensions)
-{
- if (window != m_videoTexture->getNativeWindow())
- return;
-
- //TODO validate that the dimensions do not exceed the plugin's bounds
- m_videoTexture->setDimensions(dimensions);
-}
-
-void MediaLayer::releaseNativeWindowForVideo(ANativeWindow* window)
-{
- if (window == m_videoTexture->getNativeWindow())
- m_videoTexture->releaseNativeWindow();
-}
-
-} // namespace WebCore
-
-#endif // USE(ACCELERATED_COMPOSITING)