Index: gpu/khronos_glcts_support/native/egl_native_windowless.cc |
diff --git a/gpu/khronos_glcts_support/native/egl_native_windowless.cc b/gpu/khronos_glcts_support/native/egl_native_windowless.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..256b60bd13e64684b1d70540a8ba00dd5107acd0 |
--- /dev/null |
+++ b/gpu/khronos_glcts_support/native/egl_native_windowless.cc |
@@ -0,0 +1,75 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+// Using egl_native from gles2_conform_support |
+// TODO: We may want to phase out the old gles2_conform support in preference |
+// of this implementation. So eventually we'll need to move the egl_native |
+// stuff here or to a shareable location/path. |
+#include "gpu/gles2_conform_support/egl/display.h" |
+ |
+#include "third_party/khronos_glcts/framework/egl/tcuEglPlatform.hpp" |
+ |
+namespace egl { |
+namespace native { |
+namespace windowless { |
+ |
+class Window : public tcu::NativeWindow { |
+ public: |
piman
2014/09/11 21:39:19
Can we update this file to the chromium style - e.
U. Artie Eoff
2014/09/11 22:11:57
Done.
|
+ Window(tcu::egl::Display& display, EGLConfig config, |
+ const EGLint* attribList, int width, int height) |
+ : tcu::NativeWindow::NativeWindow(), |
+ eglDisplay_(display), |
+ eglSurface_(display, config, (EGLNativeWindowType)NULL, attribList) { |
+ } |
+ |
+ virtual ~Window() { |
+ } |
+ |
+ tcu::egl::Display& getEglDisplay() { |
+ return eglDisplay_; |
+ } |
+ |
+ tcu::egl::WindowSurface& getEglSurface() { |
+ return eglSurface_; |
+ } |
+ |
+ void processEvents() { |
+ return; |
+ } |
+ |
+ private: |
+ tcu::egl::Display& eglDisplay_; |
+ tcu::egl::WindowSurface eglSurface_; |
+}; |
+ |
+class Platform : public tcu::EglPlatform { |
+ public: |
+ Platform() |
+ : tcu::EglPlatform::EglPlatform() { |
+ } |
+ |
+ virtual ~Platform() { |
+ } |
+ |
+ tcu::NativeWindow* createWindow(tcu::NativeDisplay& dpy, |
+ EGLConfig config, |
+ const EGLint* attribList, |
+ int width, int height, |
+ qpVisibility visibility) { |
+ tcu::egl::Display& eglDisplay = dpy.getEglDisplay(); |
+ egl::Display* display = static_cast<egl::Display*>( |
+ eglDisplay.getEGLDisplay()); |
+ display->SetCreateOffscreen(width, height); |
+ return new Window(eglDisplay, config, attribList, width, height); |
+ } |
+}; |
+ |
+} // namespace windowless |
+} // namespace native |
+} // namespace egl |
+ |
+tcu::Platform* createPlatform (void) |
+{ |
+ return new egl::native::windowless::Platform(); |
+} |