~mir-team/miral/release

« back to all changes in this revision

Viewing changes to miral-kiosk/sw_splash.cpp

  • Committer: Bileto Bot
  • Date: 2017-06-21 08:34:34 UTC
  • mfrom: (360.1.1 miral-release)
  • Revision ID: ci-train-bot@canonical.com-20170621083434-e7ftkyg5qr2fzsao
* New upstream release 1.4.0 (https://launchpad.net/miral/+milestone/1.4.0)
  - ABI summary:
    . miral ABI unchanged at 2
  - Enhancements:
    . Support for passing messages to enable Drag & Drop
    . Support for client requested move
    . Port to the undeprecated Mir APIs
    . Added "--cursor-theme" option when configuring a cursor theme
    . Drop support for Mir versions before 0.26
  - Bugs fixed:

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
 
19
19
#include "sw_splash.h"
20
20
 
 
21
#include <mir/client/display_config.h>
 
22
#include <mir/client/surface.h>
21
23
#include <mir/client/window.h>
 
24
#include <mir/client/window_spec.h>
22
25
 
23
26
#include <mir_toolkit/mir_buffer_stream.h>
24
27
 
26
29
#include <cstring>
27
30
#include <thread>
28
31
#include <mutex>
29
 
#include <mir/client/window_spec.h>
30
32
 
31
33
namespace
32
34
{
60
62
    return *pixel_formats;
61
63
}
62
64
 
63
 
auto create_window(MirConnection* connection, MirPixelFormat pixel_format) -> mir::client::Window
 
65
auto create_window(MirConnection* connection, mir::client::Surface const& surface) -> mir::client::Window
64
66
{
65
 
    return mir::client::WindowSpec::for_normal_window(connection, 42, 42, pixel_format)
 
67
    int id = 0;
 
68
    int width = 0;
 
69
    int height = 0;
 
70
 
 
71
    mir::client::DisplayConfig{connection}.for_each_output([&](MirOutput const* output)
 
72
        {
 
73
            if (mir_output_get_connection_state(output) == mir_output_connection_state_connected &&
 
74
                mir_output_is_enabled(output))
 
75
            {
 
76
                id = mir_output_get_id(output);
 
77
 
 
78
                MirOutputMode const* mode = mir_output_get_current_mode(output);
 
79
                width = mir_output_mode_get_width(mode);
 
80
                height = mir_output_mode_get_height(mode);
 
81
            }
 
82
        });
 
83
 
 
84
    return mir::client::WindowSpec::for_normal_window(connection, width, height)
66
85
        .set_name("splash")
67
 
        .set_buffer_usage(mir_buffer_usage_software)
68
 
        .set_fullscreen_on_output(0)
 
86
        .set_fullscreen_on_output(id)
 
87
        .add_surface(surface, width, height, 0, 0)
69
88
        .create_window();
70
89
}
71
90
 
128
147
        return;
129
148
    };
130
149
 
131
 
    auto const surface = create_window(connection, pixel_format);
 
150
 
 
151
    mir::client::Surface surface{mir_connection_create_render_surface_sync(connection, 42, 42)};
 
152
    MirBufferStream* buffer_stream = mir_render_surface_get_buffer_stream(surface, 42, 42, pixel_format);
 
153
 
 
154
    auto const window = create_window(connection, surface);
132
155
 
133
156
    MirGraphicsRegion graphics_region;
134
 
    MirBufferStream* buffer_stream = mir_window_get_buffer_stream(surface);
135
157
 
136
158
    auto const time_limit = std::chrono::steady_clock::now() + std::chrono::seconds(2);
137
159