Flutter Impeller
device_buffer_mtl.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_RENDERER_BACKEND_METAL_DEVICE_BUFFER_MTL_H_
6
#define FLUTTER_IMPELLER_RENDERER_BACKEND_METAL_DEVICE_BUFFER_MTL_H_
7
8
#include <Metal/Metal.h>
9
10
#include "flutter/fml/macros.h"
11
#include "
impeller/base/backend_cast.h
"
12
#include "
impeller/core/device_buffer.h
"
13
14
namespace
impeller
{
15
16
class
DeviceBufferMTL
final :
public
DeviceBuffer
,
17
public
BackendCast
<DeviceBufferMTL, Buffer> {
18
public
:
19
DeviceBufferMTL
();
20
21
// |DeviceBuffer|
22
~DeviceBufferMTL
()
override
;
23
24
id<MTLBuffer>
GetMTLBuffer
()
const
;
25
26
private
:
27
friend
class
AllocatorMTL
;
28
29
const
id<MTLBuffer> buffer_;
30
const
MTLStorageMode storage_mode_;
31
32
DeviceBufferMTL
(
DeviceBufferDescriptor
desc,
33
id<MTLBuffer> buffer,
34
MTLStorageMode storage_mode);
35
36
// |DeviceBuffer|
37
uint8_t* OnGetContents()
const override
;
38
39
// |DeviceBuffer|
40
std::shared_ptr<Texture> AsTexture(
Allocator
& allocator,
41
const
TextureDescriptor
& descriptor,
42
uint16_t row_bytes)
const override
;
43
44
// |DeviceBuffer|
45
bool
OnCopyHostBuffer(
const
uint8_t* source,
46
Range
source_range,
47
size_t
offset)
override
;
48
49
// |DeviceBuffer|
50
bool
SetLabel(
const
std::string& label)
override
;
51
52
// |DeviceBuffer|
53
bool
SetLabel(
const
std::string& label,
Range
range)
override
;
54
55
DeviceBufferMTL
(
const
DeviceBufferMTL
&) =
delete
;
56
57
DeviceBufferMTL
& operator=(
const
DeviceBufferMTL
&) =
delete
;
58
};
59
60
}
// namespace impeller
61
62
#endif // FLUTTER_IMPELLER_RENDERER_BACKEND_METAL_DEVICE_BUFFER_MTL_H_
impeller::AllocatorMTL
Definition:
allocator_mtl.h:15
impeller::DeviceBuffer
Definition:
device_buffer.h:20
impeller::DeviceBufferMTL::DeviceBufferMTL
DeviceBufferMTL()
impeller::DeviceBufferDescriptor
Definition:
device_buffer_descriptor.h:14
device_buffer.h
impeller::DeviceBufferMTL
Definition:
device_buffer_mtl.h:16
backend_cast.h
impeller::Allocator
An object that allocates device memory.
Definition:
allocator.h:22
impeller::DeviceBufferMTL::GetMTLBuffer
id< MTLBuffer > GetMTLBuffer() const
Definition:
device_buffer_mtl.mm:21
impeller::Range
Definition:
range.h:14
impeller::BackendCast
Definition:
backend_cast.h:13
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
impeller::DeviceBufferMTL::~DeviceBufferMTL
~DeviceBufferMTL() override
impeller
Definition:
aiks_context.cc:10
impeller
renderer
backend
metal
device_buffer_mtl.h
Generated by
1.8.17