Index: Source/WebCore/platform/graphics/surfaces/egl/EGLConfigSelector.cpp |
diff --git a/Source/WebCore/platform/graphics/surfaces/egl/EGLConfigSelector.cpp b/Source/WebCore/platform/graphics/surfaces/egl/EGLConfigSelector.cpp |
deleted file mode 100644 |
index b7658e3447d3b6d637f1d978c8db79e8cd10b97e..0000000000000000000000000000000000000000 |
--- a/Source/WebCore/platform/graphics/surfaces/egl/EGLConfigSelector.cpp |
+++ /dev/null |
@@ -1,168 +0,0 @@ |
-/* |
- * Copyright (C) 2012 Intel Corporation. All rights reserved. |
- * |
- * Redistribution and use in source and binary forms, with or without |
- * modification, are permitted provided that the following conditions |
- * are met: |
- * 1. Redistributions of source code must retain the above copyright |
- * notice, this list of conditions and the following disclaimer. |
- * 2. Redistributions in binary form must reproduce the above copyright |
- * notice, this list of conditions and the following disclaimer in the |
- * documentation and/or other materials provided with the distribution. |
- * |
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' |
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, |
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS |
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF |
- * THE POSSIBILITY OF SUCH DAMAGE. |
- */ |
- |
-#include "config.h" |
-#include "EGLConfigSelector.h" |
- |
-#if USE(EGL) |
- |
-#include "EGLHelper.h" |
- |
-namespace WebCore { |
- |
-EGLConfigSelector::EGLConfigSelector(GLPlatformSurface::SurfaceAttributes attributes) |
- : m_pixmapFBConfig(0) |
- , m_surfaceContextFBConfig(0) |
- , m_attributes(attributes) |
-{ |
- m_sharedDisplay = EGLHelper::eglDisplay(); |
-} |
- |
-EGLConfigSelector::~EGLConfigSelector() |
-{ |
-} |
- |
-EGLConfig EGLConfigSelector::pixmapContextConfig() |
-{ |
- if (!m_pixmapFBConfig) |
- m_pixmapFBConfig = createConfig(EGL_PIXMAP_BIT); |
- |
- return m_pixmapFBConfig; |
-} |
- |
-EGLConfig EGLConfigSelector::surfaceContextConfig() |
-{ |
- if (!m_surfaceContextFBConfig) |
- m_surfaceContextFBConfig = createConfig(EGL_WINDOW_BIT); |
- |
- return m_surfaceContextFBConfig; |
-} |
- |
-EGLint EGLConfigSelector::nativeVisualId(const EGLConfig& config) const |
-{ |
- if (m_sharedDisplay == EGL_NO_DISPLAY) |
- return -1; |
- |
- EGLint eglValue = 0; |
- eglGetConfigAttrib(m_sharedDisplay, config, EGL_NATIVE_VISUAL_ID, &eglValue); |
- |
- return eglValue; |
-} |
- |
-GLPlatformSurface::SurfaceAttributes EGLConfigSelector::attributes() const |
-{ |
- return m_attributes; |
-} |
- |
-void EGLConfigSelector::reset() |
-{ |
- m_surfaceContextFBConfig = 0; |
- m_pixmapFBConfig = 0; |
-} |
- |
-EGLConfig EGLConfigSelector::createConfig(EGLint expectedSurfaceType) |
-{ |
- if (m_sharedDisplay == EGL_NO_DISPLAY) |
- return 0; |
- |
- EGLint numConfigs; |
- |
- eglGetConfigs(m_sharedDisplay, 0, 0, &numConfigs); |
- |
- if (!numConfigs) { |
- LOG_ERROR("Failed to retrieve number of EGL configs."); |
- return 0; |
- } |
- |
- EGLConfig configs[numConfigs]; |
- eglGetConfigs(m_sharedDisplay, configs, numConfigs, &numConfigs); |
- |
- if (!numConfigs) { |
- LOG_ERROR("Failed to retrieve any EGL configs."); |
- return 0; |
- } |
- |
- EGLConfig config = 0; |
- EGLint alpha, surface, red, green, blue, renderType; |
- EGLint expectedAlpha = m_attributes & GLPlatformSurface::SupportAlpha ? 8 : 0; |
- EGLint expectedRed = 8; |
- EGLint expectedBlue = 8; |
- EGLint expectedGreen = 8; |
-#if USE(OPENGL_ES_2) |
- EGLint expectedRenderType = EGL_OPENGL_ES2_BIT; |
-#else |
- EGLint expectedRenderType = EGL_OPENGL_BIT, |
-#endif |
- |
- for (int i = 0; i < numConfigs; i++) { |
- EGLConfig tempConfig = configs[i]; |
- eglGetConfigAttrib(m_sharedDisplay, tempConfig, EGL_RENDERABLE_TYPE, &renderType); |
- |
- if (!(renderType & expectedRenderType)) |
- continue; |
- |
- eglGetConfigAttrib(m_sharedDisplay, tempConfig, EGL_ALPHA_SIZE, &alpha); |
- |
- if (alpha != expectedAlpha) |
- continue; |
- |
- eglGetConfigAttrib(m_sharedDisplay, tempConfig, EGL_RED_SIZE, &red); |
- |
- if (red != expectedRed) |
- continue; |
- |
- eglGetConfigAttrib(m_sharedDisplay, tempConfig, EGL_GREEN_SIZE, &green); |
- |
- if (green != expectedGreen) |
- continue; |
- |
- eglGetConfigAttrib(m_sharedDisplay, tempConfig, EGL_BLUE_SIZE, &blue); |
- |
- if (blue != expectedBlue) |
- continue; |
- |
- eglGetConfigAttrib(m_sharedDisplay, tempConfig, EGL_SURFACE_TYPE, &surface); |
- |
- if (surface & expectedSurfaceType) { |
- config = configs[i]; |
- break; |
- } |
- } |
- |
- if ((m_attributes & GLPlatformSurface::SupportAlpha) && !config) { |
- LOG_ERROR("Failed to retrieve EGL Configuration with alpha. Trying to find one without alpha support."); |
- m_attributes &= ~GLPlatformSurface::SupportAlpha; |
- config = createConfig(expectedSurfaceType); |
- } |
- |
- if (!config) |
- LOG_ERROR("Failed to find a valid EGL Configuration."); |
- |
- return config; |
-} |
- |
-} |
- |
-#endif |