19 #ifndef MIR_CLIENT_BUFFER_STREAM_H
20 #define MIR_CLIENT_BUFFER_STREAM_H
22 #include "mir_protobuf.pb.h"
32 #include <EGL/eglplatform.h>
62 std::shared_ptr<ClientBufferFactory>
const& buffer_factory,
63 std::shared_ptr<EGLNativeWindowFactory>
const& native_window_factory,
64 protobuf::BufferStream
const& protobuf_bs,
65 std::shared_ptr<logging::Logger>
const& logger);
90 void process_buffer(protobuf::Buffer
const& buffer);
91 void next_buffer_received(
92 std::function<
void()> done);
94 void release_cpu_region();
96 mutable std::mutex mutex;
98 mir::protobuf::DisplayServer& display_server;
101 std::shared_ptr<EGLNativeWindowFactory>
const native_window_factory;
103 mir::protobuf::BufferStream protobuf_bs;
108 std::shared_ptr<mir::client::PerfReport>
const perf_report;
110 std::shared_ptr<EGLNativeWindowType> egl_native_window_;
115 std::shared_ptr<MemoryRegion> secured_region;
123 #endif // MIR_CLIENT_BUFFER_STREAM_H
BufferStream(mir::protobuf::DisplayServer &server, BufferStreamMode mode, std::shared_ptr< ClientBufferFactory > const &buffer_factory, std::shared_ptr< EGLNativeWindowFactory > const &native_window_factory, protobuf::BufferStream const &protobuf_bs, std::shared_ptr< logging::Logger > const &logger)
All things Mir.
Definition: buffer_stream.h:37
A factory for creating client-side representations of graphics buffers.
Definition: client_buffer_factory.h:38
BufferStreamMode
Definition: buffer_stream.h:51
EGLNativeWindowType egl_native_window() override
Definition: buffer_stream.cpp:216
Definition: mir_wait_handle.h:31
Definition: buffer_stream.h:54
virtual ~BufferStream()
Definition: buffer_stream.cpp:125
Definition: buffer_stream.h:57
std::shared_ptr< MemoryRegion > secure_for_cpu_write() override
Definition: buffer_stream.cpp:227
MirWaitHandle * next_buffer(std::function< void()> const &done) override
Definition: buffer_stream.cpp:160
void request_and_wait_for_configure(MirSurfaceAttrib attrib, int) override
Definition: buffer_stream.cpp:273
Responsible for taking the buffer data sent from the server and wrapping it in a ClientBuffer.
Definition: client_buffer_depository.h:46
Definition: egl_native_surface.h:31
Definition: client_buffer.h:43
Definition: perf_report.h:27
Definition: egl_native_window_factory.h:32
void request_and_wait_for_next_buffer() override
Definition: buffer_stream.cpp:258
Definition: client_buffer_stream.h:37
BufferStream & operator=(BufferStream const &)=delete
Definition: client_buffer.h:52
int swap_interval() const override
Definition: buffer_stream.cpp:308
std::shared_ptr< mir::client::ClientBuffer > get_current_buffer() override
Definition: buffer_stream.cpp:210
void set_swap_interval(int interval) override
Definition: buffer_stream.cpp:314
uint32_t get_current_buffer_id() override
Definition: buffer_stream.cpp:302
Definition: buffer_stream.h:53
MirSurfaceParameters get_parameters() const override
Definition: buffer_stream.cpp:246
MirSurfaceParameters is the structure of minimum required information that you must provide to Mir in...
Definition: client_types.h:138