Commit: 711c3f504e68b6a592368a6954b45c191f0dfef7
Author: Nick Wu
Date:   Mon Jun 11 10:38:23 2018 +0800
Branches: soc-2018-npr
https://developer.blender.org/rB711c3f504e68b6a592368a6954b45c191f0dfef7

Added multisampe support functions in DRW. transform_to_screen later.

===================================================================

M       source/blender/draw/intern/DRW_render.h
M       source/blender/draw/intern/draw_manager_texture.c

===================================================================

diff --git a/source/blender/draw/intern/DRW_render.h 
b/source/blender/draw/intern/DRW_render.h
index f79a2405c3f..0edb8c30b15 100644
--- a/source/blender/draw/intern/DRW_render.h
+++ b/source/blender/draw/intern/DRW_render.h
@@ -191,6 +191,8 @@ struct GPUTexture *DRW_texture_create_1D(
         int w, GPUTextureFormat format, DRWTextureFlag flags, const float 
*fpixels);
 struct GPUTexture *DRW_texture_create_2D(
         int w, int h, GPUTextureFormat format, DRWTextureFlag flags, const 
float *fpixels);
+struct GPUTexture *DRW_texture_create_2D_multisample(
+        int w, int h, GPUTextureFormat format, int samples, DRWTextureFlag 
flags, const float *fpixels);
 struct GPUTexture *DRW_texture_create_2D_array(
         int w, int h, int d, GPUTextureFormat format, DRWTextureFlag flags, 
const float *fpixels);
 struct GPUTexture *DRW_texture_create_3D(
@@ -203,6 +205,11 @@ void DRW_texture_ensure_fullscreen_2D(
 void DRW_texture_ensure_2D(
         struct GPUTexture **tex, int w, int h, GPUTextureFormat format, 
DRWTextureFlag flags);
 
+void DRW_texture_ensure_fullscreen_2D_multisample(
+        struct GPUTexture **tex, GPUTextureFormat format, int samples 
DRWTextureFlag flags);
+void DRW_texture_ensure_2D_multisample(
+        struct GPUTexture **tex, int w, int h, GPUTextureFormat format, int 
samples, DRWTextureFlag flags);
+
 void DRW_texture_generate_mipmaps(struct GPUTexture *tex);
 void DRW_texture_free(struct GPUTexture *tex);
 #define DRW_TEXTURE_FREE_SAFE(tex) do { \
diff --git a/source/blender/draw/intern/draw_manager_texture.c 
b/source/blender/draw/intern/draw_manager_texture.c
index 607b5e19745..c97cd78de88 100644
--- a/source/blender/draw/intern/draw_manager_texture.c
+++ b/source/blender/draw/intern/draw_manager_texture.c
@@ -89,6 +89,14 @@ GPUTexture *DRW_texture_create_2D(int w, int h, 
GPUTextureFormat format, DRWText
        return tex;
 }
 
+GPUTexture *DRW_texture_create_2D_multisample(int w, int h, GPUTextureFormat 
format, int samples, DRWTextureFlag flags, const float *fpixels)
+{
+       GPUTexture *tex = GPU_texture_create_2D_multisample(w, h, format, 
fpixels, samples, NULL);
+       drw_texture_set_parameters(tex, flags);
+
+       return tex;
+}
+
 GPUTexture *DRW_texture_create_2D_array(
         int w, int h, int d, GPUTextureFormat format, DRWTextureFlag flags, 
const float *fpixels)
 {
@@ -138,6 +146,28 @@ void DRW_texture_ensure_2D(GPUTexture **tex, int w, int h, 
GPUTextureFormat form
        }
 }
 
+void DRW_texture_ensure_fullscreen_2D_multisample(GPUTexture **tex, 
GPUTextureFormat format, DRWTextureFlag flags)
+{
+       if (*(tex) == NULL) {
+               const float *size = DRW_viewport_size_get();
+               *(tex) = DRW_texture_create_2D_multisample((int)size[0], 
(int)size[1], format, samples, flags, NULL);
+       }
+}
+
+void DRW_texture_ensure_2D(GPUTexture **tex, int w, int h, GPUTextureFormat 
format, DRWTextureFlag flags)
+{
+       if (*(tex) == NULL) {
+               *(tex) = DRW_texture_create_2D(w, h, format, flags, NULL);
+       }
+}
+
+void DRW_texture_ensure_2D_multisample(GPUTexture **tex, int w, int h, 
GPUTextureFormat format, int samples, DRWTextureFlag flags)
+{
+       if (*(tex) == NULL) {
+               *(tex) = DRW_texture_create_2D_multisample(w, h, format, 
samples flags, NULL);
+       }
+}
+
 void DRW_texture_generate_mipmaps(GPUTexture *tex)
 {
        GPU_texture_bind(tex, 0);

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to