Flutter Impeller
capabilities_unittests.cc
Go to the documentation of this file.
1 // Copyright 2013 The Flutter Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "flutter/testing/testing.h"
7 
8 #include "gtest/gtest.h"
9 
10 namespace impeller {
11 namespace testing {
12 
13 #define CAPABILITY_TEST(name, default_value) \
14  TEST(CapabilitiesTest, name) { \
15  auto defaults = CapabilitiesBuilder().Build(); \
16  ASSERT_EQ(defaults->name(), default_value); \
17  auto opposite = CapabilitiesBuilder().Set##name(!default_value).Build(); \
18  ASSERT_EQ(opposite->name(), !default_value); \
19  }
20 
21 CAPABILITY_TEST(SupportsOffscreenMSAA, false);
22 CAPABILITY_TEST(SupportsSSBO, false);
23 CAPABILITY_TEST(SupportsTextureToTextureBlits, false);
24 CAPABILITY_TEST(SupportsFramebufferFetch, false);
25 CAPABILITY_TEST(SupportsCompute, false);
26 CAPABILITY_TEST(SupportsComputeSubgroups, false);
27 CAPABILITY_TEST(SupportsReadFromResolve, false);
28 CAPABILITY_TEST(SupportsDecalSamplerAddressMode, false);
29 CAPABILITY_TEST(SupportsDeviceTransientTextures, false);
30 
31 TEST(CapabilitiesTest, DefaultColorFormat) {
32  auto defaults = CapabilitiesBuilder().Build();
33  EXPECT_EQ(defaults->GetDefaultColorFormat(), PixelFormat::kUnknown);
34  auto mutated = CapabilitiesBuilder()
36  .Build();
37  EXPECT_EQ(mutated->GetDefaultColorFormat(), PixelFormat::kB10G10R10A10XR);
38 }
39 
40 TEST(CapabilitiesTest, DefaultStencilFormat) {
41  auto defaults = CapabilitiesBuilder().Build();
42  EXPECT_EQ(defaults->GetDefaultStencilFormat(), PixelFormat::kUnknown);
43  auto mutated = CapabilitiesBuilder()
45  .Build();
46  EXPECT_EQ(mutated->GetDefaultStencilFormat(), PixelFormat::kS8UInt);
47 }
48 
49 TEST(CapabilitiesTest, DefaultDepthStencilFormat) {
50  auto defaults = CapabilitiesBuilder().Build();
51  EXPECT_EQ(defaults->GetDefaultDepthStencilFormat(), PixelFormat::kUnknown);
52  auto mutated = CapabilitiesBuilder()
54  .Build();
55  EXPECT_EQ(mutated->GetDefaultDepthStencilFormat(),
57 }
58 
59 TEST(CapabilitiesTest, DefaultGlyphAtlasFormat) {
60  auto defaults = CapabilitiesBuilder().Build();
61  EXPECT_EQ(defaults->GetDefaultGlyphAtlasFormat(), PixelFormat::kUnknown);
62  auto mutated = CapabilitiesBuilder()
64  .Build();
65  EXPECT_EQ(mutated->GetDefaultGlyphAtlasFormat(), PixelFormat::kA8UNormInt);
66 }
67 
68 } // namespace testing
69 } // namespace impeller
impeller::PixelFormat::kS8UInt
@ kS8UInt
impeller::CapabilitiesBuilder::Build
std::unique_ptr< Capabilities > Build()
Definition: capabilities.cc:212
impeller::PixelFormat::kB10G10R10A10XR
@ kB10G10R10A10XR
impeller::PixelFormat::kA8UNormInt
@ kA8UNormInt
impeller::testing::TEST
TEST(AiksCanvasTest, EmptyCullRect)
Definition: canvas_unittests.cc:18
impeller::CapabilitiesBuilder
Definition: capabilities.h:116
impeller::testing::CAPABILITY_TEST
CAPABILITY_TEST(SupportsOffscreenMSAA, false)
impeller::PixelFormat::kD32FloatS8UInt
@ kD32FloatS8UInt
impeller::CapabilitiesBuilder::SetDefaultDepthStencilFormat
CapabilitiesBuilder & SetDefaultDepthStencilFormat(PixelFormat value)
Definition: capabilities.cc:182
impeller::CapabilitiesBuilder::SetDefaultGlyphAtlasFormat
CapabilitiesBuilder & SetDefaultGlyphAtlasFormat(PixelFormat value)
Definition: capabilities.cc:206
capabilities.h
impeller::PixelFormat::kUnknown
@ kUnknown
impeller::CapabilitiesBuilder::SetDefaultColorFormat
CapabilitiesBuilder & SetDefaultColorFormat(PixelFormat value)
Definition: capabilities.cc:170
impeller::CapabilitiesBuilder::SetDefaultStencilFormat
CapabilitiesBuilder & SetDefaultStencilFormat(PixelFormat value)
Definition: capabilities.cc:176
impeller
Definition: aiks_blend_unittests.cc:18