[Bf-blender-cvs] [f43f4f0] viewport_experiments: Add initialization functions for GPU compositing

Antony Riakiotakis noreply at git.blender.org
Thu Feb 12 18:26:12 CET 2015


Commit: f43f4f0e894c0107ccfb55cea03f63eb47a936de
Author: Antony Riakiotakis
Date:   Thu Feb 12 18:25:58 2015 +0100
Branches: viewport_experiments
https://developer.blender.org/rBf43f4f0e894c0107ccfb55cea03f63eb47a936de

Add initialization functions for GPU compositing

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

M	source/blender/blenkernel/intern/camera.c
M	source/blender/blenkernel/intern/screen.c
M	source/blender/blenloader/intern/writefile.c
M	source/blender/gpu/GPU_compositing.h
M	source/blender/gpu/intern/gpu_compositing.c

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

diff --git a/source/blender/blenkernel/intern/camera.c b/source/blender/blenkernel/intern/camera.c
index 438a0cd..635185d 100644
--- a/source/blender/blenkernel/intern/camera.c
+++ b/source/blender/blenkernel/intern/camera.c
@@ -49,6 +49,8 @@
 #include "BKE_main.h"
 #include "BKE_screen.h"
 
+#include "GPU_compositing.h"
+
 /****************************** Camera Datablock *****************************/
 
 void *BKE_camera_add(Main *bmain, const char *name)
@@ -66,11 +68,8 @@ void *BKE_camera_add(Main *bmain, const char *name)
 	cam->ortho_scale = 6.0;
 	cam->flag |= CAM_SHOWPASSEPARTOUT;
 	cam->passepartalpha = 0.5f;
-	
-	cam->gpu_dof.fstop = 128.0f;
-	cam->gpu_dof.focal_length = 1.0f;
-	cam->gpu_dof.focus_distance = 1.0f;
-	cam->gpu_dof.sensor = 1.0f;
+
+	GPU_default_dof_settings(&cam->gpu_dof);
 
 	return cam;
 }
diff --git a/source/blender/blenkernel/intern/screen.c b/source/blender/blenkernel/intern/screen.c
index 7218625..a1b0c6b 100644
--- a/source/blender/blenkernel/intern/screen.c
+++ b/source/blender/blenkernel/intern/screen.c
@@ -39,6 +39,8 @@
 
 #include "MEM_guardedalloc.h"
 
+#include "GPU_compositing.h"
+
 #include "DNA_scene_types.h"
 #include "DNA_screen_types.h"
 #include "DNA_space_types.h"
@@ -618,9 +620,6 @@ void BKE_screen_gpu_fx_validate(GPUFXSettings *fx_settings)
 		GPUSSAOSettings *fx_ssao;
 		fx_ssao = fx_settings->ssao = MEM_callocN(sizeof(GPUSSAOSettings), __func__);
 
-		fx_ssao->darkening = 1.0f;
-		fx_ssao->distance_max = 0.2f;
-		fx_ssao->attenuation = 1.0f;
-		fx_ssao->samples = 4;
+		GPU_default_ssao_settings(fx_ssao);
 	}
 }
diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c
index 6699d97..308ab44 100644
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@ -2686,7 +2686,7 @@ static void write_screens(WriteData *wd, ListBase *scrbase)
 					if (v3d->fx_settings.ssao)
 						writestruct(wd, DATA, "GPUSSAOSettings", 1, v3d->fx_settings.ssao);
 					if (v3d->fx_settings.dof)
-						writestruct(wd, DATA, "GPUDOFSettings", 1, v3d->fx_settings.ssao);
+						writestruct(wd, DATA, "GPUDOFSettings", 1, v3d->fx_settings.dof);
 				}
 				else if (sl->spacetype==SPACE_IPO) {
 					SpaceIpo *sipo= (SpaceIpo *)sl;
diff --git a/source/blender/gpu/GPU_compositing.h b/source/blender/gpu/GPU_compositing.h
index e56b65c..79569e8 100644
--- a/source/blender/gpu/GPU_compositing.h
+++ b/source/blender/gpu/GPU_compositing.h
@@ -38,7 +38,8 @@ extern "C" {
 
 /* opaque handle for framebuffer compositing effects (defined in gpu_compositing.c )*/
 typedef struct GPUFX GPUFX;
-
+struct GPUDOFSettings;
+struct GPUSSAOSettings;
 struct GPUOffScreen;
 struct GPUFXSettings;
 struct RegionView3D;
@@ -78,6 +79,8 @@ bool GPU_fx_compositor_initialize_passes(
 /* do compositing on the fx passes that have been initialized */
 bool GPU_fx_do_composite_pass(GPUFX *fx, float projmat[4][4], bool is_persp, struct Scene *scene, struct GPUOffScreen *ofs);
 
+void GPU_default_dof_settings(struct GPUDOFSettings *dof);
+void GPU_default_ssao_settings(struct GPUSSAOSettings *ssao);
 #ifdef __cplusplus
 }
 #endif
diff --git a/source/blender/gpu/intern/gpu_compositing.c b/source/blender/gpu/intern/gpu_compositing.c
index 821dc5a..ac1319a 100644
--- a/source/blender/gpu/intern/gpu_compositing.c
+++ b/source/blender/gpu/intern/gpu_compositing.c
@@ -844,3 +844,19 @@ bool GPU_fx_do_composite_pass(GPUFX *fx, float projmat[4][4], bool is_persp, str
 
 	return true;
 }
+
+void GPU_default_dof_settings(GPUDOFSettings *dof)
+{
+	dof->fstop = 128.0f;
+	dof->focal_length = 1.0f;
+	dof->focus_distance = 1.0f;
+	dof->sensor = 1.0f;
+}
+
+void GPU_default_ssao_settings(GPUSSAOSettings *ssao)
+{
+	ssao->darkening = 1.0f;
+	ssao->distance_max = 0.2f;
+	ssao->attenuation = 1.0f;
+	ssao->samples = 4;
+}




More information about the Bf-blender-cvs mailing list