~mir-team/mir/trunk

« back to all changes in this revision

Viewing changes to src/client/mir_surface.h

  • Committer: Tarmac
  • Author(s): Daniel van Vugt
  • Date: 2013-03-22 03:33:00 UTC
  • mfrom: (440.1.138 surface-types)
  • Revision ID: tarmac-20130322033300-qj6cjcvsqhl4mpaw
Add support for surface types (client API, protocol and server).

This work will also form the foundation of supporting surface states.

Approved by PS Jenkins bot, Alan Griffiths, Robert Ancell.

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
#include "mir/geometry/pixel_format.h"
24
24
#include "mir/geometry/dimensions.h"
25
25
#include "mir_toolkit/mir_client_library.h"
 
26
#include "mir_toolkit/common.h"
26
27
#include "client_buffer_depository.h"
27
28
#include "mir_wait_handle.h"
28
29
#include "mir_client_surface.h"
72
73
    void release_cpu_region();
73
74
    EGLNativeWindowType generate_native_window();
74
75
 
 
76
    MirWaitHandle* configure(MirSurfaceAttrib a, int value);
 
77
    int attrib(MirSurfaceAttrib a) const;
 
78
 
75
79
private:
 
80
    void on_configured();
76
81
    void process_incoming_buffer();
77
82
    void populate(MirBufferPackage& buffer_package);
78
83
    void created(mir_surface_lifecycle_callback callback, void * context);
88
93
    MirConnection *connection;
89
94
    MirWaitHandle create_wait_handle;
90
95
    MirWaitHandle next_buffer_wait_handle;
 
96
    MirWaitHandle configure_wait_handle;
91
97
 
92
98
    int last_buffer_id;
93
99
 
96
102
 
97
103
    std::shared_ptr<mir::client::Logger> logger;
98
104
    std::shared_ptr<EGLNativeWindowType> accelerated_window;
 
105
 
 
106
    mir::protobuf::SurfaceSetting configure_result;
 
107
 
 
108
    // Cache of latest SurfaceSettings returned from the server
 
109
    int attrib_cache[mir_surface_attrib_arraysize_];
99
110
};
100
111
 
101
112
#endif /* MIR_CLIENT_PRIVATE_MIR_WAIT_HANDLE_H_ */