| Index: chromecast/ozone/cast_egl_platform.h
|
| diff --git a/chromecast/ozone/cast_egl_platform.h b/chromecast/ozone/cast_egl_platform.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..624750919989a19037dfb7d9ecaced2ca8b5eb51
|
| --- /dev/null
|
| +++ b/chromecast/ozone/cast_egl_platform.h
|
| @@ -0,0 +1,69 @@
|
| +// Copyright 2015 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 CHROMECAST_OZONE_CAST_EGL_PLATFORM_H_
|
| +#define CHROMECAST_OZONE_CAST_EGL_PLATFORM_H_
|
| +
|
| +#include "ui/ozone/public/surface_factory_ozone.h"
|
| +
|
| +namespace gfx {
|
| +class Size;
|
| +}
|
| +
|
| +namespace chromecast {
|
| +namespace ozone {
|
| +
|
| +// Interface representing all the hardware-specific elements of an Ozone
|
| +// implementation for Cast. Supply an implementation of this interface
|
| +// to OzonePlatformCast to create a complete Ozone implementation.
|
| +class CastEglPlatform {
|
| + public:
|
| + typedef ui::SurfaceFactoryOzone::AddGLLibraryCallback AddGLLibraryCallback;
|
| + typedef ui::SurfaceFactoryOzone::SetGLGetProcAddressProcCallback
|
| + SetGLGetProcAddressProcCallback;
|
| +
|
| + virtual ~CastEglPlatform() {}
|
| +
|
| + // Default display size is used for initial display and also as a minimum
|
| + // resolution for applications.
|
| + virtual gfx::Size GetDefaultDisplaySize() const = 0;
|
| +
|
| + // Returns an array of EGL properties, which can be used in any EGL function
|
| + // used to select a display configuration. Note that all properties should be
|
| + // immediately followed by the corresponding desired value and array should be
|
| + // terminated with EGL_NONE. Ownership of the array is not transferred to
|
| + // caller. desired_list contains list of desired EGL properties and values.
|
| + virtual const int32* GetEGLSurfaceProperties(const int32* desired_list) = 0;
|
| +
|
| + // Initialize/ShutdownHardware are called at most once each over the object's
|
| + // lifetime. Initialize will be called before creating display type or
|
| + // window. If Initialize fails, return false (Shutdown will still be called).
|
| + virtual bool InitializeHardware() = 0;
|
| + virtual void ShutdownHardware() = 0;
|
| +
|
| + // Called once after hardware successfully initialized. Implementation needs
|
| + // to add the EGL and GLES2 libraries through add_gl_library and also supply
|
| + // a pointer to eglGetProcAddress (or equivalent function).
|
| + virtual bool LoadEGLGLES2Bindings(
|
| + AddGLLibraryCallback add_gl_library,
|
| + SetGLGetProcAddressProcCallback set_gl_get_proc_address) = 0;
|
| +
|
| + // Create/destroy an EGLNativeDisplayType. These may be called multiple times
|
| + // over the object's lifetime, for example to release the display when
|
| + // switching to an external application. There will be at most one display
|
| + // type at a time.
|
| + virtual intptr_t CreateDisplayType(const gfx::Size& size) = 0;
|
| + virtual void DestroyDisplayType(intptr_t display_type) = 0;
|
| +
|
| + // Create/destroy an EGLNativeWindow. There will be at most one window at a
|
| + // time, created within a valid display type.
|
| + virtual intptr_t CreateWindow(intptr_t display_type,
|
| + const gfx::Size& size) = 0;
|
| + virtual void DestroyWindow(intptr_t window) = 0;
|
| +};
|
| +
|
| +} // namespace ozone
|
| +} // namespace chromecast
|
| +
|
| +#endif // CHROMECAST_OZONE_CAST_EGL_PLATFORM_H_
|
|
|