int screen_connector_toolkit_set_changed_event_filter(
screen_connector_toolkit_h h,
screen_connector_changed_event_filter_type type);
+int screen_connector_toolkit_dispose_buffer(screen_connector_toolkit_h handle,
+ const struct wl_buffer* tbm);
#ifdef __cplusplus
}
screen_connector::RemoteSurface::GetAppId().c_str(),
screen_connector::RemoteSurface::GetInstId().c_str(),
screen_connector::RemoteSurface::GetPid(), data_);
+ prev_tbms_.push_back(std::move(tbm));
+ }
+ }
+
+ void DisposeBuffer(const struct wl_buffer* tbm) {
+ for (auto& i : prev_tbms_) {
+ if (i->GetRaw() == tbm) {
+ prev_tbms_.remove(i);
+ return;
+ }
}
}
private:
screen_connector_toolkit_ops ops_;
void* data_;
+ std::list<std::shared_ptr<screen_connector::WlBuffer>> prev_tbms_;
};
class Toolkit {
(screen_connector::RemoteSurface::ChangedEventFilter)type);
return 0;
}
+
+extern "C" EXPORT_API int
+screen_connector_toolkit_dispose_buffer(screen_connector_toolkit_h handle,
+ const struct wl_buffer* tbm) {
+ RemoteSurfaceToolkit* rs = static_cast<RemoteSurfaceToolkit*>(handle);
+ rs->DisposeBuffer(tbm);
+ return 0;
+}