~alan-griffiths/miral/fix-1645284

« back to all changes in this revision

Viewing changes to miral-qt/src/platforms/mirserver/openglcontextfactory.cpp

  • Committer: Alan Griffiths
  • Date: 2016-11-07 17:59:19 UTC
  • mfrom: (436.1.1 miral2)
  • Revision ID: alan@octopull.co.uk-20161107175919-stbb64i7j1htgog2
[miral-qt] delete all as qtmir work on MirAL has shifted to lp:~unity-team/qtmir/miral-qt-integration and this is a needless distration

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * Copyright © 2016 Canonical Ltd.
3
 
 *
4
 
 * This program is free software: you can redistribute it and/or modify it
5
 
 * under the terms of the GNU 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 General Public License for more details.
12
 
 *
13
 
 * You should have received a copy of the GNU General Public License
14
 
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
15
 
 *
16
 
 * Authored by: Alan Griffiths <alan@octopull.co.uk>
17
 
 */
18
 
 
19
 
#include "openglcontextfactory.h"
20
 
 
21
 
// local
22
 
#include "mirglconfig.h"
23
 
#include "miropenglcontext.h"
24
 
 
25
 
// mir
26
 
#include <mir/server.h>
27
 
 
28
 
struct qtmir::OpenGLContextFactory::Self
29
 
{
30
 
    std::shared_ptr<MirGLConfig> m_glConfig;
31
 
};
32
 
 
33
 
qtmir::OpenGLContextFactory::OpenGLContextFactory() :
34
 
    self{std::make_shared<Self>()}
35
 
{
36
 
}
37
 
 
38
 
void qtmir::OpenGLContextFactory::operator()(mir::Server& server)
39
 
{
40
 
    server.override_the_gl_config([this]
41
 
        { return self->m_glConfig = std::make_shared<MirGLConfig>(); });
42
 
}
43
 
 
44
 
QPlatformOpenGLContext *qtmir::OpenGLContextFactory::createPlatformOpenGLContext(
45
 
    QSurfaceFormat format, mir::graphics::Display &mirDisplay) const
46
 
{
47
 
    if (!self->m_glConfig)
48
 
        throw std::logic_error("No gl config available. Server not running?");
49
 
 
50
 
    return new MirOpenGLContext(mirDisplay, *self->m_glConfig, format);
51
 
}