Flutter Impeller
render_target_cache.h
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
#ifndef FLUTTER_IMPELLER_ENTITY_RENDER_TARGET_CACHE_H_
6
#define FLUTTER_IMPELLER_ENTITY_RENDER_TARGET_CACHE_H_
7
8
#include "
impeller/renderer/render_target.h
"
9
10
namespace
impeller
{
11
12
/// @brief An implementation of the [RenderTargetAllocator] that caches all
13
/// allocated texture data for one frame.
14
///
15
/// Any textures unused after a frame are immediately discarded.
16
class
RenderTargetCache
:
public
RenderTargetAllocator
{
17
public
:
18
explicit
RenderTargetCache
(std::shared_ptr<Allocator> allocator);
19
20
~RenderTargetCache
() =
default
;
21
22
// |RenderTargetAllocator|
23
void
Start
()
override
;
24
25
// |RenderTargetAllocator|
26
void
End
()
override
;
27
28
// |RenderTargetAllocator|
29
std::shared_ptr<Texture>
CreateTexture
(
30
const
TextureDescriptor
& desc)
override
;
31
32
// visible for testing.
33
size_t
CachedTextureCount
()
const
;
34
35
private
:
36
struct
TextureData {
37
bool
used_this_frame;
38
std::shared_ptr<Texture> texture;
39
};
40
41
std::vector<TextureData> texture_data_;
42
43
RenderTargetCache
(
const
RenderTargetCache
&) =
delete
;
44
45
RenderTargetCache
& operator=(
const
RenderTargetCache
&) =
delete
;
46
};
47
48
}
// namespace impeller
49
50
#endif // FLUTTER_IMPELLER_ENTITY_RENDER_TARGET_CACHE_H_
impeller::RenderTargetCache::CreateTexture
std::shared_ptr< Texture > CreateTexture(const TextureDescriptor &desc) override
Create a new render target texture, or recycle a previously allocated render target texture.
Definition:
render_target_cache.cc:34
impeller::RenderTargetCache::End
void End() override
Mark the end of a frame workload.
Definition:
render_target_cache.cc:19
impeller::RenderTargetCache::RenderTargetCache
RenderTargetCache(std::shared_ptr< Allocator > allocator)
Definition:
render_target_cache.cc:10
impeller::RenderTargetAllocator
a wrapper around the impeller [Allocator] instance that can be used to provide caching of allocated r...
Definition:
render_target.h:23
impeller::RenderTargetCache::~RenderTargetCache
~RenderTargetCache()=default
impeller::RenderTargetCache::Start
void Start() override
Mark the beginning of a frame workload.
Definition:
render_target_cache.cc:13
impeller::RenderTargetCache
An implementation of the [RenderTargetAllocator] that caches all allocated texture data for one frame...
Definition:
render_target_cache.h:16
impeller::TextureDescriptor
A lightweight object that describes the attributes of a texture that can then used an allocator to cr...
Definition:
texture_descriptor.h:37
render_target.h
impeller
Definition:
aiks_context.cc:10
impeller::RenderTargetCache::CachedTextureCount
size_t CachedTextureCount() const
Definition:
render_target_cache.cc:30
impeller
entity
render_target_cache.h
Generated by
1.8.17