Flutter Engine
The Flutter Engine
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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
16
18
20public:
21 VulkanMutableTextureState(VkImageLayout layout, uint32_t queueFamilyIndex)
22 : fLayout(layout)
23 , fQueueFamilyIndex(queueFamilyIndex) {}
24
25#if defined(SK_DEBUG)
26 BackendApi type() const override { return BackendApi::kVulkan; }
27#endif
28
29 void copyTo(AnyStateData& formatData) const override {
31 }
32
35};
36
37MutableTextureState MakeVulkan(VkImageLayout layout, uint32_t queueFamilyIndex) {
40 VulkanMutableTextureState(layout, queueFamilyIndex));
41}
42
45 SkASSERT(!data || data->type() == BackendApi::kVulkan);
46 return static_cast<const VulkanMutableTextureState*>(data);
47}
48
51 SkASSERT(!data || data->type() == BackendApi::kVulkan);
52 return static_cast<const VulkanMutableTextureState*>(data);
53}
54
57 SkASSERT(!data || data->type() == BackendApi::kVulkan);
58 return static_cast<VulkanMutableTextureState*>(data);
59}
60
64}
65
68 SkASSERT(state->backend() == BackendApi::kVulkan);
70}
71
73 SkASSERT(state->backend() == BackendApi::kVulkan);
75}
76
80}
81
84 SkASSERT(state->backend() == BackendApi::kVulkan);
86}
87
88void SetVkQueueFamilyIndex(MutableTextureState* state, uint32_t queueFamilyIndex) {
89 SkASSERT(state->backend() == BackendApi::kVulkan);
90 get_and_cast_data(state)->fQueueFamilyIndex = queueFamilyIndex;
91}
92
93} // namespace skgpu::MutableTextureStates
#define SkASSERT(cond)
Definition: SkAssert.h:116
GLenum type
void emplace(Args &&... args)
Definition: SkAnySubclass.h:38
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
std::shared_ptr< const fml::Mapping > data
Definition: texture_gles.cc:63
VkImageLayout
Definition: vulkan_core.h:1330