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);
43 bool threadsafe)
override {
47 return std::make_shared<MockTexture>(desc);
55 GetContext()->GetResourceAllocator(), 0);
57 render_target_cache.Start();
60 render_target_cache.CreateOffscreen(*GetContext(), {100, 100}, 1);
61 render_target_cache.CreateOffscreen(*GetContext(), {100, 100}, 1);
63 EXPECT_EQ(render_target_cache.CachedTextureCount(), 2u);
65 render_target_cache.End();
66 render_target_cache.Start();
70 render_target_cache.CreateOffscreen(*GetContext(), {100, 100}, 1);
71 EXPECT_EQ(render_target_cache.CachedTextureCount(), 2u);
73 render_target_cache.End();
74 EXPECT_EQ(render_target_cache.CachedTextureCount(), 1u);
79 GetContext()->GetResourceAllocator(), 3);
81 render_target_cache.Start();
84 render_target_cache.CreateOffscreen(*GetContext(), {100, 100}, 1);
85 render_target_cache.CreateOffscreen(*GetContext(), {100, 100}, 1);
87 EXPECT_EQ(render_target_cache.CachedTextureCount(), 2u);
89 render_target_cache.End();
90 render_target_cache.Start();
94 EXPECT_EQ(render_target_cache.CachedTextureCount(), 2u);
96 for (
auto i = 0; i < 3; i++) {
97 render_target_cache.Start();
98 render_target_cache.End();
99 EXPECT_EQ(render_target_cache.CachedTextureCount(), 2u);
102 render_target_cache.Start();
103 render_target_cache.End();
104 EXPECT_EQ(render_target_cache.CachedTextureCount(), 0u);
109 auto allocator = std::make_shared<TestAllocator>();
110 auto render_target_cache =
113 render_target_cache.Start();
114 allocator->should_fail =
true;
117 render_target_cache.CreateOffscreen(*GetContext(), {100, 100}, 1);
119 EXPECT_FALSE(render_target.IsValid());
120 EXPECT_EQ(render_target_cache.CachedTextureCount(), 0u);
125 GetContext()->GetResourceAllocator(), 0);
127 render_target_cache.Start();
130 RenderTarget target1 = render_target_cache.CreateOffscreen(
131 *GetContext(), {100, 100}, 1,
"Offscreen1", color_attachment_config);
132 render_target_cache.End();
134 render_target_cache.Start();
136 RenderTarget target2 = render_target_cache.CreateOffscreen(
137 *GetContext(), {100, 100}, 1,
"Offscreen2", color_attachment_config);
138 render_target_cache.End();
150 GetContext()->GetResourceAllocator(), 0);
152 render_target_cache.Start();
154 render_target_cache.CreateOffscreen(*GetContext(), {100, 0}, 1);
156 render_target_cache.CreateOffscreenMSAA(*GetContext(), {0, 0}, 1);
157 render_target_cache.End();
161 EXPECT_FALSE(empty_target.
IsValid());
162 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
virtual std::shared_ptr< Texture > OnCreateTexture(const TextureDescriptor &desc, bool threadsafe) override
std::shared_ptr< DeviceBuffer > OnCreateBuffer(const DeviceBufferDescriptor &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...