union _updated {
struct _slave {
- int (*send)(const char *pkgname, const char *id, int idx, int x, int y, int w, int h, int gbar, const char *descfile);
+ int (*send)(const char *pkgname, const char *id, dynamicbox_buffer_h handle, int idx, int x, int y, int w, int h, int gbar, const char *descfile);
} slave;
struct _app {
- int (*send)(const char *id, int idx, int x, int y, int w, int h, int gbar);
+ int (*send)(dynamicbox_buffer_h handle, int idx, int x, int y, int w, int h, int gbar);
} app;
} updated;
} s_info = {
};
#define FUNC_PREFIX "dynamicbox_"
-#define FUNC_DYNAMICBOX_SEND_UPDATED FUNC_PREFIX "send_updated"
-#define FUNC_DYNAMICBOX_PROVIDER_APP_UPDATED FUNC_PREFIX "provider_app_updated"
+#define FUNC_DYNAMICBOX_SEND_UPDATED FUNC_PREFIX "send_buffer_updated"
+#define FUNC_DYNAMICBOX_PROVIDER_APP_UPDATED FUNC_PREFIX "provider_app_buffer_updated"
#define FUNC_DYNAMICBOX_FIND_PKGNAME FUNC_PREFIX "find_pkgname"
#define FUNC_DYNAMICBOX_REQUEST_UPDATE_BY_ID FUNC_PREFIX "request_update_by_id"
#define FUNC_DYNAMICBOX_TRIGGER_UPDATE_MONITOR FUNC_PREFIX "trigger_update_monitor"
}
}
-static int send_updated(const char *pkgname, const char *id, int idx, int x, int y, int w, int h, int gbar, const char *descfile)
+static int send_updated(const char *pkgname, const char *id, dynamicbox_buffer_h handle, int idx, int x, int y, int w, int h, int gbar, const char *descfile)
{
int ret = DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (s_info.type == LOAD_TYPE_APP) {
- ret = s_info.updated.app.send(id, idx, x, y, w, h, gbar);
+ ret = s_info.updated.app.send(handle, idx, x, y, w, h, gbar);
} else if (s_info.type == LOAD_TYPE_SLAVE) {
- ret = s_info.updated.slave.send(pkgname, id, idx, x, y, w, h, gbar, descfile);
+ /**
+ * pkgname, id are used for finding handle of direct connection.
+ */
+ ret = s_info.updated.slave.send(pkgname, id, handle, idx, x, y, w, h, gbar, descfile);
} else {
dynamicbox_damage_region_t region = {
.x = x,
.w = w,
.h = h,
};
- ret = dynamicbox_provider_send_updated(pkgname, id, idx, ®ion, gbar, descfile);
+ ret = dynamicbox_provider_send_buffer_updated(handle, idx, ®ion, gbar, descfile);
}
return ret;
*/
if (user_data->is_gbar == 1) {
- if (send_updated(pkgname, id, DBOX_PRIMARY_BUFFER, 0, 0, w, h, user_data->is_gbar, NULL) < 0) {
+ if (send_updated(pkgname, id, handle, DBOX_PRIMARY_BUFFER, 0, 0, w, h, user_data->is_gbar, NULL) < 0) {
ErrPrint("Failed to send GBAR updated (%s)\n", id);
}
} else {
- if (send_updated(pkgname, id, DBOX_PRIMARY_BUFFER, 0, 0, w, h, user_data->is_gbar, NULL) < 0) {
+ if (send_updated(pkgname, id, handle, DBOX_PRIMARY_BUFFER, 0, 0, w, h, user_data->is_gbar, NULL) < 0) {
ErrPrint("Failed to send updated (%s)\n", id);
}
}
ErrPrint("Failed to get size (%s)\n", id);
}
- ret = send_updated(pkgname, id, idx, 0, 0, w, h, user_data->is_gbar, NULL);
+ ret = send_updated(pkgname, id, handle, idx, 0, 0, w, h, user_data->is_gbar, NULL);
if (ret < 0) {
ErrPrint("Failed to send GBAR updated (%s) %d\n", id, idx);
}
int w;
int h;
int pixel_size;
+ PERF_INIT();
+ PERF_BEGIN();
if (!handle) {
+ PERF_MARK("post_render");
return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
user_data = dynamicbox_provider_buffer_user_data(handle);
if (!user_data) {
+ PERF_MARK("post_render");
return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
if (!user_data->accelerated) {
+ PERF_MARK("post_render");
return DBOX_STATUS_ERROR_NONE;
}
pkgname = dynamicbox_provider_buffer_pkgname(handle);
if (!pkgname) {
ErrPrint("Invalid buffer handle\n");
+ PERF_MARK("post_render");
return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
id = dynamicbox_provider_buffer_id(handle);
if (!id) {
ErrPrint("Invalid buffer handler\n");
+ PERF_MARK("post_render");
return DBOX_STATUS_ERROR_INVALID_PARAMETER;
}
ret = dynamicbox_provider_buffer_post_render(handle);
if (ret < 0) {
ErrPrint("Failed to post render processing\n");
+ PERF_MARK("post_render");
return ret;
}
* to make more efficient updates
*/
- if (send_updated(pkgname, id, DBOX_PRIMARY_BUFFER, 0, 0, w, h, user_data->is_gbar, NULL) < 0) {
+ if (send_updated(pkgname, id, handle, DBOX_PRIMARY_BUFFER, 0, 0, w, h, user_data->is_gbar, NULL) < 0) {
ErrPrint("Failed to send GBAR updated (%s)\n", id);
}
+ PERF_MARK("post_render");
return DBOX_STATUS_ERROR_NONE;
}