diff options
author | Campbell Barton <ideasman42@gmail.com> | 2017-05-02 19:50:29 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2017-05-02 19:52:39 +0300 |
commit | 3f567535da163df7e77fe9438cc80fb8b2c67b87 (patch) | |
tree | 7b883ebf63eab2be1d0e34ae0fa434ff48a14a18 /source/blender/gpu/intern/gpu_viewport.c | |
parent | 2b0f02057f457acec1ed9444ee7d833ab26d0d33 (diff) |
Draw Manager: OpenGL render support
Works for clay-engine but doesn't draw objects with eevee.
Diffstat (limited to 'source/blender/gpu/intern/gpu_viewport.c')
-rw-r--r-- | source/blender/gpu/intern/gpu_viewport.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/source/blender/gpu/intern/gpu_viewport.c b/source/blender/gpu/intern/gpu_viewport.c index 94c2b022e86..98c3613e1e2 100644 --- a/source/blender/gpu/intern/gpu_viewport.c +++ b/source/blender/gpu/intern/gpu_viewport.c @@ -83,6 +83,24 @@ GPUViewport *GPU_viewport_create(void) return viewport; } +GPUViewport *GPU_viewport_create_from_offscreen(struct GPUOffScreen *ofs) +{ + GPUViewport *viewport = GPU_viewport_create(); + GPU_offscreen_viewport_data_get(ofs, &viewport->fbl->default_fb, &viewport->txl->color, &viewport->txl->depth); + viewport->size[0] = GPU_offscreen_width(ofs); + viewport->size[1] = GPU_offscreen_height(ofs); + return viewport; +} +/** + * Clear vars assigned from offscreen, so we don't free data owned by `GPUOffScreen`. + */ +void GPU_viewport_clear_from_offscreen(GPUViewport *viewport) +{ + viewport->fbl->default_fb = NULL; + viewport->txl->color = NULL; + viewport->txl->depth = NULL; +} + void *GPU_viewport_engine_data_create(GPUViewport *viewport, void *engine_type) { LinkData *ld = MEM_callocN(sizeof(LinkData), "LinkData"); |