From 8feec5ee3ba551859d787f077d797bc1b19d4dc2 Mon Sep 17 00:00:00 2001 From: Vito Caputo Date: Mon, 10 Oct 2022 19:16:21 -0700 Subject: sars: add ndc->bpc conversion helpers bpc = boxed projection coordinates, this basically comes from eon just like the pillar/letter boxing code for fullscreen stuff did. Previously I didn't need this part of that code, but the touch coordinates are in ndc and those need to get transformed by the projection transform's inverse. --- src/sars.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/sars.h') diff --git a/src/sars.h b/src/sars.h index 734e016..d5325e5 100644 --- a/src/sars.h +++ b/src/sars.h @@ -45,6 +45,7 @@ typedef struct sars_t { sars_winmode_t winmode; m4f_t projection_x; + m4f_t projection_x_inv; } sars_t; void sars_canvas_size(sars_t *sars, int *res_width, int *res_height); @@ -53,6 +54,8 @@ void sars_canvas_from_ndc(sars_t *sars, float x, float y, int *res_x, int *res_y void sars_viewport_size(sars_t *sars, int *res_width, int *res_height); void sars_viewport_to_ndc(sars_t *sars, int x, int y, float *res_x, float *res_y); void sars_viewport_from_ndc(sars_t *sars, float x, float y, int *res_x, int *res_y); +void sars_ndc_to_bpc(sars_t *sars, float x, float y, float *res_x, float *res_y); +void sars_viewport_to_bpc(sars_t *sars, int x, int y, float *res_x, float *res_y); uint32_t sars_viewport_id(sars_t *sars); void sars_render(play_t *play, void *context); void sars_dispatch(play_t *play, void *context, SDL_Event *event); -- cgit v1.2.3