From 81a2dc8403546faed4bd33561fe1a2503de6bf0d Mon Sep 17 00:00:00 2001 From: Taekyun Kim Date: Thu, 1 Oct 2015 18:30:36 +0900 Subject: [PATCH] pepper: Promote view coordinate conversion functions to APIs Change-Id: Id884ec209120036aea4058130a088756923ef464 --- src/lib/pepper/pepper-internal.h | 10 ------- src/lib/pepper/pepper.h | 6 +++++ src/lib/pepper/view.c | 56 +++++++++++++++++++--------------------- 3 files changed, 32 insertions(+), 40 deletions(-) diff --git a/src/lib/pepper/pepper-internal.h b/src/lib/pepper/pepper-internal.h index a0ec4cc..f7f12e7 100644 --- a/src/lib/pepper/pepper-internal.h +++ b/src/lib/pepper/pepper-internal.h @@ -423,16 +423,6 @@ pepper_view_update(pepper_view_t *view); void pepper_view_surface_damage(pepper_view_t *view); -void -pepper_view_get_local_coordinate(pepper_view_t *view, - double global_x, double global_y, - double *local_x, double *local_y); - -void -pepper_view_get_global_coordinate(pepper_view_t *view, - double local_x, double local_y, - double *global_x, double *global_y); - struct pepper_plane { pepper_object_t base; diff --git a/src/lib/pepper/pepper.h b/src/lib/pepper/pepper.h index 9a8eb0a..13d8878 100644 --- a/src/lib/pepper/pepper.h +++ b/src/lib/pepper/pepper.h @@ -548,6 +548,12 @@ pepper_view_is_visible(pepper_view_t *view); PEPPER_API pepper_bool_t pepper_view_is_opaque(pepper_view_t *view); +PEPPER_API void +pepper_view_get_local_coordinate(pepper_view_t *view, double gx, double gy, double *lx, double *ly); + +PEPPER_API void +pepper_view_get_global_coordinate(pepper_view_t *view, double lx, double ly, double *gx, double *gy); + #ifdef __cplusplus } #endif diff --git a/src/lib/pepper/view.c b/src/lib/pepper/view.c index 7df3945..e0d96ff 100644 --- a/src/lib/pepper/view.c +++ b/src/lib/pepper/view.c @@ -55,36 +55,6 @@ pepper_view_surface_damage(pepper_view_t *view) } } -void -pepper_view_get_local_coordinate(pepper_view_t *view, - double global_x, double global_y, - double *local_x, double *local_y) -{ - pepper_vec4_t pos = { global_x, global_y, 0.0, 1.0 }; - - pepper_mat4_transform_vec4(&view->global_transform_inverse, &pos); - - PEPPER_ASSERT(pos.w >= 1e-6); - - *local_x = pos.x / pos.w; - *local_y = pos.y / pos.w; -} - -void -pepper_view_get_global_coordinate(pepper_view_t *view, - double local_x, double local_y, - double *global_x, double *global_y) -{ - pepper_vec4_t pos = { local_x, local_y, 0.0, 1.0 }; - - pepper_mat4_transform_vec4(&view->global_transform, &pos); - - PEPPER_ASSERT(pos.w >= 1e-6); - - *global_x = pos.x / pos.w; - *global_y = pos.y / pos.w; -} - static pepper_list_t * view_insert(pepper_view_t *view, pepper_list_t *pos, pepper_bool_t subtree) { @@ -538,3 +508,29 @@ pepper_view_is_opaque(pepper_view_t *view) return PEPPER_FALSE; } + +PEPPER_API void +pepper_view_get_local_coordinate(pepper_view_t *view, double gx, double gy, double *lx, double *ly) +{ + pepper_vec4_t pos = { gx, gy, 0.0, 1.0 }; + + pepper_mat4_transform_vec4(&view->global_transform_inverse, &pos); + + PEPPER_ASSERT(pos.w >= 1e-6); + + *lx = pos.x / pos.w; + *ly = pos.y / pos.w; +} + +PEPPER_API void +pepper_view_get_global_coordinate(pepper_view_t *view, double lx, double ly, double *gx, double *gy) +{ + pepper_vec4_t pos = { lx, ly, 0.0, 1.0 }; + + pepper_mat4_transform_vec4(&view->global_transform, &pos); + + PEPPER_ASSERT(pos.w >= 1e-6); + + *gx = pos.x / pos.w; + *gy = pos.y / pos.w; +} -- 2.7.4