Flutter Engine
The Flutter Engine
third_party
skia
include
gpu
graphite
BackendSemaphore.h
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
8
#ifndef skgpu_graphite_BackendSemaphore_DEFINED
9
#define skgpu_graphite_BackendSemaphore_DEFINED
10
11
#include "
include/core/SkRefCnt.h
"
12
#include "
include/gpu/graphite/GraphiteTypes.h
"
13
14
#ifdef SK_METAL
15
#include "
include/gpu/graphite/mtl/MtlGraphiteTypes.h
"
16
#endif
17
18
#ifdef SK_VULKAN
19
#include "
include/private/gpu/vk/SkiaVulkan.h
"
20
#endif
21
22
namespace
skgpu::graphite
{
23
24
class
SK_API
BackendSemaphore
{
25
public
:
26
BackendSemaphore
();
27
#ifdef SK_METAL
28
// TODO: Determine creator's responsibility for setting refcnt.
29
BackendSemaphore
(CFTypeRef mtlEvent, uint64_t
value
);
30
#endif
31
32
#ifdef SK_VULKAN
33
BackendSemaphore
(VkSemaphore semaphore);
34
#endif
35
36
BackendSemaphore
(
const
BackendSemaphore
&);
37
38
~BackendSemaphore
();
39
40
BackendSemaphore
& operator=(
const
BackendSemaphore
&);
41
42
bool
isValid
()
const
{
return
fIsValid; }
43
BackendApi
backend
()
const
{
return
fBackend; }
44
45
#ifdef SK_METAL
46
CFTypeRef getMtlEvent()
const
;
47
uint64_t getMtlValue()
const
;
48
#endif
49
50
#ifdef SK_VULKAN
51
VkSemaphore getVkSemaphore()
const
;
52
#endif
53
54
private
:
55
// TODO: For now, implement as a union until we figure out the plan for this and BackendTexture.
56
union
{
57
#ifdef SK_DAWN
58
// TODO: WebGPU doesn't seem to have the notion of an Event or Semaphore
59
#endif
60
#ifdef SK_METAL
61
struct
{
62
CFTypeRef fMtlEvent;
// Expected to be an id<MTLEvent>
63
uint64_t fMtlValue;
64
};
65
#endif
66
#ifdef SK_VULKAN
67
VkSemaphore fVkSemaphore;
68
#endif
69
void
*
fEnsureUnionNonEmpty
;
70
};
71
bool
fIsValid =
false
;
72
BackendApi
fBackend;
73
};
74
75
}
// namespace skgpu::graphite
76
77
#endif
// skgpu_graphite_BackendSemaphore_DEFINED
78
GraphiteTypes.h
MtlGraphiteTypes.h
SK_API
#define SK_API
Definition:
SkAPI.h:35
SkRefCnt.h
SkiaVulkan.h
skgpu::graphite::BackendSemaphore
Definition:
BackendSemaphore.h:24
skgpu::graphite::BackendSemaphore::BackendSemaphore
BackendSemaphore()
skgpu::graphite::BackendSemaphore::isValid
bool isValid() const
Definition:
BackendSemaphore.h:42
skgpu::graphite::BackendSemaphore::backend
BackendApi backend() const
Definition:
BackendSemaphore.h:43
skgpu::graphite::BackendSemaphore::fEnsureUnionNonEmpty
void * fEnsureUnionNonEmpty
Definition:
BackendSemaphore.h:69
skgpu::graphite::BackendSemaphore::~BackendSemaphore
~BackendSemaphore()
value
uint8_t value
Definition:
fl_standard_message_codec.cc:36
skgpu::graphite
Definition:
BoundsManagerBench.cpp:27
skgpu::BackendApi
BackendApi
Definition:
GpuTypes.h:22
Generated on Sun Jun 23 2024 21:56:02 for Flutter Engine by
1.9.4