Index: platform_tools/android/apps/visualbench/src/main/jni/SkOSWindow_AndroidNative.cpp |
diff --git a/platform_tools/android/apps/visualbench/src/main/jni/SkOSWindow_AndroidNative.cpp b/platform_tools/android/apps/visualbench/src/main/jni/SkOSWindow_AndroidNative.cpp |
deleted file mode 100644 |
index df7e74b45b35f4cf6beeca24ceefdc1b1d0c7045..0000000000000000000000000000000000000000 |
--- a/platform_tools/android/apps/visualbench/src/main/jni/SkOSWindow_AndroidNative.cpp |
+++ /dev/null |
@@ -1,200 +0,0 @@ |
-/* |
- * Copyright 2015 Google Inc. |
- * |
- * Use of this source code is governed by a BSD-style license that can be |
- * found in the LICENSE file. |
- */ |
- |
-#include "SkOSWindow_Android.h" |
- |
-#include <GLES/gl.h> |
- |
-SkOSWindow::SkOSWindow(void* hwnd) { |
- fWindow.fDisplay = EGL_NO_DISPLAY; |
- fWindow.fContext = EGL_NO_CONTEXT; |
- fWindow.fSurface = EGL_NO_SURFACE; |
- fNativeWindow = (ANativeWindow*)hwnd; |
- fDestroyRequested = false; |
-} |
- |
-SkOSWindow::~SkOSWindow() { |
- this->release(); |
-} |
- |
-bool SkOSWindow::attach(SkBackEndTypes attachType, |
- int /*msaaSampleCount*/, |
- bool /*deepColor*/, |
- AttachmentInfo* info) { |
- static const EGLint kEGLContextAttribsForOpenGL[] = { |
- EGL_NONE |
- }; |
- |
- static const EGLint kEGLContextAttribsForOpenGLES[] = { |
- EGL_CONTEXT_CLIENT_VERSION, 2, |
- EGL_NONE |
- }; |
- |
- static const struct { |
- const EGLint* fContextAttribs; |
- EGLenum fAPI; |
- EGLint fRenderableTypeBit; |
- } kAPIs[] = { |
- { // OpenGL |
- kEGLContextAttribsForOpenGL, |
- EGL_OPENGL_API, |
- EGL_OPENGL_BIT, |
- }, |
- { // OpenGL ES. This seems to work for both ES2 and 3 (when available). |
- kEGLContextAttribsForOpenGLES, |
- EGL_OPENGL_ES_API, |
- EGL_OPENGL_ES2_BIT, |
- }, |
- }; |
- |
- EGLDisplay display = eglGetDisplay(EGL_DEFAULT_DISPLAY); |
- if (EGL_NO_DISPLAY == display) { |
- return false; |
- } |
- |
- EGLint majorVersion; |
- EGLint minorVersion; |
- if (!eglInitialize(display, &majorVersion, &minorVersion)) { |
- return false; |
- } |
- |
- for (size_t api = 0; api < SK_ARRAY_COUNT(kAPIs); ++api) { |
- if (!eglBindAPI(kAPIs[api].fAPI)) { |
- continue; |
- } |
-#if 0 |
- SkDebugf("VENDOR: %s\n", eglQueryString(fDisplay, EGL_VENDOR)); |
- SkDebugf("APIS: %s\n", eglQueryString(fDisplay, EGL_CLIENT_APIS)); |
- SkDebugf("VERSION: %s\n", eglQueryString(fDisplay, EGL_VERSION)); |
- SkDebugf("EXTENSIONS %s\n", eglQueryString(fDisplay, EGL_EXTENSIONS)); |
-#endif |
- |
- const EGLint configAttribs[] = { |
- EGL_SURFACE_TYPE, EGL_PBUFFER_BIT, |
- EGL_RENDERABLE_TYPE, kAPIs[api].fRenderableTypeBit, |
- EGL_RED_SIZE, 8, |
- EGL_GREEN_SIZE, 8, |
- EGL_BLUE_SIZE, 8, |
- EGL_ALPHA_SIZE, 8, |
- EGL_NONE |
- }; |
- |
- EGLint format; |
- EGLint numConfigs; |
- EGLConfig config; |
- EGLSurface surface; |
- EGLContext context; |
- |
- /* Here, the application chooses the configuration it desires. In this |
- * sample, we have a very simplified selection process, where we pick |
- * the first EGLConfig that matches our criteria */ |
- if (!eglChooseConfig(display, configAttribs, &config, 1, &numConfigs) || |
- numConfigs != 1) { |
- continue; |
- } |
- |
- /* EGL_NATIVE_VISUAL_ID is an attribute of the EGLConfig that is |
- * guaranteed to be accepted by ANativeWindow_setBuffersGeometry(). |
- * As soon as we picked a EGLConfig, we can safely reconfigure the |
- * ANativeWindow buffers to match, using EGL_NATIVE_VISUAL_ID. */ |
- if (!eglGetConfigAttrib(display, config, EGL_NATIVE_VISUAL_ID, &format)) { |
- continue; |
- } |
- |
- ANativeWindow_setBuffersGeometry(fNativeWindow, 0, 0, format); |
- |
- surface = eglCreateWindowSurface(display, config, fNativeWindow, nullptr); |
- if (EGL_NO_SURFACE == surface) { |
- SkDebugf("eglCreateWindowSurface failed. EGL Error: 0x%08x\n", eglGetError()); |
- continue; |
- } |
- context = eglCreateContext(display, config, nullptr, kAPIs[api].fContextAttribs); |
- if (EGL_NO_CONTEXT == context) { |
- SkDebugf("eglCreateContext failed. EGL Error: 0x%08x\n", eglGetError()); |
- eglDestroySurface(display, surface); |
- continue; |
- } |
- |
- if (!eglMakeCurrent(display, surface, surface, context)) { |
- SkDebugf("eglMakeCurrent failed. EGL Error: 0x%08x\n", eglGetError()); |
- eglDestroyContext(display, context); |
- eglDestroySurface(display, surface); |
- continue; |
- } |
- |
- fWindow.fDisplay = display; |
- fWindow.fContext = context; |
- fWindow.fSurface = surface; |
- break; |
- } |
- |
- if (fWindow.fDisplay && fWindow.fContext && fWindow.fSurface) { |
- EGLint w, h; |
- eglQuerySurface(fWindow.fDisplay, fWindow.fSurface, EGL_WIDTH, &w); |
- eglQuerySurface(fWindow.fDisplay, fWindow.fSurface, EGL_HEIGHT, &h); |
- |
- glViewport(0, 0, w, h); |
- glClearColor(0.0, 0, 0, 0.0); |
- glClearStencil(0); |
- glClear(GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); |
- |
- // We retrieve the fullscreen width and height |
- this->setSize((SkScalar)w, (SkScalar)h); |
- return true; |
- } else { |
- return false; |
- } |
-} |
- |
-void SkOSWindow::release() { |
- if (fWindow.fDisplay != EGL_NO_DISPLAY) { |
- eglMakeCurrent(fWindow.fDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); |
- if (fWindow.fContext != EGL_NO_CONTEXT) { |
- eglDestroyContext(fWindow.fDisplay, fWindow.fContext); |
- } |
- if (fWindow.fSurface != EGL_NO_SURFACE) { |
- eglDestroySurface(fWindow.fDisplay, fWindow.fSurface); |
- } |
- eglTerminate(fWindow.fDisplay); |
- } |
- fWindow.fDisplay = EGL_NO_DISPLAY; |
- fWindow.fContext = EGL_NO_CONTEXT; |
- fWindow.fSurface = EGL_NO_SURFACE; |
-} |
- |
-void SkOSWindow::present() { |
- if (fWindow.fDisplay != EGL_NO_DISPLAY && fWindow.fContext != EGL_NO_CONTEXT) { |
- eglSwapBuffers(fWindow.fDisplay, fWindow.fSurface); |
- } |
-} |
- |
-void SkOSWindow::closeWindow() { |
- fDestroyRequested = true; |
-} |
- |
-void SkOSWindow::setVsync(bool vsync) { |
- if (fWindow.fDisplay != EGL_NO_DISPLAY) { |
- int swapInterval = vsync ? 1 : 0; |
- eglSwapInterval(fWindow.fDisplay, swapInterval); |
- } |
-} |
- |
-void SkOSWindow::onSetTitle(const char title[]) { |
-} |
- |
-void SkOSWindow::onHandleInval(const SkIRect& rect) { |
-} |
- |
-/////////////////////////////////////////// |
-/////////////// SkEvent impl ////////////// |
-/////////////////////////////////////////// |
- |
-void SkEvent::SignalQueueTimer(SkMSec ms) { |
-} |
- |
-void SkEvent::SignalNonEmptyQueue() { |
-} |