Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
third_party
skia
src
gpu
ganesh
mock
GrMockCaps.cpp
Go to the documentation of this file.
1
/*
2
* Copyright 2019 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 "
src/gpu/ganesh/mock/GrMockCaps.h
"
9
10
#include "
src/base/SkMathPriv.h
"
11
#include "
src/gpu/ganesh/GrProgramDesc.h
"
12
#include "
src/gpu/ganesh/TestFormatColorTypeCombination.h
"
13
14
int
GrMockCaps::getRenderTargetSampleCount
(
int
requestCount,
GrColorType
ct)
const
{
15
requestCount = std::max(requestCount, 1);
16
17
switch
(fOptions.
fConfigOptions
[(
int
)ct].
fRenderability
) {
18
case
GrMockOptions::ConfigOptions::Renderability::kNo
:
19
return
0;
20
case
GrMockOptions::ConfigOptions::Renderability::kNonMSAA
:
21
return
requestCount > 1 ? 0 : 1;
22
case
GrMockOptions::ConfigOptions::Renderability::kMSAA
:
23
return
requestCount > kMaxSampleCnt ? 0 :
GrNextPow2
(requestCount);
24
}
25
return
0;
26
}
27
28
GrProgramDesc
GrMockCaps::makeDesc
(
GrRenderTarget
*
/* rt */
,
29
const
GrProgramInfo
& programInfo,
30
ProgramDescOverrideFlags
overrideFlags)
const
{
31
SkASSERT
(overrideFlags ==
ProgramDescOverrideFlags::kNone
);
32
GrProgramDesc
desc;
33
GrProgramDesc::Build
(&desc, programInfo, *
this
);
34
return
desc;
35
}
36
37
uint64_t
GrMockCaps::computeFormatKey
(
const
GrBackendFormat
&
format
)
const
{
38
#ifdef SK_DEBUG
39
SkTextureCompressionType
compression =
format
.asMockCompressionType();
40
SkASSERT
(compression ==
SkTextureCompressionType::kNone
);
41
#endif
42
auto
ct =
format
.asMockColorType();
43
return
(uint64_t)ct;
44
}
45
46
#if defined(GR_TEST_UTILS)
47
std::vector<GrTest::TestFormatColorTypeCombination> GrMockCaps::getTestingCombinations()
const
{
48
// TODO: need to add compressed formats to this list
49
std::vector<GrTest::TestFormatColorTypeCombination> combos = {
50
{
GrColorType::kAlpha_8
,
GrBackendFormat::MakeMock
(
GrColorType::kAlpha_8
,
51
SkTextureCompressionType::kNone
)},
52
{
GrColorType::kBGR_565
,
GrBackendFormat::MakeMock
(
GrColorType::kBGR_565
,
53
SkTextureCompressionType::kNone
)},
54
{
GrColorType::kRGB_565
,
GrBackendFormat::MakeMock
(
GrColorType::kRGB_565
,
55
SkTextureCompressionType::kNone
)},
56
{
GrColorType::kABGR_4444
,
GrBackendFormat::MakeMock
(
GrColorType::kABGR_4444
,
57
SkTextureCompressionType::kNone
)},
58
{
GrColorType::kRGBA_8888
,
GrBackendFormat::MakeMock
(
GrColorType::kRGBA_8888
,
59
SkTextureCompressionType::kNone
)},
60
{
GrColorType::kRGBA_8888_SRGB
,
GrBackendFormat::MakeMock
(
GrColorType::kRGBA_8888_SRGB
,
61
SkTextureCompressionType::kNone
)},
62
{
GrColorType::kRGB_888x
,
GrBackendFormat::MakeMock
(
GrColorType::kRGB_888x
,
63
SkTextureCompressionType::kNone
)},
64
{
GrColorType::kRG_88
,
GrBackendFormat::MakeMock
(
GrColorType::kRG_88
,
65
SkTextureCompressionType::kNone
)},
66
{
GrColorType::kBGRA_8888
,
GrBackendFormat::MakeMock
(
GrColorType::kBGRA_8888
,
67
SkTextureCompressionType::kNone
)},
68
{
GrColorType::kRGBA_1010102
,
GrBackendFormat::MakeMock
(
GrColorType::kRGBA_1010102
,
69
SkTextureCompressionType::kNone
)},
70
{
GrColorType::kBGRA_1010102
,
GrBackendFormat::MakeMock
(
GrColorType::kBGRA_1010102
,
71
SkTextureCompressionType::kNone
)},
72
{
GrColorType::kGray_8
,
GrBackendFormat::MakeMock
(
GrColorType::kGray_8
,
73
SkTextureCompressionType::kNone
)},
74
{
GrColorType::kAlpha_F16
,
GrBackendFormat::MakeMock
(
GrColorType::kAlpha_F16
,
75
SkTextureCompressionType::kNone
)},
76
{
GrColorType::kRGBA_F16
,
GrBackendFormat::MakeMock
(
GrColorType::kRGBA_F16
,
77
SkTextureCompressionType::kNone
)},
78
{
GrColorType::kRGBA_F16_Clamped
,
GrBackendFormat::MakeMock
(
GrColorType::kRGBA_F16_Clamped
,
79
SkTextureCompressionType::kNone
)},
80
{
GrColorType::kAlpha_16
,
GrBackendFormat::MakeMock
(
GrColorType::kAlpha_16
,
81
SkTextureCompressionType::kNone
)},
82
{
GrColorType::kRG_1616
,
GrBackendFormat::MakeMock
(
GrColorType::kRG_1616
,
83
SkTextureCompressionType::kNone
)},
84
{
GrColorType::kRGBA_16161616
,
GrBackendFormat::MakeMock
(
GrColorType::kRGBA_16161616
,
85
SkTextureCompressionType::kNone
)},
86
{
GrColorType::kRG_F16
,
GrBackendFormat::MakeMock
(
GrColorType::kRG_F16
,
87
SkTextureCompressionType::kNone
)},
88
// For these two compressed image formats the color type will effectively be RGB_888x
89
{
GrColorType::kRGB_888x
,
GrBackendFormat::MakeMock
(
GrColorType::kUnknown
,
90
SkTextureCompressionType::kETC2_RGB8_UNORM
)},
91
{
GrColorType::kRGB_888x
,
GrBackendFormat::MakeMock
(
GrColorType::kUnknown
,
92
SkTextureCompressionType::kBC1_RGB8_UNORM
)},
93
{
GrColorType::kRGBA_8888
,
GrBackendFormat::MakeMock
(
GrColorType::kUnknown
,
94
SkTextureCompressionType::kBC1_RGBA8_UNORM
)},
95
};
96
97
#ifdef SK_DEBUG
98
for
(
const
GrTest::TestFormatColorTypeCombination
& combo : combos) {
99
SkASSERT
(this->
onAreColorTypeAndFormatCompatible
(combo.fColorType, combo.fFormat));
100
}
101
#endif
102
103
return
combos;
104
}
105
106
#endif
GrMockCaps.h
GrProgramDesc.h
GrColorType
GrColorType
Definition
GrTypesPriv.h:539
GrColorType::kRGBA_8888
@ kRGBA_8888
GrColorType::kUnknown
@ kUnknown
GrColorType::kAlpha_8
@ kAlpha_8
GrColorType::kBGR_565
@ kBGR_565
GrColorType::kBGRA_1010102
@ kBGRA_1010102
GrColorType::kAlpha_16
@ kAlpha_16
GrColorType::kRGBA_F16_Clamped
@ kRGBA_F16_Clamped
GrColorType::kABGR_4444
@ kABGR_4444
GrColorType::kRGBA_8888_SRGB
@ kRGBA_8888_SRGB
GrColorType::kRGB_565
@ kRGB_565
GrColorType::kRG_F16
@ kRG_F16
GrColorType::kRGBA_1010102
@ kRGBA_1010102
GrColorType::kRGB_888x
@ kRGB_888x
GrColorType::kAlpha_F16
@ kAlpha_F16
GrColorType::kRGBA_16161616
@ kRGBA_16161616
GrColorType::kRGBA_F16
@ kRGBA_F16
GrColorType::kBGRA_8888
@ kBGRA_8888
GrColorType::kGray_8
@ kGray_8
GrColorType::kRG_88
@ kRG_88
GrColorType::kRG_1616
@ kRG_1616
SkASSERT
#define SkASSERT(cond)
Definition
SkAssert.h:116
SkMathPriv.h
GrNextPow2
static uint32_t GrNextPow2(uint32_t n)
Definition
SkMathPriv.h:302
SkTextureCompressionType
SkTextureCompressionType
Definition
SkTextureCompressionType.h:20
SkTextureCompressionType::kBC1_RGBA8_UNORM
@ kBC1_RGBA8_UNORM
SkTextureCompressionType::kNone
@ kNone
SkTextureCompressionType::kETC2_RGB8_UNORM
@ kETC2_RGB8_UNORM
SkTextureCompressionType::kBC1_RGB8_UNORM
@ kBC1_RGB8_UNORM
TestFormatColorTypeCombination.h
GrBackendFormat
Definition
GrBackendSurface.h:44
GrBackendFormat::MakeMock
static GrBackendFormat MakeMock(GrColorType colorType, SkTextureCompressionType compression, bool isStencilFormat=false)
Definition
GrBackendSurface.cpp:189
GrCaps::ProgramDescOverrideFlags
ProgramDescOverrideFlags
Definition
GrCaps.h:511
GrCaps::ProgramDescOverrideFlags::kNone
@ kNone
GrMockCaps::onAreColorTypeAndFormatCompatible
bool onAreColorTypeAndFormatCompatible(GrColorType ct, const GrBackendFormat &format) const override
Definition
GrMockCaps.h:184
GrMockCaps::computeFormatKey
uint64_t computeFormatKey(const GrBackendFormat &) const override
Definition
GrMockCaps.cpp:37
GrMockCaps::makeDesc
GrProgramDesc makeDesc(GrRenderTarget *, const GrProgramInfo &, ProgramDescOverrideFlags) const override
Definition
GrMockCaps.cpp:28
GrMockCaps::getRenderTargetSampleCount
int getRenderTargetSampleCount(int requestCount, GrColorType) const
Definition
GrMockCaps.cpp:14
GrProgramDesc
Definition
GrProgramDesc.h:26
GrProgramDesc::Build
static void Build(GrProgramDesc *, const GrProgramInfo &, const GrCaps &)
Definition
GrProgramDesc.cpp:176
GrProgramInfo
Definition
GrProgramInfo.h:17
GrRenderTarget
Definition
GrRenderTarget.h:26
format
uint32_t uint32_t * format
Definition
fl_texture_registrar_test.cc:41
GrMockOptions::ConfigOptions::fRenderability
Renderability fRenderability
Definition
GrMockTypes.h:138
GrMockOptions::ConfigOptions::kNo
@ kNo
Definition
GrMockTypes.h:137
GrMockOptions::ConfigOptions::kNonMSAA
@ kNonMSAA
Definition
GrMockTypes.h:137
GrMockOptions::ConfigOptions::kMSAA
@ kMSAA
Definition
GrMockTypes.h:137
GrMockOptions::fConfigOptions
ConfigOptions fConfigOptions[kGrColorTypeCnt]
Definition
GrMockTypes.h:151
GrTest::TestFormatColorTypeCombination
Definition
TestFormatColorTypeCombination.h:14
Generated on Fri Apr 26 2024 06:17:06 for Flutter Engine by
1.9.8