| // Copyright 2016 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_GL_INIT_OZONE_UTIL_H_ |
| #define UI_GL_INIT_OZONE_UTIL_H_ |
| |
| #include "base/macros.h" |
| #include "ui/gl/gl_implementation.h" |
| #include "ui/ozone/public/gl_ozone.h" |
| #include "ui/ozone/public/ozone_platform.h" |
| #include "ui/ozone/public/surface_factory_ozone.h" |
| |
| namespace gl { |
| namespace init { |
| |
| inline ui::SurfaceFactoryOzone* GetSurfaceFactoryOzone() { |
| return ui::OzonePlatform::GetInstance()->GetSurfaceFactoryOzone(); |
| } |
| |
| // Returns true if there is an GLOzone for the specified GL implementation. |
| inline bool HasGLOzone(GLImplementation impl) { |
| return GetSurfaceFactoryOzone() && GetSurfaceFactoryOzone()->GetGLOzone(impl); |
| } |
| |
| // Returns true if there is an GLOzone for the set GL implementation. |
| inline bool HasGLOzone() { |
| return HasGLOzone(GetGLImplementation()); |
| } |
| |
| // Returns the GLOzone for the specified GL implementation or null if none |
| // exists. |
| inline ui::GLOzone* GetGLOzone(GLImplementation impl) { |
| return GetSurfaceFactoryOzone()->GetGLOzone(impl); |
| } |
| |
| // Returns the GLOzone for the set GL implementation or null if none exists. |
| inline ui::GLOzone* GetGLOzone() { |
| return GetGLOzone(GetGLImplementation()); |
| } |
| |
| } // namespace init |
| } // namespace gl |
| |
| #endif // UI_GL_INIT_OZONE_UTIL_H_ |