Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
third_party
skia
src
gpu
graphite
UploadBufferManager.h
Go to the documentation of this file.
1
/*
2
* Copyright 2022 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
#ifndef skgpu_graphite_UploadBufferManager_DEFINED
9
#define skgpu_graphite_UploadBufferManager_DEFINED
10
11
#include "
include/core/SkRefCnt.h
"
12
#include "
src/gpu/BufferWriter.h
"
13
#include "
src/gpu/graphite/DrawTypes.h
"
14
15
#include <string_view>
16
#include <tuple>
17
#include <vector>
18
19
namespace
skgpu::graphite
{
20
21
class
Buffer;
22
class
Caps;
23
class
CommandBuffer;
24
class
Recording;
25
class
ResourceProvider
;
26
27
class
UploadBufferManager
{
28
public
:
29
UploadBufferManager
(
ResourceProvider
*,
const
Caps
*);
30
~UploadBufferManager
();
31
32
std::tuple<TextureUploadWriter, BindBufferInfo>
getTextureUploadWriter
(
33
size_t
requiredBytes,
size_t
requiredAlignment);
34
35
// Finalizes all buffers and transfers ownership of them to a Recording.
36
void
transferToRecording
(
Recording
*);
37
void
transferToCommandBuffer
(
CommandBuffer
*);
38
39
private
:
40
friend
class
DrawBufferManager
;
// to access makeBindInfo
41
friend
class
StaticBufferManager
;
// to access makeBindInfo
42
43
44
std::tuple<
void
*
/*mappedPtr*/
,
BindBufferInfo
> makeBindInfo(
size_t
requiredBytes,
45
size_t
requiredAlignment,
46
std::string_view label);
47
48
ResourceProvider
* fResourceProvider;
49
50
sk_sp<Buffer>
fReusedBuffer;
51
size_t
fMinAlignment;
52
size_t
fReusedBufferOffset = 0;
53
54
std::vector<sk_sp<Buffer>> fUsedBuffers;
55
};
56
57
}
// namespace skgpu::graphite
58
59
#endif
// skgpu_graphite_UploadBufferManager_DEFINED
BufferWriter.h
DrawTypes.h
SkRefCnt.h
sk_sp
Definition
SkRefCnt.h:220
skgpu::graphite::Caps
Definition
Caps.h:70
skgpu::graphite::CommandBuffer
Definition
CommandBuffer.h:38
skgpu::graphite::DrawBufferManager
Definition
BufferManager.h:99
skgpu::graphite::Recording
Definition
Recording.h:33
skgpu::graphite::ResourceProvider
Definition
ResourceProvider.h:50
skgpu::graphite::StaticBufferManager
Definition
BufferManager.h:228
skgpu::graphite::UploadBufferManager
Definition
UploadBufferManager.h:27
skgpu::graphite::UploadBufferManager::~UploadBufferManager
~UploadBufferManager()
Definition
UploadBufferManager.cpp:27
skgpu::graphite::UploadBufferManager::getTextureUploadWriter
std::tuple< TextureUploadWriter, BindBufferInfo > getTextureUploadWriter(size_t requiredBytes, size_t requiredAlignment)
Definition
UploadBufferManager.cpp:29
skgpu::graphite::UploadBufferManager::transferToRecording
void transferToRecording(Recording *)
Definition
UploadBufferManager.cpp:104
skgpu::graphite::UploadBufferManager::transferToCommandBuffer
void transferToCommandBuffer(CommandBuffer *)
Definition
UploadBufferManager.cpp:117
skresources::ResourceProvider
Definition
SkResources.h:150
skgpu::graphite
Definition
BoundsManagerBench.cpp:27
skgpu::graphite::BindBufferInfo
Definition
ResourceTypes.h:159
Generated on Fri Apr 26 2024 06:17:20 for Flutter Engine by
1.9.8