[Bf-blender-cvs] [8ba6103e66b] blender2.8: SceneRenderLayer > SceneLayer: Convert Lay
Dalai Felinto
noreply at git.blender.org
Wed Nov 22 10:18:13 CET 2017
Commit: 8ba6103e66b0e8bcbe70e6ed8f91500fdc7df3ee
Author: Dalai Felinto
Date: Wed Nov 15 15:01:57 2017 -0200
Branches: blender2.8
https://developer.blender.org/rB8ba6103e66b0e8bcbe70e6ed8f91500fdc7df3ee
SceneRenderLayer > SceneLayer: Convert Lay
There are parts of the old (Blender Internal) rendering pipeline that is still
using lay, e.g., in shi->lay.
Honestly it will be easier to purge the entire Blender Internal code away instead
of taking things from it bit by bit.
===================================================================
M intern/cycles/blender/blender_sync.cpp
M intern/cycles/blender/blender_sync.h
M source/blender/blenkernel/intern/scene.c
M source/blender/blenloader/intern/versioning_280.c
M source/blender/editors/space_view3d/view3d_draw.c
M source/blender/editors/space_view3d/view3d_draw_legacy.c
M source/blender/editors/space_view3d/view3d_intern.h
M source/blender/gpu/GPU_material.h
M source/blender/gpu/intern/gpu_draw.c
M source/blender/gpu/intern/gpu_material.c
M source/blender/makesdna/DNA_scene_types.h
M source/blender/makesrna/intern/rna_scene.c
M source/blender/render/extern/include/RE_pipeline.h
M source/blender/render/intern/source/convertblender.c
M source/blender/render/intern/source/pipeline.c
M source/blender/render/intern/source/render_result.c
M source/blender/render/intern/source/rendercore.c
M source/blender/render/intern/source/shadeinput.c
M source/blender/render/intern/source/zbuf.c
M source/gameengine/Ketsji/BL_BlenderShader.cpp
===================================================================
diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp
index be2fadcc574..c5d203070db 100644
--- a/intern/cycles/blender/blender_sync.cpp
+++ b/intern/cycles/blender/blender_sync.cpp
@@ -404,7 +404,7 @@ void BlenderSync::sync_render_layers(BL::SpaceView3D& b_v3d, const char *layer)
render_layer.scene_layer = scene_layers & ~render_layer.exclude_layer;
render_layer.scene_layer |= render_layer.exclude_layer & render_layer.holdout_layer;
- render_layer.layer = get_layer(b_rlay->layers());
+ render_layer.layer = (1 << 20) - 1;
render_layer.layer |= render_layer.holdout_layer;
render_layer.material_override = PointerRNA_NULL;
diff --git a/intern/cycles/blender/blender_sync.h b/intern/cycles/blender/blender_sync.h
index 57405b74ecc..79c0b006f9f 100644
--- a/intern/cycles/blender/blender_sync.h
+++ b/intern/cycles/blender/blender_sync.h
@@ -199,7 +199,7 @@ private:
string name;
uint scene_layer;
- uint layer;
+ uint layer; /* This can be safely removed from Cycles. */
uint holdout_layer; /* This can be safely removed from Cycles. */
uint exclude_layer; /* This can be safely removed from Cycles. */
BL::Material material_override; /* This can be safely removed from Cycles. */
diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c
index b1cbf24f715..383b55ab1ad 100644
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@ -1632,7 +1632,6 @@ SceneRenderLayer *BKE_scene_add_render_layer(Scene *sce, const char *name)
BLI_addtail(&sce->r.layers, srl);
/* note, this is also in render, pipeline.c, to make layer when scenedata doesnt have it */
- srl->lay = (1 << 20) - 1;
srl->layflag = 0x7FFF; /* solid ztra halo edge strand */
srl->passflag = SCE_PASS_COMBINED | SCE_PASS_Z;
srl->pass_alpha_threshold = 0.5f;
diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c
index 32aa908fe86..fa48abaf61e 100644
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@ -346,6 +346,14 @@ void do_versions_after_linking_280(Main *main)
true);
}
+ if ((srl->lay & (1 << layer)) == 0) {
+ BKE_override_layer_collection_boolean_add(
+ layer_collection_parent,
+ ID_OB,
+ "cycles_visibility.camera",
+ false);
+ }
+
LayerCollection *layer_collection_child;
layer_collection_child = layer_collection_parent->layer_collections.first;
diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c
index eeca75b7308..475e9cd07bf 100644
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@ -793,13 +793,13 @@ static void view3d_draw_background_none(void)
glClear(GL_COLOR_BUFFER_BIT);
}
-static void view3d_draw_background_world(Scene *scene, View3D *v3d, RegionView3D *rv3d)
+static void view3d_draw_background_world(Scene *scene, RegionView3D *rv3d)
{
if (scene->world) {
GPUMaterial *gpumat = GPU_material_world(scene, scene->world);
/* calculate full shader for background */
- GPU_material_bind(gpumat, 1, 1, 1.0f, false, rv3d->viewmat, rv3d->viewinv, rv3d->viewcamtexcofac, (v3d->scenelock != 0));
+ GPU_material_bind(gpumat, 1, 1, 1.0f, false, rv3d->viewmat, rv3d->viewinv, rv3d->viewcamtexcofac);
if (GPU_material_bound(gpumat)) {
/* TODO viewport (dfelinto): GPU_material_bind relies on immediate mode,
@@ -1949,7 +1949,7 @@ static void view3d_main_region_clear(Scene *scene, View3D *v3d, ARegion *ar)
glClear(GL_DEPTH_BUFFER_BIT);
if (scene->world && (v3d->flag3 & V3D_SHOW_WORLD)) {
- VP_view3d_draw_background_world(scene, v3d, ar->regiondata);
+ VP_view3d_draw_background_world(scene, ar->regiondata);
}
else {
VP_view3d_draw_background_none();
@@ -2394,9 +2394,9 @@ void VP_view3d_draw_background_none(void)
}
}
-void VP_view3d_draw_background_world(Scene *scene, View3D *v3d, RegionView3D *rv3d)
+void VP_view3d_draw_background_world(Scene *scene, RegionView3D *rv3d)
{
- view3d_draw_background_world(scene, v3d, rv3d);
+ view3d_draw_background_world(scene, rv3d);
}
void VP_view3d_main_region_clear(Scene *scene, View3D *v3d, ARegion *ar)
diff --git a/source/blender/editors/space_view3d/view3d_draw_legacy.c b/source/blender/editors/space_view3d/view3d_draw_legacy.c
index 5695508a9f5..9f1c27a09e7 100644
--- a/source/blender/editors/space_view3d/view3d_draw_legacy.c
+++ b/source/blender/editors/space_view3d/view3d_draw_legacy.c
@@ -1338,7 +1338,7 @@ typedef struct View3DShadow {
static void gpu_render_lamp_update(Scene *scene, View3D *v3d,
Object *ob, Object *par,
float obmat[4][4], unsigned int lay,
- ListBase *shadows, SceneRenderLayer *srl)
+ ListBase *shadows)
{
GPULamp *lamp = GPU_lamp_from_blender(scene, ob, par);
@@ -1349,8 +1349,6 @@ static void gpu_render_lamp_update(Scene *scene, View3D *v3d,
GPU_lamp_update_colors(lamp, la->r, la->g, la->b, la->energy);
unsigned int layers = lay & v3d->lay;
- if (srl)
- layers &= srl->lay;
if (layers &&
GPU_lamp_has_shadow_buffer(lamp) &&
@@ -1370,7 +1368,6 @@ static void gpu_update_lamps_shadows_world(const EvaluationContext *eval_ctx, Sc
Scene *sce_iter;
Base *base;
World *world = scene->world;
- SceneRenderLayer *srl = v3d->scenelock ? BLI_findlink(&scene->r.layers, scene->r.actlay) : NULL;
BLI_listbase_clear(&shadows);
@@ -1379,7 +1376,7 @@ static void gpu_update_lamps_shadows_world(const EvaluationContext *eval_ctx, Sc
Object *ob = base->object;
if (ob->type == OB_LAMP)
- gpu_render_lamp_update(scene, v3d, ob, NULL, ob->obmat, ob->lay, &shadows, srl);
+ gpu_render_lamp_update(scene, v3d, ob, NULL, ob->obmat, ob->lay, &shadows);
if (ob->transflag & OB_DUPLI) {
DupliObject *dob;
@@ -1387,7 +1384,7 @@ static void gpu_update_lamps_shadows_world(const EvaluationContext *eval_ctx, Sc
for (dob = lb->first; dob; dob = dob->next)
if (dob->ob->type == OB_LAMP)
- gpu_render_lamp_update(scene, v3d, dob->ob, ob, dob->mat, ob->lay, &shadows, srl);
+ gpu_render_lamp_update(scene, v3d, dob->ob, ob, dob->mat, ob->lay, &shadows);
free_object_duplilist(lb);
}
diff --git a/source/blender/editors/space_view3d/view3d_intern.h b/source/blender/editors/space_view3d/view3d_intern.h
index e42a1e7f286..189e22a04d7 100644
--- a/source/blender/editors/space_view3d/view3d_intern.h
+++ b/source/blender/editors/space_view3d/view3d_intern.h
@@ -376,7 +376,7 @@ bool VP_legacy_use_depth(Scene *scene, View3D *v3d);
void VP_drawviewborder(Scene *scene, ARegion *ar, View3D *v3d);
void VP_drawrenderborder(ARegion *ar, View3D *v3d);
void VP_view3d_draw_background_none(void);
-void VP_view3d_draw_background_world(Scene *scene, View3D *v3d, RegionView3D *rv3d);
+void VP_view3d_draw_background_world(Scene *scene, RegionView3D *rv3d);
void VP_view3d_main_region_clear(Scene *scene, View3D *v3d, ARegion *ar);
/* temporary legacy calls, only when there is a switch between new/old draw calls */
diff --git a/source/blender/gpu/GPU_material.h b/source/blender/gpu/GPU_material.h
index 71bf6c897e7..e1b20cefe99 100644
--- a/source/blender/gpu/GPU_material.h
+++ b/source/blender/gpu/GPU_material.h
@@ -254,7 +254,7 @@ void GPU_materials_free(void);
void GPU_material_bind(
GPUMaterial *material, int oblay, int viewlay, double time, int mipmap,
- float viewmat[4][4], float viewinv[4][4], float cameraborder[4], bool scenelock);
+ float viewmat[4][4], float viewinv[4][4], float cameraborder[4]);
void GPU_material_bind_uniforms(
GPUMaterial *material, float obmat[4][4], float viewmat[4][4], float obcol[4],
float autobumpscale, GPUParticleInfo *pi, float object_info[3]);
diff --git a/source/blender/gpu/intern/gpu_draw.c b/source/blender/gpu/intern/gpu_draw.c
index 3d50d3840fb..4e2a492367a 100644
--- a/source/blender/gpu/intern/gpu_draw.c
+++ b/source/blender/gpu/intern/gpu_draw.c
@@ -1463,7 +1463,6 @@ static struct GPUMaterialState {
DupliObject *dob;
Scene *gscene;
int glay;
- bool gscenelock;
float (*gviewmat)[4];
float (*gviewinv)[4];
float (*gviewcamtexcofac);
@@ -1621,7 +1620,6 @@ void GPU_begin_object_materials(
GMS.is_opensubdiv = use_opensubdiv;
GMS.totmat = use_matcap ? 1 : ob->totcol + 1; /* materials start from 1, default material is 0 */
GMS.glay = (v3d->localvd) ? v3d->localvd->lay : v3d->lay; /* keep lamps visible in local view */
- GMS.gscenelock = (v3d->scenelock != 0);
GMS.gviewmat = rv3d->viewmat;
GMS.gviewinv = rv3d->viewinv;
GMS.gviewcamtexcofac = rv3d->viewcamtexcofac;
@@ -1837,7 +1835,7 @@ int GPU_object_material_bind(int nr, void *attribs)
GPU_material_bind(
gpumat, GMS.gob->lay, GMS.glay, 1.0, !(GMS.gob->mode & OB_MODE_TEXTURE_PAINT),
- GMS.gviewmat, GMS.gviewinv, GMS.gviewcamtexcofac, GMS.gscenelock);
+ GMS.gviewmat, GMS.gviewinv, GMS.gviewcamtexcofac);
auto_bump_scale = GMS.gob->derivedFinal != NULL ? GMS.gob->derivedFinal->auto_bump_scale : 1.0f;
GPU_material_bind_uniforms(gpumat, GMS.gob->obmat, GMS.gviewmat, GMS.gob->col, auto_bump_scale, &partile_info, object_info);
diff --git a/source/blender/gpu/intern/gpu_material.c b/source/blender/gpu/intern/gpu_material.c
index 4668ea2998d..0a8ef9dffc5 100644
--- a/source/blender/gpu/intern/gpu_material.c
+++ b/source/blender/gpu/intern/gpu_material.c
@@ -295,14 +295,10 @@ void GPU_material_free(ListBase *gpumaterial)
void GPU_material_bind(
GPUMaterial *material, int oblay, int viewlay, double time, int mipmap,
- float viewmat[4][4], float viewinv[4][4], float camerafactors[4], bool scenelock)
+ float viewmat[4][4], float viewinv[4][4], float camerafactors[4])
{
if (material->pass) {
GPUShader *shader = GPU_pass_shader(material->pass);
- SceneRenderLayer *srl = scenelock ? BLI_findl
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list