[Bf-blender-cvs] [711c3f504e6] soc-2018-npr: Added multisampe support functions in DRW. transform_to_screen later.

Nick Wu noreply at git.blender.org
Mon Jun 11 09:03:01 CEST 2018


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);



More information about the Bf-blender-cvs mailing list