blob: c2f49d65a1f0d3d6453325ab1d16b3b5db035526 [file] [log] [blame]
/*
* 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