19 #ifndef MIR_CLIENT_CLIENT_BUFFER_STREAM_H_ 20 #define MIR_CLIENT_CLIENT_BUFFER_STREAM_H_ 31 #include <EGL/eglplatform.h> 48 #include <type_traits> 51 std::is_pod<EGLNativeWindowType>::value,
52 "The ClientBufferStream requires that EGLNativeWindowType be no-op convertible to void*");
54 #undef EGLNativeWindowType 55 #define EGLNativeWindowType void* 74 virtual std::shared_ptr<ClientBuffer> get_current_buffer() = 0;
75 virtual uint32_t get_current_buffer_id() = 0;
77 virtual MirWaitHandle* next_buffer(std::function<
void()>
const& done) = 0;
79 virtual std::shared_ptr<MemoryRegion> secure_for_cpu_write() = 0;
81 virtual int swap_interval()
const = 0;
89 virtual bool valid()
const = 0;
92 virtual char const* get_error_message()
const = 0;
95 virtual void buffer_available(mir::protobuf::Buffer
const& buffer) = 0;
96 virtual void buffer_unavailable() = 0;
All things Mir.
Definition: atomic_callback.h:25
Definition: mir_wait_handle.h:31
Definition: mir_native_buffer.h:30
Definition: client_buffer_stream.h:68
Definition: mir_connection.h:96
#define EGLNativeWindowType
Definition: client_buffer_stream.h:55
MirSurfaceParameters is the structure of minimum required information that you must provide to Mir in...
Definition: client_types.h:169