Flutter Impeller
config.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_TOOLKIT_EGL_CONFIG_H_
6
#define FLUTTER_IMPELLER_TOOLKIT_EGL_CONFIG_H_
7
8
#include "
impeller/toolkit/egl/egl.h
"
9
10
namespace
impeller
{
11
namespace
egl {
12
13
enum class
API
{
14
kOpenGL
,
15
kOpenGLES2
,
16
kOpenGLES3
,
17
};
18
19
enum class
Samples
{
20
kOne
= 1,
21
kTwo
= 2,
22
kFour
= 4,
23
};
24
25
enum class
ColorFormat
{
26
kRGBA8888
,
27
kRGB565
,
28
};
29
30
enum class
StencilBits
{
31
kZero
= 0,
32
kEight
= 8,
33
};
34
35
enum class
DepthBits
{
36
kZero
= 0,
37
kEight
= 8,
38
};
39
40
enum class
SurfaceType
{
41
kWindow
,
42
kPBuffer
,
43
};
44
45
struct
ConfigDescriptor
{
46
API
api
=
API::kOpenGLES2
;
47
Samples
samples
=
Samples::kOne
;
48
ColorFormat
color_format
=
ColorFormat::kRGB565
;
49
StencilBits
stencil_bits
=
StencilBits::kZero
;
50
DepthBits
depth_bits
=
DepthBits::kZero
;
51
SurfaceType
surface_type
=
SurfaceType::kPBuffer
;
52
};
53
54
class
Display
;
55
56
//------------------------------------------------------------------------------
57
/// @brief An EGL config. These are returned by the display to indicate
58
/// support for a specific config descriptor.
59
///
60
/// There is no ability to construct these manually except for
61
/// testing.
62
///
63
class
Config
{
64
public
:
65
~Config
();
66
67
bool
IsValid
()
const
;
68
69
const
ConfigDescriptor
&
GetDescriptor
()
const
;
70
71
const
EGLConfig&
GetHandle
()
const
;
72
73
// Do not use. Only for testing.
74
Config
(
ConfigDescriptor
descriptor, EGLConfig config);
75
76
private
:
77
const
ConfigDescriptor
desc_;
78
EGLConfig config_ =
nullptr
;
79
80
Config
(
const
Config
&) =
delete
;
81
82
Config
& operator=(
const
Config
&) =
delete
;
83
};
84
85
}
// namespace egl
86
}
// namespace impeller
87
88
#endif // FLUTTER_IMPELLER_TOOLKIT_EGL_CONFIG_H_
impeller::egl::Samples::kOne
@ kOne
impeller::egl::StencilBits::kEight
@ kEight
impeller::egl::API
API
Definition:
config.h:13
impeller::egl::ColorFormat::kRGB565
@ kRGB565
impeller::egl::StencilBits
StencilBits
Definition:
config.h:30
impeller::egl::Samples::kTwo
@ kTwo
impeller::egl::DepthBits::kZero
@ kZero
impeller::egl::Config::GetDescriptor
const ConfigDescriptor & GetDescriptor() const
Definition:
config.cc:17
impeller::egl::StencilBits::kZero
@ kZero
impeller::egl::DepthBits
DepthBits
Definition:
config.h:35
impeller::egl::Config::Config
Config(ConfigDescriptor descriptor, EGLConfig config)
Definition:
config.cc:12
egl.h
impeller::egl::SurfaceType
SurfaceType
Definition:
config.h:40
impeller::egl::ConfigDescriptor::samples
Samples samples
Definition:
config.h:47
impeller::egl::API::kOpenGLES2
@ kOpenGLES2
impeller::egl::ColorFormat
ColorFormat
Definition:
config.h:25
impeller::egl::DepthBits::kEight
@ kEight
impeller::egl::Display
A connection to an EGL display. Only one connection per application instance is sufficient.
Definition:
display.h:28
impeller::egl::Config::GetHandle
const EGLConfig & GetHandle() const
Definition:
config.cc:21
impeller::egl::Config::IsValid
bool IsValid() const
Definition:
config.cc:25
impeller::egl::Samples::kFour
@ kFour
impeller::egl::ConfigDescriptor::surface_type
SurfaceType surface_type
Definition:
config.h:51
impeller::egl::ConfigDescriptor
Definition:
config.h:45
impeller::egl::Config::~Config
~Config()
impeller::egl::API::kOpenGL
@ kOpenGL
impeller::egl::SurfaceType::kWindow
@ kWindow
impeller::egl::Samples
Samples
Definition:
config.h:19
impeller::egl::ColorFormat::kRGBA8888
@ kRGBA8888
impeller::egl::Config
An EGL config. These are returned by the display to indicate support for a specific config descriptor...
Definition:
config.h:63
impeller::egl::ConfigDescriptor::color_format
ColorFormat color_format
Definition:
config.h:48
impeller
Definition:
allocation.cc:12
impeller::egl::API::kOpenGLES3
@ kOpenGLES3
impeller::egl::SurfaceType::kPBuffer
@ kPBuffer
impeller::egl::ConfigDescriptor::stencil_bits
StencilBits stencil_bits
Definition:
config.h:49
impeller::egl::ConfigDescriptor::api
API api
Definition:
config.h:46
impeller::egl::ConfigDescriptor::depth_bits
DepthBits depth_bits
Definition:
config.h:50
impeller
toolkit
egl
config.h
Generated by
1.8.17