The latest buffer should be released when the bind process begin.
If not latest buffer will be possessed until the window is unbinded.
Change-Id: I95e23c6a3088e4222e1b6f152e718d612450843e
Signed-off-by: hyunho <hhstark.kang@samsung.com>
const std::string& instId, int pid) = 0;
virtual void OnBufferChanged(int type, std::shared_ptr<WlBuffer> tbm, int fd,
uint32_t size, uint32_t time) = 0;
+ virtual void OnBind() = 0;
};
} // namespace screen_connector
SendTouchCancel();
RemoteSurfaceManager::GetInst().Bind(*(impl_->surface_), *surface);
impl_->bind_surface_ = surface;
+ OnBind();
}
void RemoteSurface::Unbind() {
int fd, uint32_t size, uint32_t time) {
}
+void RemoteSurface::OnBind() {
+}
+
const std::string& RemoteSurface::GetAppId() const {
return impl_->app_id_;
}
const std::string& instId, int pid) override;
void OnBufferChanged(int type, std::shared_ptr<WlBuffer> tbm, int fd,
uint32_t size, uint32_t time) override;
+ void OnBind() override;
static void SetDelayedResumingTime(uint32_t ms);
static void InitManager();
img->listener_->OnMove(*img, eventInfo);
}
+void Image::ClearTbm() {
+ LOGI("clear tbm");
+ prev_buf_.reset();
+}
+
void Image::Update(std::shared_ptr<WlBuffer> tbm) {
int width;
int height;
virtual ~Image();
virtual void Update(std::shared_ptr<WlBuffer> tbm);
+ void ClearTbm();
private:
static void MouseInCB(void* data, Evas* e, Evas_Object* obj, void* eventInfo);
impl_->winVisibility_map_.clear();
}
+void RemoteSurfaceEvas::OnBind() {
+ impl_->img_tbm_->ClearTbm();
+}
+
void RemoteSurfaceEvas::OnBufferChanged(int type, std::shared_ptr<WlBuffer> tbm,
int fd, uint32_t size, uint32_t time) {
bool isAdded = false;
if (type != TIZEN_REMOTE_SURFACE_BUFFER_TYPE_TBM)
return;
+ if (GetType() == RemoteSurface::WATCH && RemoteSurface::IsBound())
+ return;
+
if (impl_->img_tbm_.get() == nullptr) {
LOGD("first added !!!! %d %s", type, GetAppId().c_str());
impl_->winVisibility_map_.clear();
int pid) override;
void OnBufferChanged(int type, std::shared_ptr<WlBuffer> tbm, int fd,
uint32_t size, uint32_t time) override;
+ void OnBind() override;
void OnEvasAdded(const std::string& appId, const std::string& instId,
int pid, const EvasObject& image) override;
void OnEvasRemoved(const std::string& appId, const std::string& instId,
if (!rs)
return -1;
+ LOGI("bind window");
rs->Bind(screen_connector::EvasObject(win, false));
return 0;
if (!rs)
return -1;
+ LOGI("bind window");
rs->Unbind();
return 0;