Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
VulkanMutableTextureState.cpp
Go to the documentation of this file.
1/*
2 * Copyright 2023 Google LLC
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
9
15
17
19public:
20 VulkanMutableTextureState(VkImageLayout layout, uint32_t queueFamilyIndex)
21 : fLayout(layout)
22 , fQueueFamilyIndex(queueFamilyIndex) {}
23
24#if defined(SK_DEBUG)
25 BackendApi type() const override { return BackendApi::kVulkan; }
26#endif
27
28 void copyTo(AnyStateData& formatData) const override {
30 }
31
34};
35
36MutableTextureState MakeVulkan(VkImageLayout layout, uint32_t queueFamilyIndex) {
39 VulkanMutableTextureState(layout, queueFamilyIndex));
40}
41
44 SkASSERT(!data || data->type() == BackendApi::kVulkan);
45 return static_cast<const VulkanMutableTextureState*>(data);
46}
47
50 SkASSERT(!data || data->type() == BackendApi::kVulkan);
51 return static_cast<const VulkanMutableTextureState*>(data);
52}
53
56 SkASSERT(!data || data->type() == BackendApi::kVulkan);
57 return static_cast<VulkanMutableTextureState*>(data);
58}
59
64
70
75
80
86
87void SetVkQueueFamilyIndex(MutableTextureState* state, uint32_t queueFamilyIndex) {
88 SkASSERT(state->backend() == BackendApi::kVulkan);
89 get_and_cast_data(state)->fQueueFamilyIndex = queueFamilyIndex;
90}
91
92} // namespace skgpu::MutableTextureStates
#define SkASSERT(cond)
Definition SkAssert.h:116
void emplace(Args &&... args)
static const MutableTextureStateData * GetStateData(const MutableTextureState &mts)
static MutableTextureState MakeMutableTextureState(BackendApi backend, const StateData &data)
void copyTo(AnyStateData &formatData) const override
VulkanMutableTextureState(VkImageLayout layout, uint32_t queueFamilyIndex)
AtkStateType state
void SetVkImageLayout(MutableTextureState *state, VkImageLayout layout)
SK_API uint32_t GetVkQueueFamilyIndex(const MutableTextureState &state)
SK_API MutableTextureState MakeVulkan(VkImageLayout layout, uint32_t queueFamilyIndex)
void SetVkQueueFamilyIndex(MutableTextureState *state, uint32_t queueFamilyIndex)
SK_API VkImageLayout GetVkImageLayout(const MutableTextureState &state)
static const VulkanMutableTextureState * get_and_cast_data(const MutableTextureState &mts)
BackendApi
Definition GpuTypes.h:22
VkImageLayout