Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
third_party
skia
src
gpu
ganesh
d3d
GrD3DTypesMinimal.cpp
Go to the documentation of this file.
1
/*
2
* Copyright 2020 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
#include "
include/private/gpu/ganesh/GrD3DTypesMinimal.h
"
9
10
#include "
include/gpu/d3d/GrD3DTypes.h
"
11
#include "
src/gpu/ganesh/d3d/GrD3DResourceState.h
"
12
#include "
src/gpu/ganesh/d3d/GrD3DTypesPriv.h
"
13
14
GrD3DBackendSurfaceInfo::GrD3DBackendSurfaceInfo
(
const
GrD3DTextureResourceInfo
&
info
,
15
GrD3DResourceState
*
state
)
16
: fTextureResourceInfo(new
GrD3DTextureResourceInfo
(
info
))
17
, fResourceState(
state
) {}
18
19
void
GrD3DBackendSurfaceInfo::cleanup
() {
20
SkSafeUnref
(fResourceState);
21
fResourceState =
nullptr
;
22
delete
fTextureResourceInfo;
23
fTextureResourceInfo =
nullptr
;
24
};
25
26
void
GrD3DBackendSurfaceInfo::assign
(
const
GrD3DBackendSurfaceInfo
& that,
bool
isThisValid) {
27
GrD3DTextureResourceInfo
* oldInfo = fTextureResourceInfo;
28
GrD3DResourceState
* oldLayout = fResourceState;
29
fTextureResourceInfo =
new
GrD3DTextureResourceInfo
(*that.fTextureResourceInfo);
30
fResourceState =
SkSafeRef
(that.fResourceState);
31
if
(isThisValid) {
32
delete
oldInfo;
33
SkSafeUnref
(oldLayout);
34
}
35
}
36
37
void
GrD3DBackendSurfaceInfo::setResourceState
(
GrD3DResourceStateEnum
resourceState) {
38
SkASSERT
(fResourceState);
39
fResourceState->
setResourceState
(
static_cast<
D3D12_RESOURCE_STATES
>
(resourceState));
40
}
41
42
sk_sp<GrD3DResourceState>
GrD3DBackendSurfaceInfo::getGrD3DResourceState
()
const
{
43
SkASSERT
(fResourceState);
44
return
sk_ref_sp
(fResourceState);
45
}
46
47
GrD3DTextureResourceInfo
GrD3DBackendSurfaceInfo::snapTextureResourceInfo
()
const
{
48
return
GrD3DTextureResourceInfo
(
49
*fTextureResourceInfo,
50
static_cast<
D3D12_RESOURCE_STATES
>
(fResourceState->
getResourceState
()));
51
}
52
53
bool
GrD3DBackendSurfaceInfo::isProtected
()
const
{
54
SkASSERT
(fTextureResourceInfo);
55
return
fTextureResourceInfo->
fProtected
== GrProtected::kYes;
56
}
57
58
#if defined(GR_TEST_UTILS)
59
bool
GrD3DBackendSurfaceInfo::operator==(
const
GrD3DBackendSurfaceInfo
& that)
const
{
60
GrD3DTextureResourceInfo
cpyInfoThis = *fTextureResourceInfo;
61
GrD3DTextureResourceInfo
cpyInfoThat = *that.fTextureResourceInfo;
62
// We don't care about the fResourceState here since we require they use the same
63
// GrD3DResourceState.
64
cpyInfoThis.
fResourceState
= D3D12_RESOURCE_STATE_COMMON;
65
cpyInfoThat.
fResourceState
= D3D12_RESOURCE_STATE_COMMON;
66
return
cpyInfoThis == cpyInfoThat && fResourceState == that.fResourceState;
67
}
68
#endif
69
70
GrD3DTextureResourceSpecHolder::GrD3DTextureResourceSpecHolder
(
const
GrD3DSurfaceInfo
&
info
)
71
: fSpec(new
GrD3DTextureResourceSpec
(
info
)) {}
72
73
GrD3DSurfaceInfo
GrD3DTextureResourceSpecHolder::getSurfaceInfo
(uint32_t sampleCount,
74
uint32_t levelCount,
75
GrProtected
isProtected)
const
{
76
SkASSERT
(fSpec);
77
return
GrD3DTextureResourceSpecToSurfaceInfo
(*fSpec, sampleCount, levelCount, isProtected);
78
}
79
80
void
GrD3DTextureResourceSpecHolder::cleanup
() {
81
delete
fSpec;
82
fSpec =
nullptr
;
83
}
info
static void info(const char *fmt,...) SK_PRINTF_LIKE(1
Definition
DM.cpp:213
GrD3DResourceState.h
GrD3DTypesMinimal.h
GrD3DResourceStateEnum
int GrD3DResourceStateEnum
Definition
GrD3DTypesMinimal.h:21
GrD3DTextureResourceSpecToSurfaceInfo
GrD3DSurfaceInfo GrD3DTextureResourceSpecToSurfaceInfo(const GrD3DTextureResourceSpec &d3dSpec, uint32_t sampleCount, uint32_t levelCount, skgpu::Protected isProtected)
Definition
GrD3DTypesPriv.cpp:10
GrD3DTypesPriv.h
GrD3DTypes.h
SkASSERT
#define SkASSERT(cond)
Definition
SkAssert.h:116
SkSafeUnref
static void SkSafeUnref(T *obj)
Definition
SkRefCnt.h:149
SkSafeRef
static T * SkSafeRef(T *obj)
Definition
SkRefCnt.h:140
sk_ref_sp
sk_sp< T > sk_ref_sp(T *obj)
Definition
SkRefCnt.h:381
GrD3DResourceState
Definition
GrD3DResourceState.h:14
GrD3DResourceState::setResourceState
void setResourceState(D3D12_RESOURCE_STATES state)
Definition
GrD3DResourceState.h:18
GrD3DResourceState::getResourceState
D3D12_RESOURCE_STATES getResourceState() const
Definition
GrD3DResourceState.h:23
sk_sp
Definition
SkRefCnt.h:220
state
AtkStateType state
Definition
fl_accessible_node.cc:10
skgpu::Protected
Protected
Definition
GpuTypes.h:61
GrD3DBackendSurfaceInfo
Definition
GrD3DTypesMinimal.h:33
GrD3DBackendSurfaceInfo::GrD3DBackendSurfaceInfo
GrD3DBackendSurfaceInfo(const GrD3DTextureResourceInfo &info, GrD3DResourceState *state)
Definition
GrD3DTypesMinimal.cpp:14
GrD3DBackendSurfaceInfo::assign
void assign(const GrD3DBackendSurfaceInfo &, bool isValid)
Definition
GrD3DTypesMinimal.cpp:26
GrD3DBackendSurfaceInfo::setResourceState
void setResourceState(GrD3DResourceStateEnum state)
Definition
GrD3DTypesMinimal.cpp:37
GrD3DBackendSurfaceInfo::snapTextureResourceInfo
GrD3DTextureResourceInfo snapTextureResourceInfo() const
Definition
GrD3DTypesMinimal.cpp:47
GrD3DBackendSurfaceInfo::getGrD3DResourceState
sk_sp< GrD3DResourceState > getGrD3DResourceState() const
Definition
GrD3DTypesMinimal.cpp:42
GrD3DBackendSurfaceInfo::cleanup
void cleanup()
Definition
GrD3DTypesMinimal.cpp:19
GrD3DBackendSurfaceInfo::isProtected
bool isProtected() const
Definition
GrD3DTypesMinimal.cpp:53
GrD3DSurfaceInfo
Definition
GrD3DTypes.h:239
GrD3DTextureResourceInfo
Definition
GrD3DTypes.h:179
GrD3DTextureResourceInfo::fResourceState
D3D12_RESOURCE_STATES fResourceState
Definition
GrD3DTypes.h:182
GrD3DTextureResourceInfo::fProtected
skgpu::Protected fProtected
Definition
GrD3DTypes.h:187
GrD3DTextureResourceSpecHolder::getSurfaceInfo
GrD3DSurfaceInfo getSurfaceInfo(uint32_t sampleCount, uint32_t levelCount, skgpu::Protected isProtected) const
Definition
GrD3DTypesMinimal.cpp:73
GrD3DTextureResourceSpecHolder::GrD3DTextureResourceSpecHolder
GrD3DTextureResourceSpecHolder(const GrD3DSurfaceInfo &)
Definition
GrD3DTypesMinimal.cpp:70
GrD3DTextureResourceSpecHolder::cleanup
void cleanup()
Definition
GrD3DTypesMinimal.cpp:80
GrD3DTextureResourceSpec
Definition
GrD3DTypesPriv.h:13
Generated on Fri Apr 26 2024 06:16:57 for Flutter Engine by
1.9.8