Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2018-03-14 00:38:07 +0300
committerClément Foucault <foucault.clem@gmail.com>2018-03-14 14:41:00 +0300
commite22bc559b0a3c918e508f3ac04fb3417fa308947 (patch)
tree386ad0143dc32d145c29386e2bcfa6f5e3ffa9e3 /source/blender/draw
parentf7f3b08977490e5ed2da93e46a1fce90a0630cff (diff)
DRW: Add DRW_viewport_invert_size_get for more ease of use.
Diffstat (limited to 'source/blender/draw')
-rw-r--r--source/blender/draw/intern/DRW_render.h1
-rw-r--r--source/blender/draw/intern/draw_manager.c12
-rw-r--r--source/blender/draw/intern/draw_manager.h1
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;