Index: ui/base/ozone/surface_factory_ozone.h |
diff --git a/ui/base/ozone/surface_factory_ozone.h b/ui/base/ozone/surface_factory_ozone.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c9c33514b5c47a32351de0ec9bef43e434023b8f |
--- /dev/null |
+++ b/ui/base/ozone/surface_factory_ozone.h |
@@ -0,0 +1,70 @@ |
+// Copyright (c) 2013 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. |
+ |
+#ifndef UI_BASE_OZONE_SURFACE_LNUX_FACTORY_OZONE_H_ |
+#define UI_BASE_OZONE_SURFACE_LNUX_FACTORY_OZONE_H_ |
+ |
+#include "ui/gfx/native_widget_types.h" |
+ |
+namespace gfx { |
+class VSyncProvider; |
+} // namespace gfx |
+ |
+namespace ui { |
+ |
+class SurfaceFactoryOzone { |
+ public: |
+ SurfaceFactoryOzone(); |
+ virtual ~SurfaceFactoryOzone(); |
+ |
+ // Returns the instance |
+ static SurfaceFactoryOzone* GetInstance(); |
+ |
+ // Returns a display spec as in |CreateDisplayFromSpec| for the default |
+ // native surface. |
+ virtual const char* DefaultDisplaySpec(); |
+ |
+ // Sets the implementation delegate. |
+ static void SetInstance(SurfaceFactoryOzone* impl); |
+ |
+ // TODO(rjkroege): Add a status code if necessary. |
+ // Configures the display hardware. Must be called from within the GPU |
+ // process before the sandbox has been activated. |
+ virtual void InitializeHardware() = 0; |
+ |
+ // Cleans up display hardware state. Call this from within the GPU process. |
+ // This method must be safe to run inside of the sandbox. |
+ virtual void ShutdownHardware() = 0; |
+ |
+ // Obtains an AcceleratedWidget backed by a native Linux framebuffer. |
+ // The returned AcceleratedWidget is an opaque token that must realized |
+ // before it can be used to create a GL surface. |
+ virtual gfx::AcceleratedWidget GetAcceleratedWidget() = 0; |
+ |
+ // Realizes an AcceleratedWidget so that the returned AcceleratedWidget |
+ // can be used to to create a GLSurface. This method may only be called in |
+ // a process that has a valid GL context. |
+ virtual gfx::AcceleratedWidget RealizeAcceleratedWidget( |
+ gfx::AcceleratedWidget w) = 0; |
+ |
+ // Sets up GL bindings for the native surface. |
+ virtual bool LoadEGLGLES2Bindings() = 0; |
+ |
+ // Tests if the given AcceleratedWidget instance can be resized. (Native |
+ // hardware may only support a single fixed size.) |
+ // Perhaps, this should be "attempt to resize the accelerated widget"? |
+ virtual bool AcceleratedWidgetCanBeResized(gfx::AcceleratedWidget w) = 0; |
+ |
+ // Returns a gfx::VsyncProvider for the provided AcceleratedWidget. Note |
+ // that this may be called after we have entered the sandbox so if there are |
+ // operations (e.g. opening a file descriptor providing vsync events) that |
+ // must be done outside of the sandbox, they must have been completed |
+ // in InitializeHardware. Returns NULL on error. |
+ virtual gfx::VSyncProvider* GetVSyncProvider(gfx::AcceleratedWidget w) = 0; |
+}; |
+ |
+} // namespace ui |
+ |
+ |
+#endif // UI_BASE_OZONE_SURFACE_LNUX_FACTORY_OZONE_H_ |