19 #ifndef MIR_SCENE_SURFACE_H_ 20 #define MIR_SCENE_SURFACE_H_ 33 namespace input {
class InputChannel; }
34 namespace shell {
class InputTargeter; }
35 namespace geometry {
struct Rectangle; }
36 namespace graphics {
class CursorImage; }
37 namespace compositor {
class BufferStream; }
42 std::shared_ptr<compositor::BufferStream>
stream;
68 virtual int buffers_ready_for_compositor(
void const* compositor_id)
const = 0;
70 virtual float alpha()
const = 0;
73 virtual void hide() = 0;
74 virtual void show() = 0;
75 virtual bool visible()
const = 0;
89 virtual void set_input_region(std::vector<geometry::Rectangle>
const& region) = 0;
91 virtual void set_transformation(glm::mat4
const& t) = 0;
92 virtual void set_alpha(
float alpha) = 0;
95 virtual void set_cursor_image(std::shared_ptr<graphics::CursorImage>
const& image)
override = 0;
96 virtual std::shared_ptr<graphics::CursorImage> cursor_image()
const override = 0;
98 virtual void add_observer(std::shared_ptr<SurfaceObserver>
const& observer) = 0;
99 virtual void remove_observer(std::weak_ptr<SurfaceObserver>
const& observer) = 0;
103 virtual std::shared_ptr<input::InputChannel> input_channel()
const override = 0;
106 virtual void request_client_surface_close() = 0;
107 virtual std::shared_ptr<Surface> parent()
const = 0;
117 virtual void set_streams(std::list<StreamInfo>
const& streams) = 0;
125 #endif // MIR_SCENE_SURFACE_H_ std::shared_ptr< compositor::BufferStream > stream
Definition: surface.h:42
All things Mir.
Definition: atomic_callback.h:25
Definition: surface_observer.h:44
optional_value< geometry::Size > size
Definition: surface.h:44
Definition: displacement.h:32
void const * CompositorID
Definition: compositor_id.h:27
std::vector< std::shared_ptr< Renderable > > RenderableList
Definition: renderable.h:79
Definition: rectangle.h:33
int const size
Definition: make_socket_rpc_channel.cpp:51
geometry::Displacement displacement
Definition: surface.h:43