Mir
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
src
client
client_platform.h
Go to the documentation of this file.
1
/*
2
* Copyright © 2012 Canonical Ltd.
3
*
4
* This program is free software: you can redistribute it and/or modify it
5
* under the terms of the GNU Lesser General Public License version 3,
6
* as published by the Free Software Foundation.
7
*
8
* This program is distributed in the hope that it will be useful,
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
* GNU Lesser General Public License for more details.
12
*
13
* You should have received a copy of the GNU Lesser General Public License
14
* along with this program. If not, see <http://www.gnu.org/licenses/>.
15
*
16
* Authored by: Kevin DuBois <kevin.dubois@canonical.com>
17
*/
18
#ifndef MIR_CLIENT_CLIENT_PLATFORM_H_
19
#define MIR_CLIENT_CLIENT_PLATFORM_H_
20
21
#include "
mir/graphics/native_buffer.h
"
22
#include "
mir_toolkit/client_types.h
"
23
#include "
mir_toolkit/mir_native_buffer.h
"
24
#include "
egl_native_window_factory.h
"
25
26
#include <EGL/eglplatform.h>
27
#include <memory>
28
29
namespace
mir
30
{
31
namespace
client
32
{
33
class
ClientBufferFactory;
34
class
ClientSurface;
35
class
ClientContext
;
36
41
class
ClientPlatform
:
public
EGLNativeWindowFactory
42
{
43
public
:
44
ClientPlatform
() =
default
;
45
ClientPlatform
(
const
ClientPlatform
& p) =
delete
;
46
ClientPlatform
&
operator=
(
const
ClientPlatform
& p) =
delete
;
47
48
virtual
~ClientPlatform
() {
/* TODO: make nothrow */
}
49
50
virtual
MirPlatformType
platform_type
()
const
= 0;
51
virtual
std::shared_ptr<ClientBufferFactory>
create_buffer_factory
() = 0;
52
virtual
std::shared_ptr<EGLNativeWindowType>
create_egl_native_window
(
ClientSurface
*surface) = 0;
53
virtual
std::shared_ptr<EGLNativeDisplayType>
create_egl_native_display
() = 0;
54
virtual
MirNativeBuffer
*
convert_native_buffer
(
graphics::NativeBuffer
*)
const
= 0;
55
};
56
57
}
58
}
59
60
#endif
/* MIR_CLIENT_CLIENT_PLATFORM_H_ */
mir::client::ClientPlatform::ClientPlatform
ClientPlatform()=default
mir::client::ClientPlatform::platform_type
virtual MirPlatformType platform_type() const =0
mir_native_buffer.h
mir::client::ClientPlatform::convert_native_buffer
virtual MirNativeBuffer * convert_native_buffer(graphics::NativeBuffer *) const =0
mir::client::ClientPlatform::operator=
ClientPlatform & operator=(const ClientPlatform &p)=delete
mir::graphics::NativeBuffer
Definition:
native_buffer.h:30
MirBufferPackage
Definition:
mir_native_buffer.h:30
native_buffer.h
mir::client::ClientSurface
Definition:
mir_client_surface.h:31
mir::client::EGLNativeWindowFactory
Definition:
egl_native_window_factory.h:32
client_types.h
mir::client::ClientPlatform::create_egl_native_window
virtual std::shared_ptr< EGLNativeWindowType > create_egl_native_window(ClientSurface *surface)=0
mir::client::ClientPlatform::create_buffer_factory
virtual std::shared_ptr< ClientBufferFactory > create_buffer_factory()=0
mir::client::ClientPlatform
Interface to client-side platform specific support for graphics operations.
Definition:
client_platform.h:41
egl_native_window_factory.h
MirPlatformType
MirPlatformType
The native buffer type for the system the client is connected on.
Definition:
client_types.h:144
mir::client::ClientPlatform::~ClientPlatform
virtual ~ClientPlatform()
Definition:
client_platform.h:48
ClientContext
Definition:
demo_client_display_config.c:43
mir::client::ClientPlatform::create_egl_native_display
virtual std::shared_ptr< EGLNativeDisplayType > create_egl_native_display()=0
Copyright © 2012,2013 Canonical Ltd.
Generated on Fri Apr 11 21:14:53 UTC 2014