Merge lp:~gerboland/qtmir/refactor-opengl into lp:qtmir
| Status: | Needs review |
|---|---|
| Proposed branch: | lp:~gerboland/qtmir/refactor-opengl |
| Merge into: | lp:qtmir |
| Prerequisite: | lp:~alan-griffiths/qtmir/untangle-libmirserver-from-QOBJECTs |
| Diff against target: |
777 lines (+317/-201) 15 files modified
src/platforms/mirserver/CMakeLists.txt (+4/-3) src/platforms/mirserver/egl.h (+34/-0) src/platforms/mirserver/eglimpl.cpp (+92/-0) src/platforms/mirserver/eglimpl.h (+41/-0) src/platforms/mirserver/glconfiguration.cpp (+61/-0) src/platforms/mirserver/glconfiguration.h (+59/-0) src/platforms/mirserver/miropenglcontext.cpp (+5/-67) src/platforms/mirserver/miropenglcontext.h (+4/-9) src/platforms/mirserver/mirserverintegration.cpp (+1/-5) src/platforms/mirserver/openglcontextfactory.cpp (+0/-51) src/platforms/mirserver/openglcontextfactory.h (+0/-47) src/platforms/mirserver/qmirserver.cpp (+2/-2) src/platforms/mirserver/qmirserver.h (+5/-5) src/platforms/mirserver/qmirserver_p.cpp (+3/-6) src/platforms/mirserver/qmirserver_p.h (+6/-6) |
| To merge this branch: | bzr merge lp:~gerboland/qtmir/refactor-opengl |
| Related bugs: |
| Reviewer | Review Type | Date Requested | Status |
|---|---|---|---|
| Alan Griffiths | 2017-04-05 | Needs Fixing on 2017-04-06 | |
| Unity8 CI Bot | continuous-integration | Approve on 2017-04-05 | |
|
Review via email:
|
|||
This proposal supersedes a proposal from 2017-04-05.
Commit Message
Refactor GL context management
- isolate EGL state (Config & Display) into separate class
- isolate GLConfiguration into a separate class
- share the EGL state with MirOpenGLContext to allow it to create its Surface itself.
Then can remove the OpenGLContextFa
The EGL and GLConfiguration classes will be handy to expose in a later C++ api.
- 643. By Gerry Boland on 2017-04-05
-
It works, comment removed
- 644. By Gerry Boland on 2017-04-05
-
Fix GL/EGL debugging
- 645. By Gerry Boland on 2017-04-05
-
Fix header file ifndefs
| Unity8 CI Bot (unity8-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:645
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
| Alan Griffiths (alan-griffiths) wrote : | # |
class GLConfiguration ...
I'm not sure of the design intent here.
The only reason for virtual functions appears to be supplying two ints. Inlining virtual functions is an unlikely design. And the implementations just supply constants. Note that copying (with slicing) is allowed.
How about a handle class:
class GLConfiguration
{
public:
GLConfigura
~GLConfigur
int depth_buffer_bits() const;
int stencil_
void operator(
private:
struct Self;
std:
};
| Alan Griffiths (alan-griffiths) wrote : | # |
+class EGL
+{
+public:
+ virtual EGLConfig config() const = 0;
+ virtual EGLDisplay display() const = 0;
+};
It is a good idea to disable CopyAssign in an interface.
| Alan Griffiths (alan-griffiths) wrote : | # |
Other than the above nits, this looks like good progress.
Unmerged revisions
- 645. By Gerry Boland on 2017-04-05
-
Fix header file ifndefs
- 644. By Gerry Boland on 2017-04-05
-
Fix GL/EGL debugging
- 643. By Gerry Boland on 2017-04-05
-
It works, comment removed
- 642. By Gerry Boland on 2017-04-05
-
Refactor GL context management
- isolate EGL state (Config & Display) into separate class
- isolate GLConfiguration into a separate class
- share the EGL state with MirOpenGLContext to allow it to create its Surface itself.
Then can remove the OpenGLContextFactory and remove mir dependencies in QMirServerPrivate and some QPA internals from QMirServer. The EGL and GLConfiguration classes will be handy to expose in a later C++ api.
- 641. By Alan Griffiths on 2017-04-05
-
Apply Gerry's patch to CMakeLists.txt
- 640. By Alan Griffiths on 2017-04-03
-
windowmanagemen
tpolicy. cpp doesn't use libmirserver - 639. By Alan Griffiths on 2017-03-31
-
cleanup the mirserver platform compile flags
- 638. By Alan Griffiths on 2017-03-31
-
Avoid dependency on libmirserver-dev in qtcompositor.h
- 637. By Alan Griffiths on 2017-03-31
-
Avoid dependency on libmirserver-dev in inputdeviceobse
rver.h - 636. By Alan Griffiths on 2017-03-31
-
Avoid dependency on libmirserver-dev in screensmodel.h

PASSED: Continuous integration, rev:643 /unity8- jenkins. ubuntu. com/job/ lp-qtmir- ci/670/ /unity8- jenkins. ubuntu. com/job/ build/4908 /unity8- jenkins. ubuntu. com/job/ build-0- fetch/4936 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=amd64, release= xenial+ overlay/ 4744 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=amd64, release= xenial+ overlay/ 4744/artifact/ output/ *zip*/output. zip /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=amd64, release= zesty/4744 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=amd64, release= zesty/4744/ artifact/ output/ *zip*/output. zip /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=armhf, release= xenial+ overlay/ 4744 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=armhf, release= xenial+ overlay/ 4744/artifact/ output/ *zip*/output. zip /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=armhf, release= zesty/4744 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=armhf, release= zesty/4744/ artifact/ output/ *zip*/output. zip /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=i386, release= xenial+ overlay/ 4744 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=i386, release= xenial+ overlay/ 4744/artifact/ output/ *zip*/output. zip /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=i386, release= zesty/4744 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=i386, release= zesty/4744/ artifact/ output/ *zip*/output. zip
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild: /unity8- jenkins. ubuntu. com/job/ lp-qtmir- ci/670/ rebuild
https:/