7 #include "flutter/testing/testing.h"
15 #include "impeller/renderer/testing/mocks.h"
30 return ISize(1024, 1024);
38 return std::make_shared<MockDeviceBuffer>(desc);
46 return std::make_shared<MockTexture>(desc);
54 GetContext()->GetResourceAllocator(), 0);
56 render_target_cache.Start();
59 render_target_cache.CreateOffscreen(*GetContext(), {100, 100}, 1);
60 render_target_cache.CreateOffscreen(*GetContext(), {100, 100}, 1);
62 EXPECT_EQ(render_target_cache.CachedTextureCount(), 2u);
64 render_target_cache.End();
65 render_target_cache.Start();
69 render_target_cache.CreateOffscreen(*GetContext(), {100, 100}, 1);
70 EXPECT_EQ(render_target_cache.CachedTextureCount(), 2u);
72 render_target_cache.End();
73 EXPECT_EQ(render_target_cache.CachedTextureCount(), 1u);
78 GetContext()->GetResourceAllocator(), 3);
80 render_target_cache.Start();
83 render_target_cache.CreateOffscreen(*GetContext(), {100, 100}, 1);
84 render_target_cache.CreateOffscreen(*GetContext(), {100, 100}, 1);
86 EXPECT_EQ(render_target_cache.CachedTextureCount(), 2u);
88 render_target_cache.End();
89 render_target_cache.Start();
93 EXPECT_EQ(render_target_cache.CachedTextureCount(), 2u);
95 for (
auto i = 0; i < 3; i++) {
96 render_target_cache.Start();
97 render_target_cache.End();
98 EXPECT_EQ(render_target_cache.CachedTextureCount(), 2u);
101 render_target_cache.Start();
102 render_target_cache.End();
103 EXPECT_EQ(render_target_cache.CachedTextureCount(), 0u);
108 auto allocator = std::make_shared<TestAllocator>();
109 auto render_target_cache =
112 render_target_cache.Start();
113 allocator->should_fail =
true;
116 render_target_cache.CreateOffscreen(*GetContext(), {100, 100}, 1);
118 EXPECT_FALSE(render_target.IsValid());
119 EXPECT_EQ(render_target_cache.CachedTextureCount(), 0u);
124 GetContext()->GetResourceAllocator(), 0);
126 render_target_cache.Start();
129 RenderTarget target1 = render_target_cache.CreateOffscreen(
130 *GetContext(), {100, 100}, 1,
"Offscreen1", color_attachment_config);
131 render_target_cache.End();
133 render_target_cache.Start();
135 RenderTarget target2 = render_target_cache.CreateOffscreen(
136 *GetContext(), {100, 100}, 1,
"Offscreen2", color_attachment_config);
137 render_target_cache.End();
149 GetContext()->GetResourceAllocator(), 0);
151 render_target_cache.Start();
153 render_target_cache.CreateOffscreen(*GetContext(), {100, 0}, 1);
155 render_target_cache.CreateOffscreenMSAA(*GetContext(), {0, 0}, 1);
156 render_target_cache.End();
160 EXPECT_FALSE(empty_target.
IsValid());
161 EXPECT_FALSE(empty_target_msaa.
IsValid());
An object that allocates device memory.
An implementation of the [RenderTargetAllocator] that caches all allocated texture data for one frame...
ColorAttachment GetColorAttachment(size_t index) const
Get the color attachment at [index].
static constexpr AttachmentConfig kDefaultColorAttachmentConfig
ISize GetMaxTextureSizeSupported() const override
std::shared_ptr< DeviceBuffer > OnCreateBuffer(const DeviceBufferDescriptor &desc) override
virtual std::shared_ptr< Texture > OnCreateTexture(const TextureDescriptor &desc) override
TEST_P(AiksTest, DrawAtlasNoColor)
INSTANTIATE_PLAYGROUND_SUITE(AiksTest)
std::shared_ptr< Texture > texture
static constexpr Color Red()
A lightweight object that describes the attributes of a texture that can then used an allocator to cr...