[Bf-blender-cvs] [ca4618bdbf] clay-engine: Apply changes GPU_texture change.
Clément Foucault
noreply at git.blender.org
Mon Jan 9 15:07:55 CET 2017
Commit: ca4618bdbff4ff8d9f74318d9927bff8db3e2dd5
Author: Clément Foucault
Date: Fri Jan 6 14:39:34 2017 +0100
Branches: clay-engine
https://developer.blender.org/rBca4618bdbff4ff8d9f74318d9927bff8db3e2dd5
Apply changes GPU_texture change.
===================================================================
M source/blender/draw/engines/clay/clay.c
M source/blender/draw/intern/draw_manager.c
M source/blender/gpu/intern/gpu_viewport.c
===================================================================
diff --git a/source/blender/draw/engines/clay/clay.c b/source/blender/draw/engines/clay/clay.c
index 00e4fd66f6..0d8da2a165 100644
--- a/source/blender/draw/engines/clay/clay.c
+++ b/source/blender/draw/engines/clay/clay.c
@@ -87,6 +87,7 @@ typedef struct CLAY_PassList{
} CLAY_PassList;
/* Functions */
+
static void add_icon_to_rect(PreviewImage *prv, float *final_rect, int layer)
{
int image_size = prv->w[0] * prv->h[0];
@@ -139,7 +140,42 @@ static int matcap_to_index(int matcap)
else if (matcap == ICON_MATCAP_24) return 23;
return 0;
}
+#if 0
+static GPUTexture *create_spiral_sample_texture(int numsaples)
+{
+ GPUTexture *tex;
+ float (*texels)[2] = MEM_mallocN(sizeof(float[2]) * numsaples, "concentric_tex");
+ const float numsaples_inv = 1.0f / numsaples;
+ int i;
+ /* arbitrary number to ensure we don't get conciding samples every circle */
+ const float spirals = 7.357;
+
+ for (i = 0; i < numsaples; i++) {
+ float r = (i + 0.5f) * numsaples_inv;
+ float phi = r * spirals * (float)(2.0 * M_PI);
+ texels[i][0] = r * cosf(phi);
+ texels[i][1] = r * sinf(phi);
+ }
+ tex = GPU_texture_create_1D_procedural(numsaples, (float *)texels, NULL);
+ MEM_freeN(texels);
+ return tex;
+}
+
+static GPUTexture * create_jitter_texture(void)
+{
+ float jitter[64 * 64][2];
+ int i;
+
+ for (i = 0; i < 64 * 64; i++) {
+ jitter[i][0] = 2.0f * BLI_frand() - 1.0f;
+ jitter[i][1] = 2.0f * BLI_frand() - 1.0f;
+ normalize_v2(jitter[i]);
+ }
+
+ return GPU_texture_create_2D_procedural(64, 64, &jitter[0][0], true, NULL);
+}
+#endif
static void clay_engine_init(void)
{
static bool done = false;
@@ -179,7 +215,11 @@ static void clay_engine_init(void)
load_matcaps(prv, 24);
}
-
+#if 0
+ /* AO Textures */
+ data.random_tx =
+ data.random_tx =
+#endif
/* Depth prepass */
data.depth_sh = DRW_shader_create_3D_depth_only();
diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c
index ccd5ec1217..ccae2b5651 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -128,7 +128,7 @@ static bool fs_quad_init = false;
GPUTexture *DRW_texture_create_2D_array(int w, int h, int d, const float *fpixels)
{
- return GPU_texture_create_2D_array(w, h, d, fpixels);
+ return GPU_texture_create_2D_array(w, h, d, fpixels, NULL);
}
void DRW_texture_free(GPUTexture *tex)
@@ -417,7 +417,8 @@ static void draw_batch(DRWBatch *batch, const bool fullscreen)
case DRW_UNIFORM_BUFFER:
/* restore index from lenght we abused */
GPU_texture_bind(DST.current_txl->textures[uni->length], uni->bindloc);
- GPU_texture_filter_mode(DST.current_txl->textures[uni->length], false, false);
+ GPU_texture_compare_mode(DST.current_txl->textures[uni->length], false);
+ GPU_texture_filter_mode(DST.current_txl->textures[uni->length], false);
bound_tex = MEM_callocN(sizeof(DRWBoundTexture), "DRWBoundTexture");
bound_tex->tex = DST.current_txl->textures[uni->length];
@@ -595,10 +596,11 @@ void DRW_framebuffer_init(struct GPUFrameBuffer **fb, int width, int height, DRW
if (fbotex.format == DRW_BUF_DEPTH_16 ||
fbotex.format == DRW_BUF_DEPTH_24) {
*fbotex.tex = GPU_texture_create_depth(width, height, NULL);
- GPU_texture_filter_mode(*fbotex.tex, false, false);
+ GPU_texture_compare_mode(*fbotex.tex, false);
+ GPU_texture_filter_mode(*fbotex.tex, false);
}
else {
- *fbotex.tex = GPU_texture_create_2D(width, height, NULL, GPU_HDR_NONE, NULL);
+ *fbotex.tex = GPU_texture_create_2D(width, height, NULL, NULL);
++color_attachment;
}
}
@@ -643,7 +645,6 @@ void DRW_viewport_init(const bContext *C, void **buffers, void **textures, void
/* Save context for all later needs */
DST.context = C;
-
GPU_viewport_get_engine_data(viewport, buffers, textures, passes);
/* Refresh DST.size */
@@ -687,6 +688,4 @@ void DRW_engines_free(void)
clay_engine_free();
BLI_remlink(&R_engines, &viewport_clay_type);
-}
-
-/* TODO Free memory */
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/source/blender/gpu/intern/gpu_viewport.c b/source/blender/gpu/intern/gpu_viewport.c
index 1fbf8bfe7b..1f09552149 100644
--- a/source/blender/gpu/intern/gpu_viewport.c
+++ b/source/blender/gpu/intern/gpu_viewport.c
@@ -105,7 +105,7 @@ void GPU_viewport_bind(GPUViewport *viewport, const rcti *rect)
/* Color */
/* No multi samples for now */
- viewport->txl->color = GPU_texture_create_2D(rect_w, rect_h, NULL, GPU_HDR_NONE, NULL);
+ viewport->txl->color = GPU_texture_create_2D(rect_w, rect_h, NULL, NULL);
if (!viewport->txl->color) {
GPU_viewport_free(viewport);
return;
More information about the Bf-blender-cvs
mailing list