19 #ifndef MIR_COMPOSITOR_COMPOSITING_SCREENCAST_H_
20 #define MIR_COMPOSITOR_COMPOSITING_SCREENCAST_H_
24 #include <unordered_map>
29 namespace geometry {
struct Rectangle; }
34 class GraphicBufferAllocator;
39 namespace detail {
struct ScreencastSessionContext; }
47 std::shared_ptr<Scene>
const& scene,
48 std::shared_ptr<graphics::Display>
const& display,
49 std::shared_ptr<graphics::GraphicBufferAllocator>
const& buffer_allocator,
50 std::shared_ptr<DisplayBufferCompositorFactory>
const& db_compositor_factory);
61 std::shared_ptr<detail::ScreencastSessionContext>
66 std::mutex session_mutex;
67 std::shared_ptr<Scene>
const scene;
68 std::shared_ptr<graphics::Display>
const display;
69 std::shared_ptr<graphics::GraphicBufferAllocator>
const buffer_allocator;
70 std::shared_ptr<DisplayBufferCompositorFactory>
const db_compositor_factory;
73 std::shared_ptr<detail::ScreencastSessionContext>> session_contexts;
All things Mir.
Definition: atomic_callback.h:25
IntWrapper< detail::ScreencastSessionIdTag, uint32_t > ScreencastSessionId
Definition: screencast.h:34
std::shared_ptr< graphics::Buffer > capture(frontend::ScreencastSessionId id)
Definition: compositing_screencast.cpp:116
void destroy_session(frontend::ScreencastSessionId id)
Definition: compositing_screencast.cpp:104
Definition: compositing_screencast.h:43
CompositingScreencast(std::shared_ptr< Scene > const &scene, std::shared_ptr< graphics::Display > const &display, std::shared_ptr< graphics::GraphicBufferAllocator > const &buffer_allocator, std::shared_ptr< DisplayBufferCompositorFactory > const &db_compositor_factory)
Definition: compositing_screencast.cpp:72
Definition: screencast.h:36
Definition: int_wrapper.h:27
frontend::ScreencastSessionId create_session(geometry::Rectangle const ®ion, geometry::Size const &size, MirPixelFormat pixel_format)
Definition: compositing_screencast.cpp:84
Definition: rectangle.h:33
Definition: display_buffer_compositor_factory.h:36
int const size
Definition: make_socket_rpc_channel.cpp:51