[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