evas_object_image_colorspace_set(__evasView, EVAS_COLORSPACE_ARGB8888);
// callbacks
- window->registerCallbackSizeChanged(this, std::bind(&DSRenderViewEcoreEvasImpl::__onWindowSizeChanged, this, std::placeholders::_1));
+ window->registerCallbackBufferChanged(this, std::bind(&DSRenderViewEcoreEvasImpl::__onWindowBufferChanged, this, std::placeholders::_1));
}
DSRenderViewEcoreEvasImpl::~DSRenderViewEcoreEvasImpl()
return true;
}
-
-void DSRenderViewEcoreEvasImpl::__onWindowSizeChanged(std::shared_ptr<stSize> size)
+void DSRenderViewEcoreEvasImpl::__onWindowBufferChanged(std::shared_ptr<IDSBuffer> buffer)
{
- //TODO: set the View Size with size
+ std::shared_ptr<stSize> bufferSize = buffer->getSize();
+
+ DSLOG_INF("DSRenderViewEcoreEvasImpl", "Window Buffer changed. buffer(%p) size(%d, %d)", buffer.get(), bufferSize->w, bufferSize->h);
+
+ if (!setBuffer(buffer)) {
+ DSLOG_ERR("DSRenderViewEcoreEvasImpl", "setBuffer fails.");
+ return;
+ }
+
+ evas_object_image_size_set(__evasView, bufferSize->w, bufferSize->h);
+ evas_object_image_pixels_dirty_set(__evasView, 1);
+ evas_object_resize(__evasView, bufferSize->w, bufferSize->h);
+ evas_object_show(__evasView);
}
} // namespace display_server