diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2018-03-14 00:38:07 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2018-03-14 14:41:00 +0300 |
commit | e22bc559b0a3c918e508f3ac04fb3417fa308947 (patch) | |
tree | 386ad0143dc32d145c29386e2bcfa6f5e3ffa9e3 /source | |
parent | f7f3b08977490e5ed2da93e46a1fce90a0630cff (diff) |
DRW: Add DRW_viewport_invert_size_get for more ease of use.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/draw/intern/DRW_render.h | 1 | ||||
-rw-r--r-- | source/blender/draw/intern/draw_manager.c | 12 | ||||
-rw-r--r-- | source/blender/draw/intern/draw_manager.h | 1 |
3 files changed, 13 insertions, 1 deletions
diff --git a/source/blender/draw/intern/DRW_render.h b/source/blender/draw/intern/DRW_render.h index 33b89bb8024..b4321e5790f 100644 --- a/source/blender/draw/intern/DRW_render.h +++ b/source/blender/draw/intern/DRW_render.h @@ -429,6 +429,7 @@ void DRW_viewport_matrix_override_unset(DRWViewportMatrixType type); void DRW_viewport_matrix_override_unset_all(void); const float *DRW_viewport_size_get(void); +const float *DRW_viewport_invert_size_get(void); const float *DRW_viewport_screenvecs_get(void); const float *DRW_viewport_pixelsize_get(void); bool DRW_viewport_is_persp_get(void); diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c index 2f8cf04f476..fe91a8d5aae 100644 --- a/source/blender/draw/intern/draw_manager.c +++ b/source/blender/draw/intern/draw_manager.c @@ -297,7 +297,12 @@ void DRW_engine_viewport_data_size_get( const float *DRW_viewport_size_get(void) { - return &DST.size[0]; + return DST.size; +} + +const float *DRW_viewport_invert_size_get(void) +{ + return DST.inv_size; } const float *DRW_viewport_screenvecs_get(void) @@ -364,6 +369,8 @@ static void drw_viewport_var_init(void) GPU_viewport_size_get(DST.viewport, size); DST.size[0] = size[0]; DST.size[1] = size[1]; + DST.inv_size[0] = 1.0f / size[0]; + DST.inv_size[1] = 1.0f / size[1]; DefaultFramebufferList *fbl = (DefaultFramebufferList *)GPU_viewport_framebuffer_list_get(DST.viewport); DST.default_framebuffer = fbl->default_fb; @@ -393,6 +400,9 @@ static void drw_viewport_var_init(void) DST.size[0] = 0; DST.size[1] = 0; + DST.inv_size[0] = 0; + DST.inv_size[1] = 0; + DST.default_framebuffer = NULL; DST.vmempool = NULL; } diff --git a/source/blender/draw/intern/draw_manager.h b/source/blender/draw/intern/draw_manager.h index bde6a4ab24d..529166b5792 100644 --- a/source/blender/draw/intern/draw_manager.h +++ b/source/blender/draw/intern/draw_manager.h @@ -278,6 +278,7 @@ typedef struct DRWManager { GPUViewport *viewport; struct GPUFrameBuffer *default_framebuffer; float size[2]; + float inv_size[2]; float screenvecs[2][3]; float pixsize; |