| /* | |
| * Copyright 2022 Google LLC | |
| * | |
| * Use of this source code is governed by a BSD-style license that can be | |
| * found in the LICENSE file. | |
| */ | |
| #ifndef skgpu_GpuTypes_DEFINED | |
| #define skgpu_GpuTypes_DEFINED | |
| #include "include/core/SkTypes.h" | |
| #include "include/private/SkMacros.h" | |
| /** | |
| * This file includes numerous public types that are used by all of our gpu backends. | |
| */ | |
| namespace skgpu { | |
| /** | |
| * Possible 3D APIs that may be used by Graphite. | |
| */ | |
| enum class BackendApi : unsigned { | |
| kDawn, | |
| kMetal, | |
| kVulkan, | |
| kMock, | |
| /** | |
| * Graphite doesn't support some context types (e.g. Direct3D) and will return Unsupported. | |
| */ | |
| kUnsupported, | |
| }; | |
| /** Indicates whether an allocation should count against a cache budget. */ | |
| enum class Budgeted : bool { | |
| kNo = false, | |
| kYes = true, | |
| }; | |
| /** | |
| * Value passed into various callbacks to tell the client the result of operations connected to a | |
| * specific callback. The actual interpretation of kFailed and kSuccess are dependent on the | |
| * specific callbacks and are documented with the callback itself. | |
| */ | |
| enum class CallbackResult : bool { | |
| kFailed = false, | |
| kSuccess = true, | |
| }; | |
| /** | |
| * Is the texture mipmapped or not | |
| */ | |
| enum class Mipmapped : bool { | |
| kNo = false, | |
| kYes = true, | |
| }; | |
| /** | |
| * Is the data protected on the GPU or not. | |
| */ | |
| enum class Protected : bool { | |
| kNo = false, | |
| kYes = true, | |
| }; | |
| /** | |
| * Is a texture renderable or not | |
| */ | |
| enum class Renderable : bool { | |
| kNo = false, | |
| kYes = true, | |
| }; | |
| /** | |
| * What is the logical origin of a BackendTexture passed into Skia | |
| */ | |
| enum class Origin : unsigned { | |
| kTopLeft, | |
| kBottomLeft, | |
| }; | |
| enum class GpuStatsFlags : uint32_t { | |
| kNone = 0b00, | |
| kElapsedTime = 0b01, | |
| kOcclusionPassSamples = 0b10, | |
| }; | |
| SK_MAKE_BITFIELD_CLASS_OPS(GpuStatsFlags) | |
| struct GpuStats { | |
| uint64_t elapsedTime = 0; | |
| uint64_t numOcclusionPassSamples = 0; | |
| }; | |
| } // namespace skgpu | |
| #endif // skgpu_GpuTypes_DEFINED |