Merge lp:~raof/mir/new-display-api into lp:mir
| Status: | Merged |
|---|---|
| Approved by: | Alexandros Frantzis on 2016-02-26 |
| Approved revision: | 3375 |
| Merged at revision: | 3343 |
| Proposed branch: | lp:~raof/mir/new-display-api |
| Merge into: | lp:mir |
| Diff against target: |
2114 lines (+1638/-42) 19 files modified
include/client/mir_toolkit/client_types.h (+35/-0) include/client/mir_toolkit/mir_client_library.h (+1/-0) include/client/mir_toolkit/mir_connection.h (+15/-1) include/client/mir_toolkit/mir_display_configuration.h (+360/-0) include/test/mir/test/display_config_matchers.h (+9/-0) include/test/mir/test/doubles/stub_display_configuration.h (+4/-0) src/client/CMakeLists.txt (+2/-0) src/client/display_configuration.cpp (+29/-15) src/client/display_configuration.h (+12/-2) src/client/display_configuration_api.cpp (+295/-0) src/client/mir_connection.cpp (+5/-0) src/client/mir_connection.h (+2/-0) src/client/mir_connection_api.cpp (+14/-0) src/client/symbols.map (+33/-0) tests/acceptance-tests/CMakeLists.txt (+1/-0) tests/acceptance-tests/test_display_configuration.cpp (+15/-15) tests/acceptance-tests/test_new_display_configuration.cpp (+671/-0) tests/mir_test/display_config_matchers.cpp (+97/-0) tests/mir_test_doubles/stub_display_configuration.cpp (+38/-9) |
| To merge this branch: | bzr merge lp:~raof/mir/new-display-api |
| Related bugs: |
| Reviewer | Review Type | Date Requested | Status |
|---|---|---|---|
| Mir CI Bot | continuous-integration | 2016-02-24 | Approve on 2016-02-26 |
| Alexandros Frantzis (community) | 2016-02-24 | Approve on 2016-02-26 | |
| Alan Griffiths | 2016-02-24 | Approve on 2016-02-26 | |
| Andreas Pokorny (community) | Approve on 2016-02-25 | ||
| Kevin DuBois (community) | 2016-02-24 | Approve on 2016-02-24 | |
| Cemil Azizoglu (community) | 2016-02-24 | Approve on 2016-02-24 | |
| PS Jenkins bot | continuous-integration | 2016-02-24 | Needs Fixing on 2016-02-24 |
|
Review via email:
|
|||
This proposal supersedes a proposal from 2016-02-18.
Commit Message
New, extensible, display and enumeration API.
Hide all the structs behind the API so we can extend them with all the extra information - scale, form factor, etc - that QtMir would like to have.
This currently does not have any form of configuration setting interface, as that's not
needed for QtMir's immediate needs.
Description of the Change
I've stripped all the setters out of this; since we're implementing a new API I think it's the right time to look at doing something about https:/
So just do the bits that QtMir needs now, and add the setters in a follow up.
| Mir CI Bot (mir-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:3322
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:3322
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
| Alexandros Frantzis (afrantzis) wrote : | # |
A first pass at the API:
> MirDisplayConfig* mir_connection_
> MirDisplayConfi
The naming is confusing due to the mismatch of configuration vs config, especially given that other new API functions use mir_display_config (e.g. mir_display_
> MirOutputConnection mir_output_
The object_is_X naming usually implies a boolean return value, but here we get an enum with three values.
> int mir_output_
> int mir_output_
Should be mir_output_
> MirExtent const* mir_output_
Perhaps we should have separate functions to get width and height. It's more consistent with other functions in the new API and also avoids the need for the non-opaque MirExtent.
| Mir CI Bot (mir-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:3327
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
| Chris Halse Rogers (raof) wrote : | # |
Fixed the things that can be fixed.
mir_connection_
| Mir CI Bot (mir-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:3328
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
| Mir CI Bot (mir-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:3329
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
| PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:3327
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
| PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:3329
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
| Mir CI Bot (mir-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:3331
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
| PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:3331
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
| Mir CI Bot (mir-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:3332
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
| PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:3332
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
| Kevin DuBois (kdub) wrote : | # |
discussion/
Should we remove the MirWaitHandles? (https:/
clarifying comment needed:
+int mir_display_
Is this the number of active outputs? (in light of mir_display_
do we need two functions here:
+MirOutput const* mir_display_
+MirOutput* mir_display_
I guess I'd prefer just having:
+MirOutput* mir_display_
In the name of one less function to support.
clarifying content needed:
After reading for a while, I made the connection that MirOutputMode was formerly the list of resolution modes... perhaps MirOutputResolution would have helped make that mental connection quicker.
clarifying content needed:
void mir_output_
the comment says the top-left corner, but in light of rotation, not sure if the corner rotates or not when orientation is applied.
| Mir CI Bot (mir-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:3333
https:/
Executed test runs:
ABORTED: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
Click here to trigger a rebuild:
https:/
| PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:3333
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
| Mir CI Bot (mir-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:3335
https:/
Executed test runs:
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:3335
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
| Mir CI Bot (mir-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:3336
https:/
Executed test runs:
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
| Mir CI Bot (mir-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:3349
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:3336
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
| PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:3349
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
| Chris Halse Rogers (raof) wrote : | # |
I've stripped all the setters out of this; since we're implementing a new API I think it's the right time to look at doing something about https:/
So just do the bits that QtMir needs now, and add the setters in a follow up.
| Mir CI Bot (mir-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:3350
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
| PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:3350
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
| Cemil Azizoglu (cemil-azizoglu) wrote : | # |
Cursory review:
40 + * \deprecated Use mir_connection_
41 +
Why not mark the function with '__attribute__ ((deprecated))'?
-------
57 +MirDisplayConfig* mir_connection_
58
We are not really creating it, are we? How about mir_connection_
-------
124 +int mir_display_
Why do we need the config arg here? Also, what does knowing this number give you?
-------
129 + * This returns the total number of outputs the system has.
should read
129 + * This returns the total number of outputs the system has, matching this configuration.
| Chris Halse Rogers (raof) wrote : | # |
> Cursory review:
>
> 40 + * \deprecated Use mir_connection_
> instead.
> 41 +
>
> Why not mark the function with '__attribute__ ((deprecated))'?
Because that immediately causes all of our current users (including our examples, and the nested server) to fail to build.
I'm following up with changing these in-Mir usages, and I'll update our downstreams, but I didn't immediately force the issue so as to make it easier to break up into reviewable chunks.
>
> -------
>
> 57 +MirDisplayConfig*
> mir_connection_
> 58
>
> We are not really creating it, are we? How about
> mir_connection_
> mir_output_
>
This matches the current naming, and - in contrast to mir_output_
I don't mind renaming, but maybe I'll wait for a second opinion :)
> -------
>
> 124 +int mir_display_
> const* config);
>
> Why do we need the config arg here? Also, what does knowing this number give
> you?
>
It's something exposed by our current API, and it can be used by clients to pre-reject obviously invalid setups. For example, many laptops used to have two external output ports and their internal displays, but their GPUs could only drive two outputs at once. Knowing mir_display_
We need the config arg here for two reasons: (a) as an implementation detail this is stored in the configuration, and (b) on the conceptual level it can change over time, so it's tied to a particular configuration snapshot.
> -------
>
> 129 + * This returns the total number of outputs the system has.
>
> should read
>
> 129 + * This returns the total number of outputs the system has, matching
> this configuration.
Hm, that seems confusing to me. What does “matching” mean in this case? We're not doing any filtering here; this *is* the total number of outputs the system had, as of the call to mir_connection_
| Alexandros Frantzis (afrantzis) wrote : | # |
Looks good overall.
A few points for discussion:
+ MirDisplayConfig* mir_connection_
DisplayConfig/
+int mir_output_
+ MirPixelFormat mir_output_
...
More consistent as:
mir_output_
mir_output_
mir_output_
+ * \note This may be removed in future, in favour of passing the MirOutput* directly to such APIs.
I don't think this note is useful for a user of the API at the moment.
+ MirDisplayOutpu
We should provide a new type MirOutputType for API consistency.
+typedef enum
+{
+ mir_output_
+ mir_output_
+ mir_output_
+} MirOutputConnec
A more verbose, but also more consistent alternative:
mir_output_
mir_output_
mir_output_
MirOutputConnec
| Alan Griffiths (alan-griffiths) wrote : | # |
+ return *reinterpret_
Ugh!!
| Alan Griffiths (alan-griffiths) wrote : | # |
Minor edits, consistency fixes and musings:
+ * \note This may be removed in future, in favour of passing the MirOutput* directly to such APIs.
Not useful API documentation. Possibly a TODO?
~~~~
+ * Get the number of pixel formats supported by this output
...
+int mir_output_
s/output_
(to match mir_output_
~~~~
+int mir_output_
...
I know we aim for opaque types, but I wonder if this would be easier to use:
MirRectangle mir_output_
Also, it is far from clear that this API is tested (the only use of this function I see is in tests/mir_
~~~~
+typedef enum
+{
+ mir_output_
+ mir_output_
+ mir_output_
+} MirOutputConnec
Possibly better in include/
Also, we have tag names on our other typedef'd enums so, be consistent.
| Chris Halse Rogers (raof) wrote : | # |
> + return *reinterpret_
> >(config);
>
> Ugh!!
Yeah. It goes away in the followup MP :).
> +int mir_output_
> ...
>
> I know we aim for opaque types, but I wonder if this would be easier to use:
>
> MirRectangle mir_output_
>
> Also, it is far from clear that this API is tested (the only use of this
> function I see is in tests/mir_
Hah! I originally added a MirExtent struct (MirRectangle isn't quite what we want, as that has width/height) to do this and Alexandros asked to change it to position_x / position_y.
I'll let you fight that out and implement the result ☺.
| Mir CI Bot (mir-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:3354
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
| Mir CI Bot (mir-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:3355
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
| Mir CI Bot (mir-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:3356
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
| PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:3354
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
FAILURE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
FAILURE: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:3356
http://
Executed test runs:
SUCCESS: http://
FAILURE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
| Alan Griffiths (alan-griffiths) wrote : | # |
> > + return
> *reinterpret_
> > >(config);
> >
> > Ugh!!
>
> Yeah. It goes away in the followup MP :).
Are all the varied casting ugliness bits going away?
> > +int mir_output_
> > ...
> >
> > I know we aim for opaque types, but I wonder if this would be easier to use:
> >
> > MirRectangle mir_output_
> >
> > Also, it is far from clear that this API is tested (the only use of this
> > function I see is in tests/mir_
>
> Hah! I originally added a MirExtent struct (MirRectangle isn't quite what we
> want, as that has width/height) to do this and Alexandros asked to change it
> to position_x / position_y.
>
> I'll let you fight that out and implement the result ☺.
Not sure that's an effective strategy - you could wait a long time for us to generate the interest needed for a fight. ;)
MirRectangle has a set of members that are unlikely to change. MirExtent on the other hand doesn't have quite as fixed a meaning. (From the name I'd assume it was much the same as MirRectangle - what data members did you propose?)
If you don't like MirRectangle how about MirPosition/
| Alexandros Frantzis (afrantzis) wrote : | # |
Pasting my argument for having separate function, from the old MP:
> Perhaps we should have separate functions to get width and height. It's more consistent with other > functions in the new API and also avoids the need for the non-opaque MirExtent.
| Cemil Azizoglu (cemil-azizoglu) wrote : | # |
> Pasting my argument for having separate function, from the old MP:
>
> > Perhaps we should have separate functions to get width and height. It's more
> consistent with other > functions in the new API and also avoids the need for
> the non-opaque MirExtent.
Yes there are other APIs that use *_x(), *_y(). Although, I like the extents/
| Kevin DuBois (kdub) wrote : | # |
needs fixing:
mir_output_
other than that, lgtm
non-blocking trivialities:
Might be helpful to copy this line:
+ * Output orientation, as set by mir_output_
+ * in virtual display space, but does not change its top-left corner.
to the get_width/
+ * \pre 0 ≤ index < mir_output_
prefer <= for C api documentation.
+ * This can be used to refer to the output in other APIs, such as
in other parts of the API?
| Mir CI Bot (mir-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:3360
https:/
Executed test runs:
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
| Mir CI Bot (mir-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:3369
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:3369
http://
Executed test runs:
SUCCESS: http://
FAILURE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:3360
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
- 3370. By Chris Halse Rogers on 2016-02-24
-
Appease the almighty Clang harder
| Mir CI Bot (mir-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:3370
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:3370
http://
Executed test runs:
SUCCESS: http://
FAILURE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
| Andreas Pokorny (andreas-pokorny) wrote : | # |
void mir_output_
+{
+ auto output = client_
+
+ auto internal_mode = reinterpret_
+ ptrdiff_t offset = internal_mode - output->modes;
+ int index = offset / sizeof(
+
+ mir::require(index >= 0);
+ mir::require(index < static_
+
+ output-
+}
I believe the offset / sizeof() is wrong and should be / could be:
void mir_output_
+{
+ auto output = client_
+
+ auto index = std::distance(
+
+ mir::require(index >= 0);
+ mir::require(index < static_
+
+ output-
+}
nits:
----
There are various longer than 80 columns in the new mirclient display config header and client_to_config is beyond 125 columns
-----
+1198 The new test cases could get an updated year/author info.
- 3371. By Chris Halse Rogers on 2016-02-24
-
Supplicants for the almighty clang must be consistent.
- 3372. By Chris Halse Rogers on 2016-02-24
-
Use std::distance instead of open-coding it.
- 3373. By Chris Halse Rogers on 2016-02-24
-
Update copyright on new tests
- 3374. By Chris Halse Rogers on 2016-02-24
-
Wrap header at 80 cols
| Mir CI Bot (mir-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:3374
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: 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 : | # |
StubDisplayConf
| Alan Griffiths (alan-griffiths) wrote : | # |
The doxygen markup is seriously b. E.g.
+ * \note The MirOutput handle is only valid while \param config is valid.
The \param tag is for documenting a parameter, not referring to it in the note text. The result looks like:
Note
The MirOutput handle is only valid while
Parameters
config is valid.
In addition, for the functions to appear in the "MIR graphics tools API" documentation module the definitions need to be enclosed in:
/**
* \addtogroup mir_toolkit
* @{
*/
...
/**@}*/
Please run $ make doc && firefox doc/html/
| Chris Halse Rogers (raof) wrote : | # |
> StubDisplayConf
> output). That seems reasonable, but is that part of the new API?
Kind of; the new API has no notion of cards. This is reasonable because none of our existing backends can handle multiple cards, and once we *do* support multiple cards the existing API we have is ill-suited to handling them (for example, you can have an output connected to more than one card).
Urgh. I did briefly check the documentation, but didn't notice that. I'm clearly misrememdering the doxygen markup to reference a function argument...
| Chris Halse Rogers (raof) wrote : | # |
Ok. That's not formatted *quite* how I want it, but it's at least not borken!
- 3375. By Chris Halse Rogers on 2016-02-26
-
Fixup doxygen
Thanks, Alan!
| Mir CI Bot (mir-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:3375
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: 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:/

FAILED: Continuous integration, rev:3309 /code.launchpad .net/~raof/ mir/new- display- api/+merge/ 285832/ +edit-commit- message
No commit message was specified in the merge proposal. Click on the following link and set the commit message (if you want a jenkins rebuild you need to trigger it yourself):
https:/
https:/ /mir-jenkins. ubuntu. com/job/ mir-ci/ 289/ /mir-jenkins. ubuntu. com/job/ build/77/ console /mir-jenkins. ubuntu. com/job/ build-0- fetch/83/ console /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= vivid+overlay/ 79/console /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= xenial/ 79/console /mir-jenkins. ubuntu. com/job/ build-2- binpkg- advanced/ arch=amd64, compiler= gcc,platform= mesa,release= xenial/ 79/console /mir-jenkins. ubuntu. com/job/ build-2- binpkg- advanced/ arch=cross- armhf,compiler= gcc,platform= android, release= vivid+overlay/ 79/console /mir-jenkins. ubuntu. com/job/ build-2- binpkg- advanced/ arch=i386, compiler= gcc,platform= android, release= vivid+overlay/ 79/console /mir-jenkins. ubuntu. com/job/ build-2- binpkg- advanced/ arch=i386, compiler= gcc,platform= mesa,release= xenial/ 79/console
Executed test runs:
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild: /mir-jenkins. ubuntu. com/job/ mir-ci/ 289/rebuild
https:/