[Bf-blender-cvs] [c28f3e3] viewport_experiments: Various changes:
Campbell Barton
noreply at git.blender.org
Thu Feb 12 17:37:41 CET 2015
Commit: c28f3e3e0a778863f4d5cdedcdce1b4b8f9dae29
Author: Campbell Barton
Date: Fri Feb 13 03:36:11 2015 +1100
Branches: viewport_experiments
https://developer.blender.org/rBc28f3e3e0a778863f4d5cdedcdce1b4b8f9dae29
Various changes:
- use term 'settings' rather then 'options', (follows rest of rna)
- use const where possible
- minor changes to arg order
===================================================================
M release/scripts/startup/bl_ui/space_view3d.py
M source/blender/blenkernel/BKE_camera.h
M source/blender/blenkernel/intern/camera.c
M source/blender/blenkernel/intern/screen.c
M source/blender/blenloader/intern/readfile.c
M source/blender/blenloader/intern/versioning_270.c
M source/blender/blenloader/intern/writefile.c
M source/blender/editors/include/ED_view3d.h
M source/blender/editors/render/render_opengl.c
M source/blender/editors/space_view3d/space_view3d.c
M source/blender/editors/space_view3d/view3d_draw.c
M source/blender/gpu/GPU_compositing.h
M source/blender/gpu/GPU_extensions.h
M source/blender/gpu/intern/gpu_compositing.c
M source/blender/gpu/intern/gpu_extensions.c
M source/blender/makesdna/DNA_camera_types.h
M source/blender/makesdna/DNA_gpu_types.h
M source/blender/makesdna/DNA_view3d_types.h
M source/blender/makesdna/intern/makesdna.c
M source/blender/makesrna/intern/rna_camera.c
M source/blender/makesrna/intern/rna_scene.c
M source/blender/makesrna/intern/rna_space.c
===================================================================
diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index d167a35..3207c7e 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -2934,22 +2934,22 @@ class VIEW3D_PT_view3d_shading(Panel):
if obj and obj.mode == 'EDIT':
col.prop(view, "show_occlude_wire")
- fx_options = view.fx_options
+ fx_settings = view.fx_settings
- col.prop(view, "depth_of_field")
- if view.depth_of_field:
- if (view.region_3d.view_perspective == 'CAMERA'):
+ col.prop(view, "use_fx_dof")
+ if view.use_fx_dof:
+ if view.region_3d.view_perspective == 'CAMERA':
col.label("check dof properties in camera settings", icon='INFO')
- col.prop(view, "ssao")
- if view.ssao:
- ssao_options = fx_options.ssao
+ col.prop(view, "use_fx_ssao")
+ if view.use_fx_ssao:
+ ssao_settings = fx_settings.ssao
subcol = col.column(align=True)
- subcol.prop(ssao_options, "darkening")
- subcol.prop(ssao_options, "distance_max")
- subcol.prop(ssao_options, "attenuation")
- subcol.prop(ssao_options, "num_samples")
- subcol.prop(ssao_options, "color")
+ subcol.prop(ssao_settings, "darkening")
+ subcol.prop(ssao_settings, "distance_max")
+ subcol.prop(ssao_settings, "attenuation")
+ subcol.prop(ssao_settings, "samples")
+ subcol.prop(ssao_settings, "color")
class VIEW3D_PT_view3d_motion_tracking(Panel):
diff --git a/source/blender/blenkernel/BKE_camera.h b/source/blender/blenkernel/BKE_camera.h
index db4e3bc..7729692 100644
--- a/source/blender/blenkernel/BKE_camera.h
+++ b/source/blender/blenkernel/BKE_camera.h
@@ -46,7 +46,7 @@ struct RenderData;
struct Scene;
struct rctf;
struct View3D;
-struct GPUFXOptions;
+struct GPUFXSettings;
/* Camera Datablock */
@@ -123,7 +123,7 @@ bool BKE_camera_view_frame_fit_to_scene(struct Scene *scene, struct View3D *v3d,
bool BKE_camera_view_frame_fit_to_coords(struct Scene *scene, float (*cos)[3], int num_cos,
struct Object *camera_ob, float r_co[3], float *r_scale);
-void BKE_GPU_dof_from_camera(struct Object *camera, struct GPUFXOptions *options);
+void BKE_camera_to_gpu_dof(struct Object *camera, struct GPUFXSettings *r_fx_settings);
#ifdef __cplusplus
}
diff --git a/source/blender/blenkernel/intern/camera.c b/source/blender/blenkernel/intern/camera.c
index 118468f..438a0cd 100644
--- a/source/blender/blenkernel/intern/camera.c
+++ b/source/blender/blenkernel/intern/camera.c
@@ -691,21 +691,18 @@ bool BKE_camera_view_frame_fit_to_coords(
return camera_frame_fit_calc_from_data(¶ms, &data_cb, r_co, r_scale);
}
-void BKE_GPU_dof_from_camera(struct Object *camera, struct GPUFXOptions *options)
+void BKE_camera_to_gpu_dof(struct Object *camera, struct GPUFXSettings *r_fx_settings)
{
if (camera->type == OB_CAMERA) {
Camera *cam = camera->data;
- options->dof = &cam->gpu_dof;
- options->dof->focal_length = cam->lens;
- /* should probably use more magic here to get proper fit */
- options->dof->sensor = cam->sensor_x;
+ r_fx_settings->dof = &cam->gpu_dof;
+ r_fx_settings->dof->focal_length = cam->lens;
+ r_fx_settings->dof->sensor = BKE_camera_sensor_size(cam->sensor_fit, cam->sensor_x, cam->sensor_y);
if (cam->dof_ob) {
- float vec[3];
- sub_v3_v3v3(vec, cam->dof_ob->obmat[3], camera->obmat[3]);
- options->dof->focus_distance = len_v3(vec);
+ r_fx_settings->dof->focus_distance = len_v3v3(cam->dof_ob->obmat[3], camera->obmat[3]);
}
else {
- options->dof->focus_distance = cam->YF_dofdist;
+ r_fx_settings->dof->focus_distance = cam->YF_dofdist;
}
}
}
diff --git a/source/blender/blenkernel/intern/screen.c b/source/blender/blenkernel/intern/screen.c
index 16e5528..e6e5735 100644
--- a/source/blender/blenkernel/intern/screen.c
+++ b/source/blender/blenkernel/intern/screen.c
@@ -601,12 +601,12 @@ float BKE_screen_view3d_zoom_from_fac(float zoomfac)
void BKE_screen_view3d_ensure_FX(View3D *v3d)
{
- if (!v3d->fx_options.ssao) {
- v3d->fx_options.ssao = MEM_callocN(sizeof(GPUSSAOOptions), "view3d ssao options");
+ if (!v3d->fx_settings.ssao) {
+ v3d->fx_settings.ssao = MEM_callocN(sizeof(GPUSSAOSettings), "view3d ssao options");
- v3d->fx_options.ssao->darkening = 1.0f;
- v3d->fx_options.ssao->distance_max = 0.2f;
- v3d->fx_options.ssao->attenuation = 1.0f;
- v3d->fx_options.ssao->num_samples = 4;
+ v3d->fx_settings.ssao->darkening = 1.0f;
+ v3d->fx_settings.ssao->distance_max = 0.2f;
+ v3d->fx_settings.ssao->attenuation = 1.0f;
+ v3d->fx_settings.ssao->samples = 4;
}
}
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index c7f74c0..204a7af 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -6577,10 +6577,10 @@ static bool direct_link_screen(FileData *fd, bScreen *sc)
if (v3d->drawtype == OB_RENDER)
v3d->drawtype = OB_SOLID;
- if (v3d->fx_options.dof)
- v3d->fx_options.dof = newdataadr(fd, v3d->fx_options.dof);
- if (v3d->fx_options.ssao)
- v3d->fx_options.ssao = newdataadr(fd, v3d->fx_options.ssao);
+ if (v3d->fx_settings.dof)
+ v3d->fx_settings.dof = newdataadr(fd, v3d->fx_settings.dof);
+ if (v3d->fx_settings.ssao)
+ v3d->fx_settings.ssao = newdataadr(fd, v3d->fx_settings.ssao);
blo_do_versions_view3d_split_250(v3d, &sl->regionbase);
}
diff --git a/source/blender/blenloader/intern/versioning_270.c b/source/blender/blenloader/intern/versioning_270.c
index 321ee54..23bf291 100644
--- a/source/blender/blenloader/intern/versioning_270.c
+++ b/source/blender/blenloader/intern/versioning_270.c
@@ -564,7 +564,7 @@ void blo_do_versions_270(FileData *fd, Library *UNUSED(lib), Main *main)
FOREACH_NODETREE_END
}
- if (!DNA_struct_elem_find(fd->filesdna, "Camera", "GPUDOFOptions", "gpu_dof")) {
+ if (!DNA_struct_elem_find(fd->filesdna, "Camera", "GPUDOFSettings", "gpu_dof")) {
Camera *ca;
for (ca = main->camera.first; ca; ca = ca->id.next) {
ca->gpu_dof.fstop = 128.0f;
diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c
index 9c88cfc..886770a 100644
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@ -2683,8 +2683,8 @@ static void write_screens(WriteData *wd, ListBase *scrbase)
writestruct(wd, DATA, "BGpic", 1, bgpic);
if (v3d->localvd) writestruct(wd, DATA, "View3D", 1, v3d->localvd);
- if (v3d->fx_options.ssao)
- writestruct(wd, DATA, "GPUSSAOOptions", 1, v3d->fx_options.ssao);
+ if (v3d->fx_settings.ssao)
+ writestruct(wd, DATA, "GPUSSAOSettings", 1, v3d->fx_settings.ssao);
}
else if (sl->spacetype==SPACE_IPO) {
SpaceIpo *sipo= (SpaceIpo *)sl;
diff --git a/source/blender/editors/include/ED_view3d.h b/source/blender/editors/include/ED_view3d.h
index c14c72e..a3d04c0 100644
--- a/source/blender/editors/include/ED_view3d.h
+++ b/source/blender/editors/include/ED_view3d.h
@@ -63,7 +63,7 @@ struct wmOperatorType;
struct wmWindow;
struct GPUFX;
struct GPUOffScreen;
-struct GPUFXOptions;
+struct GPUFXSettings;
enum eGPUFXFlags;
/* for derivedmesh drawing callbacks, for view3d_select, .... */
@@ -307,8 +307,11 @@ int ED_view3d_scene_layer_set(int lay, const int *values, int *active);
bool ED_view3d_context_activate(struct bContext *C);
void ED_view3d_draw_offscreen_init(struct Scene *scene, struct View3D *v3d);
-void ED_view3d_draw_offscreen(struct Scene *scene, struct View3D *v3d, struct ARegion *ar, int winx, int winy, float viewmat[4][4],
- float winmat[4][4], bool do_bgpic, bool do_sky, struct GPUFX *fx, bool is_persp, struct GPUOffScreen *ofs, struct GPUFXOptions *fxoptions, enum eGPUFXFlags fxflags);
+void ED_view3d_draw_offscreen(
+ struct Scene *scene, struct View3D *v3d, struct ARegion *ar, int winx, int winy, float viewmat[4][4],
+ float winmat[4][4], bool do_bgpic, bool do_sky, bool is_persp,
+ struct GPUOffScreen *ofs,
+ struct GPUFX *fx, struct GPUFXSettings *fx_settings, enum eGPUFXFlags fx_flag);
struct ImBuf *ED_view3d_draw_offscreen_imbuf(struct Scene *scene, struct View3D *v3d, struct ARegion *ar, int sizex, int sizey, unsigned int flag,
bool draw_background, int alpha_mode, char err_out[256]);
diff --git a/source/blender/editors/render/render_opengl.c b/source/blender/editors/render/render_opengl.c
index e2c56fe..bf9025b 100644
--- a/source/blender/editors/render/render_opengl.c
+++ b/source/blender/editors/render/render_opengl.c
@@ -212,9 +212,7 @@ static void screen_opengl_render_apply(OGLRender *oglrender)
else if (view_context) {
bool is_persp;
/* full copy */
- GPUFXOptions options = {0};
-
- options = v3d->fx_options;
+ GPUFXSettings fx_settings = v3d->fx_settings;
ED_view3d_draw_offscreen_init(scene, v3d);
@@ -226,7 +224,7 @@ static void screen_opengl_render_apply(OGLRender *oglrender)
camera = v3d->camera;
RE_GetCameraWindow(oglrender->re, camera, scene->r.cfra, winmat);
is_persp = true;
- BKE_GPU_dof_from_camera(camera, &options);
+ BKE_camera_to_gpu_dof(camera, &fx_settings);
}
else {
rctf viewplane;
@@ -242,7 +240,10 @@ static void screen_opengl_render_apply(OGLRender *oglrender)
rect = MEM_mallocN(sizex * sizey * sizeof(unsigned char) * 4, "offscreen rect");
if ((scene->r.mode & R_OSA) == 0) {
- ED_view3d_draw_offscreen(scene, v3d, ar, sizex, sizey, NULL, winmat, draw_bgpic, draw_sky, oglrender->fx, is_persp, oglrender->ofs, &options, v3d->shader_fx);
+ ED_view3d_draw_offscreen(
+ scene, v3d, ar, sizex, sizey, NULL, winmat,
+ draw_bgpic, draw_sky, is_persp,
+ oglrender->ofs, oglrender->fx, &fx_setting
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list