diff options
author | Campbell Barton <ideasman42@gmail.com> | 2017-04-25 21:39:25 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2017-04-25 21:59:18 +0300 |
commit | d8e83516e209cbb7c040211da558d7fff9ecc5be (patch) | |
tree | d332524c550188fb9034f3a7c182224427bea01d /source/blender/gpu | |
parent | 041a50291b73b727fdf8bc3192de2917e8563ce0 (diff) |
Draw Manager: support for selection using engines
Needed to remove old draw code entirely.
Object mode selection support, pose and armature still need to be added.
Enabled when 'use_modern_viewport' is set.
Diffstat (limited to 'source/blender/gpu')
-rw-r--r-- | source/blender/gpu/GPU_viewport.h | 3 | ||||
-rw-r--r-- | source/blender/gpu/intern/gpu_viewport.c | 12 |
2 files changed, 13 insertions, 2 deletions
diff --git a/source/blender/gpu/GPU_viewport.h b/source/blender/gpu/GPU_viewport.h index 36e1eea5d61..f1a4e0bbcdb 100644 --- a/source/blender/gpu/GPU_viewport.h +++ b/source/blender/gpu/GPU_viewport.h @@ -89,7 +89,8 @@ void *GPU_viewport_engine_data_create(GPUViewport *viewport, void *engine_type); void *GPU_viewport_engine_data_get(GPUViewport *viewport, void *engine_type); void *GPU_viewport_framebuffer_list_get(GPUViewport *viewport); void *GPU_viewport_texture_list_get(GPUViewport *viewport); -void GPU_viewport_size_get(GPUViewport *viewport, int *size); +void GPU_viewport_size_get(const GPUViewport *viewport, int size[2]); +void GPU_viewport_size_set(GPUViewport *viewport, const int size[2]); bool GPU_viewport_cache_validate(GPUViewport *viewport, unsigned int hash); diff --git a/source/blender/gpu/intern/gpu_viewport.c b/source/blender/gpu/intern/gpu_viewport.c index 162b7e2d87a..3781a9c8be0 100644 --- a/source/blender/gpu/intern/gpu_viewport.c +++ b/source/blender/gpu/intern/gpu_viewport.c @@ -151,12 +151,22 @@ void *GPU_viewport_texture_list_get(GPUViewport *viewport) return viewport->txl; } -void GPU_viewport_size_get(GPUViewport *viewport, int *size) +void GPU_viewport_size_get(const GPUViewport *viewport, int size[2]) { size[0] = viewport->size[0]; size[1] = viewport->size[1]; } +/** + * Special case, this is needed for when we have a viewport without a frame-buffer output + * (occlusion queries for eg) but still need to set the size since it may be used for other calculations. + */ +void GPU_viewport_size_set(GPUViewport *viewport, const int size[2]) +{ + viewport->size[0] = size[0]; + viewport->size[1] = size[1]; +} + bool GPU_viewport_cache_validate(GPUViewport *viewport, unsigned int hash) { bool dirty = false; |