~ubuntu-branches/ubuntu/utopic/mir/utopic-proposed

« back to all changes in this revision

Viewing changes to src/platform/graphics/android/android_display.cpp

  • Committer: Package Import Robot
  • Author(s): Ubuntu daily release
  • Date: 2014-03-10 19:28:46 UTC
  • mto: This revision was merged to the branch mainline in revision 63.
  • Revision ID: package-import@ubuntu.com-20140310192846-rq9qm3ec26yrelo2
Tags: upstream-0.1.6+14.04.20140310
ImportĀ upstreamĀ versionĀ 0.1.6+14.04.20140310

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
 */
18
18
 
19
19
#include "mir/graphics/platform.h"
20
 
#include "mir/graphics/display_configuration.h"
 
20
#include "android_display_configuration.h"
21
21
#include "mir/graphics/display_report.h"
22
22
#include "mir/graphics/display_buffer.h"
23
23
#include "mir/graphics/gl_context.h"
24
24
#include "mir/graphics/egl_resources.h"
25
25
#include "android_display.h"
26
26
#include "display_builder.h"
27
 
#include "display_device.h"
28
27
#include "mir/geometry/rectangle.h"
29
28
 
30
29
namespace mga=mir::graphics::android;
35
34
                                    std::shared_ptr<DisplayReport> const& display_report)
36
35
    : display_builder{display_builder},
37
36
      gl_context{display_builder->display_format(), *display_report},
38
 
      display_device(display_builder->create_display_device()),
39
 
      display_buffer{display_builder->create_display_buffer(display_device, gl_context)},
40
 
      current_configuration{display_buffer->view_area().size}
 
37
      display_buffer{display_builder->create_display_buffer(gl_context)}
41
38
{
42
39
    display_report->report_successful_setup_of_native_resources();
43
40
 
55
52
std::unique_ptr<mg::DisplayConfiguration> mga::AndroidDisplay::configuration() const
56
53
{
57
54
    return std::unique_ptr<mg::DisplayConfiguration>(
58
 
        new mga::AndroidDisplayConfiguration(current_configuration)
59
 
    );
 
55
        new mga::AndroidDisplayConfiguration(display_buffer->configuration()));
60
56
}
61
57
 
62
58
void mga::AndroidDisplay::configure(mg::DisplayConfiguration const& configuration)
63
59
{
64
 
    MirOrientation orientation = mir_orientation_normal;
65
 
 
66
60
    configuration.for_each_output([&](mg::DisplayConfigurationOutput const& output)
67
61
    {
68
 
        // TODO: Properly support multiple outputs
69
 
        display_device->mode(output.power_mode);
70
 
        orientation = output.orientation;
 
62
        display_buffer->configure(output);
71
63
    });
72
 
    current_configuration = dynamic_cast<mga::AndroidDisplayConfiguration const&>(configuration);
73
 
 
74
 
    /*
75
 
     * It's tempting to put orient() into the base class and so avoid this
76
 
     * cast, but we only need it in the Android implementation right now.
77
 
     */
78
 
    if (android::DisplayBuffer* db =
79
 
            dynamic_cast<mga::DisplayBuffer*>(display_buffer.get()))
80
 
    {
81
 
        db->orient(orientation);
82
 
    }
83
64
}
84
65
 
85
66
void mga::AndroidDisplay::register_configuration_change_handler(