| 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_
|
|
|