/* * Copyright 2023 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef ContextType_DEFINED #define ContextType_DEFINED enum class GrBackendApi : unsigned; namespace skgpu { enum class BackendApi : unsigned; // The availability of context types is subject to platform and build configuration // restrictions. enum class ContextType { kGL, //! OpenGL context. kGLES, //! OpenGL ES context. kANGLE_D3D9_ES2, //! ANGLE on Direct3D9 OpenGL ES 2 context. kANGLE_D3D11_ES2, //! ANGLE on Direct3D11 OpenGL ES 2 context. kANGLE_D3D11_ES3, //! ANGLE on Direct3D11 OpenGL ES 3 context. kANGLE_GL_ES2, //! ANGLE on OpenGL OpenGL ES 2 context. kANGLE_GL_ES3, //! ANGLE on OpenGL OpenGL ES 3 context. kANGLE_Metal_ES2, //! ANGLE on Metal ES 2 context. kANGLE_Metal_ES3, //! ANGLE on Metal ES 3 context. kVulkan, //! Vulkan kMetal, //! Metal kDirect3D, //! Direct3D 12 kDawn_D3D11, //! Dawn on Direct3D11 kDawn_D3D12, //! Dawn on Direct3D12 kDawn_Metal, //! Dawn on Metal kDawn_Vulkan, //! Dawn on Vulkan kDawn_OpenGL, //! Dawn on OpenGL kDawn_OpenGLES, //! Dawn on OpenGL ES kMock, //! Mock context that does not draw. kLastContextType = kMock }; static const int kContextTypeCount = (int)ContextType::kLastContextType + 1; const char* ContextTypeName(skgpu::ContextType type); bool IsNativeBackend(skgpu::ContextType type); bool IsDawnBackend(skgpu::ContextType type); bool IsRenderingContext(skgpu::ContextType type); namespace ganesh { GrBackendApi ContextTypeBackend(skgpu::ContextType type); } // namespace ganesh namespace graphite { skgpu::BackendApi ContextTypeBackend(skgpu::ContextType type); } // namespace graphite } // namespace skgpu #endif