Remove tons of OBACT
There are now only referenced in: * drawobject.c * particle_edit.c * space_image.c (a single case to be handled on workspace branch) * rigidbody_constraint.c (to be handled in the following commit)
This commit is contained in:
parent
561d11c5e6
commit
aa845eed1e
|
@ -38,10 +38,10 @@ extern "C" {
|
|||
struct BaseLegacy;
|
||||
struct EvaluationContext;
|
||||
struct Scene;
|
||||
struct SceneLayer;
|
||||
struct Object;
|
||||
struct BoundBox;
|
||||
struct View3D;
|
||||
struct SceneLayer;
|
||||
struct SoftBody;
|
||||
struct BulletSoftBody;
|
||||
struct MovieClip;
|
||||
|
@ -102,9 +102,9 @@ void BKE_object_lod_add(struct Object *ob);
|
|||
void BKE_object_lod_sort(struct Object *ob);
|
||||
bool BKE_object_lod_remove(struct Object *ob, int level);
|
||||
void BKE_object_lod_update(struct Object *ob, const float camera_position[3]);
|
||||
bool BKE_object_lod_is_usable(struct Object *ob, struct Scene *scene);
|
||||
struct Object *BKE_object_lod_meshob_get(struct Object *ob, struct Scene *scene);
|
||||
struct Object *BKE_object_lod_matob_get(struct Object *ob, struct Scene *scene);
|
||||
bool BKE_object_lod_is_usable(struct Object *ob, struct SceneLayer *sl);
|
||||
struct Object *BKE_object_lod_meshob_get(struct Object *ob, struct SceneLayer *sl);
|
||||
struct Object *BKE_object_lod_matob_get(struct Object *ob, struct SceneLayer *sl);
|
||||
|
||||
struct Object *BKE_object_copy_ex(struct Main *bmain, struct Object *ob, bool copy_caches);
|
||||
struct Object *BKE_object_copy(struct Main *bmain, struct Object *ob);
|
||||
|
|
|
@ -801,9 +801,9 @@ static LodLevel *lod_level_select(Object *ob, const float camera_position[3])
|
|||
return current;
|
||||
}
|
||||
|
||||
bool BKE_object_lod_is_usable(Object *ob, Scene *scene)
|
||||
bool BKE_object_lod_is_usable(Object *ob, SceneLayer *sl)
|
||||
{
|
||||
bool active = (scene) ? ob == OBACT : false;
|
||||
bool active = (sl) ? ob == OBACT_NEW : false;
|
||||
return (ob->mode == OB_MODE_OBJECT || !active);
|
||||
}
|
||||
|
||||
|
@ -817,11 +817,11 @@ void BKE_object_lod_update(Object *ob, const float camera_position[3])
|
|||
}
|
||||
}
|
||||
|
||||
static Object *lod_ob_get(Object *ob, Scene *scene, int flag)
|
||||
static Object *lod_ob_get(Object *ob, SceneLayer *sl, int flag)
|
||||
{
|
||||
LodLevel *current = ob->currentlod;
|
||||
|
||||
if (!current || !BKE_object_lod_is_usable(ob, scene))
|
||||
if (!current || !BKE_object_lod_is_usable(ob, sl))
|
||||
return ob;
|
||||
|
||||
while (current->prev && (!(current->flags & flag) || !current->source || current->source->type != OB_MESH)) {
|
||||
|
@ -831,14 +831,14 @@ static Object *lod_ob_get(Object *ob, Scene *scene, int flag)
|
|||
return current->source;
|
||||
}
|
||||
|
||||
struct Object *BKE_object_lod_meshob_get(Object *ob, Scene *scene)
|
||||
struct Object *BKE_object_lod_meshob_get(Object *ob, SceneLayer *sl)
|
||||
{
|
||||
return lod_ob_get(ob, scene, OB_LOD_USE_MESH);
|
||||
return lod_ob_get(ob, sl, OB_LOD_USE_MESH);
|
||||
}
|
||||
|
||||
struct Object *BKE_object_lod_matob_get(Object *ob, Scene *scene)
|
||||
struct Object *BKE_object_lod_matob_get(Object *ob, SceneLayer *sl)
|
||||
{
|
||||
return lod_ob_get(ob, scene, OB_LOD_USE_MAT);
|
||||
return lod_ob_get(ob, sl, OB_LOD_USE_MAT);
|
||||
}
|
||||
|
||||
#endif /* WITH_GAMEENGINE */
|
||||
|
|
|
@ -589,9 +589,9 @@ void DRW_draw_background(void)
|
|||
|
||||
/* **************************** 3D Cursor ******************************** */
|
||||
|
||||
static bool is_cursor_visible(Scene *scene)
|
||||
static bool is_cursor_visible(Scene *scene, SceneLayer *sl)
|
||||
{
|
||||
Object *ob = OBACT;
|
||||
Object *ob = OBACT_NEW;
|
||||
|
||||
/* don't draw cursor in paint modes, but with a few exceptions */
|
||||
if (ob && ob->mode & OB_MODE_ALL_PAINT) {
|
||||
|
@ -625,13 +625,14 @@ void DRW_draw_cursor(void)
|
|||
View3D *v3d = CTX_wm_view3d(C);
|
||||
RegionView3D *rv3d = CTX_wm_region_view3d(C);
|
||||
Scene *scene = CTX_data_scene(C);
|
||||
SceneLayer *sl = CTX_data_scene_layer(C);
|
||||
|
||||
glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
|
||||
glDepthMask(GL_FALSE);
|
||||
glDisable(GL_DEPTH_TEST);
|
||||
glLineWidth(1.0f);
|
||||
|
||||
if (is_cursor_visible(scene)) {
|
||||
if (is_cursor_visible(scene, sl)) {
|
||||
float *co = ED_view3d_cursor3d_get(scene, v3d);
|
||||
unsigned char crosshair_color[3];
|
||||
|
||||
|
|
|
@ -132,11 +132,11 @@ static void animedit_get_yscale_factor(bAnimContext *ac)
|
|||
/* Note: there's a similar function in key.c (BKE_key_from_object) */
|
||||
static Key *actedit_get_shapekeys(bAnimContext *ac)
|
||||
{
|
||||
Scene *scene = ac->scene;
|
||||
SceneLayer *sl = ac->scene_layer;
|
||||
Object *ob;
|
||||
Key *key;
|
||||
|
||||
ob = OBACT;
|
||||
ob = OBACT_NEW;
|
||||
if (ob == NULL)
|
||||
return NULL;
|
||||
|
||||
|
|
|
@ -248,7 +248,7 @@ void armature_select_mirrored(struct bArmature *arm);
|
|||
void armature_tag_unselect(struct bArmature *arm);
|
||||
|
||||
void *get_nearest_bone(struct bContext *C, short findunsel, int x, int y);
|
||||
void *get_bone_from_selectbuffer(struct Scene *scene, struct BaseLegacy *base, unsigned int *buffer, short hits, short findunsel, bool do_nearest);
|
||||
void *get_bone_from_selectbuffer(struct Scene *scene, struct Base *base, unsigned int *buffer, short hits, short findunsel, bool do_nearest);
|
||||
|
||||
int bone_looper(struct Object *ob, struct Bone *bone, void *data,
|
||||
int (*bone_func)(struct Object *, struct Bone *, void *));
|
||||
|
|
|
@ -74,7 +74,7 @@ Bone *get_indexed_bone(Object *ob, int index)
|
|||
|
||||
/* See if there are any selected bones in this buffer */
|
||||
/* only bones from base are checked on */
|
||||
void *get_bone_from_selectbuffer(Scene *scene, BaseLegacy *base, unsigned int *buffer, short hits, short findunsel, bool do_nearest)
|
||||
void *get_bone_from_selectbuffer(Scene *scene, Base *base, unsigned int *buffer, short hits, short findunsel, bool do_nearest)
|
||||
{
|
||||
Object *obedit = scene->obedit; // XXX get from context
|
||||
Bone *bone;
|
||||
|
@ -178,7 +178,7 @@ void *get_nearest_bone(bContext *C, short findunsel, int x, int y)
|
|||
hits = view3d_opengl_select(&vc, buffer, MAXPICKBUF, &rect, true);
|
||||
|
||||
if (hits > 0)
|
||||
return get_bone_from_selectbuffer(vc.scene, vc.scene->basact, buffer, hits, findunsel, true);
|
||||
return get_bone_from_selectbuffer(vc.scene, vc.sl->basact, buffer, hits, findunsel, true);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
@ -132,7 +132,7 @@ void ED_pose_bone_select(Object *ob, bPoseChannel *pchan, bool select)
|
|||
|
||||
/* called from editview.c, for mode-less pose selection */
|
||||
/* assumes scene obact and basact is still on old situation */
|
||||
int ED_do_pose_selectbuffer(Scene *scene, BaseLegacy *base, unsigned int *buffer, short hits,
|
||||
int ED_do_pose_selectbuffer(Scene *scene, SceneLayer *sl, Base *base, unsigned int *buffer, short hits,
|
||||
bool extend, bool deselect, bool toggle, bool do_nearest)
|
||||
{
|
||||
Object *ob = base->object;
|
||||
|
@ -144,7 +144,7 @@ int ED_do_pose_selectbuffer(Scene *scene, BaseLegacy *base, unsigned int *buffer
|
|||
|
||||
/* if the bone cannot be affected, don't do anything */
|
||||
if ((nearBone) && !(nearBone->flag & BONE_UNSELECTABLE)) {
|
||||
Object *ob_act = OBACT;
|
||||
Object *ob_act = OBACT_NEW;
|
||||
bArmature *arm = ob->data;
|
||||
|
||||
/* since we do unified select, we don't shift+select a bone if the
|
||||
|
|
|
@ -47,6 +47,7 @@ struct Object;
|
|||
struct Base;
|
||||
struct ReportList;
|
||||
struct Scene;
|
||||
struct SceneLayer;
|
||||
struct ViewContext;
|
||||
struct wmKeyConfig;
|
||||
struct wmOperator;
|
||||
|
@ -137,7 +138,7 @@ void ED_armature_ebone_listbase_temp_clear(struct ListBase *lb);
|
|||
void ED_armature_deselect_all(struct Object *obedit);
|
||||
void ED_armature_deselect_all_visible(struct Object *obedit);
|
||||
|
||||
int ED_do_pose_selectbuffer(struct Scene *scene, struct BaseLegacy *base, unsigned int *buffer,
|
||||
int ED_do_pose_selectbuffer(struct Scene *scene, struct SceneLayer *sl, struct Base *base, unsigned int *buffer,
|
||||
short hits, bool extend, bool deselect, bool toggle, bool do_nearest);
|
||||
bool ED_armature_select_pick(struct bContext *C, const int mval[2], bool extend, bool deselect, bool toggle);
|
||||
int join_armature_exec(struct bContext *C, struct wmOperator *op);
|
||||
|
|
|
@ -39,6 +39,7 @@ struct ToolSettings;
|
|||
struct wmWindowManager;
|
||||
struct ARegion;
|
||||
struct Scene;
|
||||
struct SceneLayer;
|
||||
|
||||
/* image_edit.c, exported for transform */
|
||||
struct Image *ED_space_image(struct SpaceImage *sima);
|
||||
|
@ -74,7 +75,7 @@ bool ED_space_image_show_uvedit(struct SpaceImage *sima, struct Object *obedit);
|
|||
|
||||
bool ED_space_image_paint_curve(const struct bContext *C);
|
||||
|
||||
bool ED_space_image_check_show_maskedit(struct Scene *scene, struct SpaceImage *sima);
|
||||
bool ED_space_image_check_show_maskedit(struct SceneLayer *sl, struct SpaceImage *sima);
|
||||
int ED_space_image_maskedit_poll(struct bContext *C);
|
||||
int ED_space_image_maskedit_mask_poll(struct bContext *C);
|
||||
|
||||
|
|
|
@ -589,6 +589,7 @@ static int test_bake_internal(bContext *C, ReportList *reports)
|
|||
static void init_bake_internal(BakeRender *bkr, bContext *C)
|
||||
{
|
||||
Scene *scene = CTX_data_scene(C);
|
||||
SceneLayer *sl = CTX_data_scene_layer(C);
|
||||
bScreen *sc = CTX_wm_screen(C);
|
||||
|
||||
/* get editmode results */
|
||||
|
@ -597,7 +598,7 @@ static void init_bake_internal(BakeRender *bkr, bContext *C)
|
|||
bkr->sa = sc ? BKE_screen_find_big_area(sc, SPACE_IMAGE, 10) : NULL; /* can be NULL */
|
||||
bkr->main = CTX_data_main(C);
|
||||
bkr->scene = scene;
|
||||
bkr->actob = (scene->r.bake_flag & R_BAKE_TO_ACTIVE) ? OBACT : NULL;
|
||||
bkr->actob = (scene->r.bake_flag & R_BAKE_TO_ACTIVE) ? OBACT_NEW : NULL;
|
||||
bkr->re = RE_NewRender("_Bake View_");
|
||||
|
||||
if (scene->r.bake_mode == RE_BAKE_AO) {
|
||||
|
@ -810,6 +811,7 @@ static int bake_image_exec(bContext *C, wmOperator *op)
|
|||
{
|
||||
Main *bmain = CTX_data_main(C);
|
||||
Scene *scene = CTX_data_scene(C);
|
||||
SceneLayer *sl = CTX_data_scene_layer(C);
|
||||
int result = OPERATOR_CANCELLED;
|
||||
|
||||
if (is_multires_bake(scene)) {
|
||||
|
@ -829,7 +831,7 @@ static int bake_image_exec(bContext *C, wmOperator *op)
|
|||
RE_test_break_cb(bkr.re, NULL, thread_break);
|
||||
G.is_break = false; /* BKE_blender_test_break uses this global */
|
||||
|
||||
RE_Database_Baking(bkr.re, bmain, scene, scene->lay, scene->r.bake_mode, (scene->r.bake_flag & R_BAKE_TO_ACTIVE) ? OBACT : NULL);
|
||||
RE_Database_Baking(bkr.re, bmain, scene, scene->lay, scene->r.bake_mode, (scene->r.bake_flag & R_BAKE_TO_ACTIVE) ? OBACT_NEW : NULL);
|
||||
|
||||
/* baking itself is threaded, cannot use test_break in threads */
|
||||
BLI_init_threads(&threads, do_bake_render, 1);
|
||||
|
|
|
@ -649,17 +649,17 @@ static void copy_texture_space(Object *to, Object *ob)
|
|||
}
|
||||
|
||||
/* UNUSED, keep in case we want to copy functionality for use elsewhere */
|
||||
static void copy_attr(Main *bmain, Scene *scene, View3D *v3d, short event)
|
||||
static void copy_attr(Main *bmain, Scene *scene, SceneLayer *sl, View3D *v3d, short event)
|
||||
{
|
||||
Object *ob;
|
||||
BaseLegacy *base;
|
||||
Base *base;
|
||||
Curve *cu, *cu1;
|
||||
Nurb *nu;
|
||||
bool do_depgraph_update = false;
|
||||
|
||||
if (ID_IS_LINKED_DATABLOCK(scene)) return;
|
||||
|
||||
if (!(ob = OBACT)) return;
|
||||
if (!(ob = OBACT_NEW)) return;
|
||||
|
||||
if (scene->obedit) { // XXX get from context
|
||||
/* obedit_copymenu(); */
|
||||
|
@ -679,9 +679,9 @@ static void copy_attr(Main *bmain, Scene *scene, View3D *v3d, short event)
|
|||
return;
|
||||
}
|
||||
|
||||
for (base = FIRSTBASE; base; base = base->next) {
|
||||
if (base != BASACT) {
|
||||
if (TESTBASELIB(v3d, base)) {
|
||||
for (base = FIRSTBASE_NEW; base; base = base->next) {
|
||||
if (base != BASACT_NEW) {
|
||||
if (TESTBASELIB_NEW(base)) {
|
||||
DAG_id_tag_update(&base->object->id, OB_RECALC_DATA);
|
||||
|
||||
if (event == 1) { /* loc */
|
||||
|
@ -900,13 +900,13 @@ static void copy_attr(Main *bmain, Scene *scene, View3D *v3d, short event)
|
|||
DAG_relations_tag_update(bmain);
|
||||
}
|
||||
|
||||
static void UNUSED_FUNCTION(copy_attr_menu) (Main *bmain, Scene *scene, View3D *v3d)
|
||||
static void UNUSED_FUNCTION(copy_attr_menu) (Main *bmain, Scene *scene, SceneLayer *sl, View3D *v3d)
|
||||
{
|
||||
Object *ob;
|
||||
short event;
|
||||
char str[512];
|
||||
|
||||
if (!(ob = OBACT)) return;
|
||||
if (!(ob = OBACT_NEW)) return;
|
||||
|
||||
if (scene->obedit) { /* XXX get from context */
|
||||
/* if (ob->type == OB_MESH) */
|
||||
|
@ -954,7 +954,7 @@ static void UNUSED_FUNCTION(copy_attr_menu) (Main *bmain, Scene *scene, View3D *
|
|||
event = pupmenu(str);
|
||||
if (event <= 0) return;
|
||||
|
||||
copy_attr(bmain, scene, v3d, event);
|
||||
copy_attr(bmain, scene, sl, v3d, event);
|
||||
}
|
||||
|
||||
/* ******************* force field toggle operator ***************** */
|
||||
|
|
|
@ -572,8 +572,8 @@ int ED_operator_mask(bContext *C)
|
|||
case SPACE_IMAGE:
|
||||
{
|
||||
SpaceImage *sima = sa->spacedata.first;
|
||||
Scene *scene = CTX_data_scene(C);
|
||||
return ED_space_image_check_show_maskedit(scene, sima);
|
||||
SceneLayer *sl = CTX_data_scene_layer(C);
|
||||
return ED_space_image_check_show_maskedit(sl, sima);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -765,7 +765,8 @@ static PaintOperation *texture_paint_init(bContext *C, wmOperator *op, const flo
|
|||
|
||||
/* initialize from context */
|
||||
if (CTX_wm_region_view3d(C)) {
|
||||
Object *ob = OBACT;
|
||||
SceneLayer *sl = CTX_data_scene_layer(C);
|
||||
Object *ob = OBACT_NEW;
|
||||
bool uvs, mat, tex, stencil;
|
||||
if (!BKE_paint_proj_mesh_data_check(scene, ob, &uvs, &mat, &tex, &stencil)) {
|
||||
BKE_paint_data_warning(op->reports, uvs, mat, tex, stencil);
|
||||
|
|
|
@ -5305,11 +5305,12 @@ static int texture_paint_camera_project_exec(bContext *C, wmOperator *op)
|
|||
{
|
||||
Image *image = BLI_findlink(&CTX_data_main(C)->image, RNA_enum_get(op->ptr, "image"));
|
||||
Scene *scene = CTX_data_scene(C);
|
||||
SceneLayer *sl = CTX_data_scene_layer(C);
|
||||
ProjPaintState ps = {NULL};
|
||||
int orig_brush_size;
|
||||
IDProperty *idgroup;
|
||||
IDProperty *view_data = NULL;
|
||||
Object *ob = OBACT;
|
||||
Object *ob = OBACT_NEW;
|
||||
bool uvs, mat, tex;
|
||||
|
||||
if (ob == NULL || ob->type != OB_MESH) {
|
||||
|
|
|
@ -442,7 +442,8 @@ void paint_sample_color(bContext *C, ARegion *ar, int x, int y, bool texpaint_pr
|
|||
|
||||
if (CTX_wm_view3d(C) && texpaint_proj) {
|
||||
/* first try getting a colour directly from the mesh faces if possible */
|
||||
Object *ob = OBACT;
|
||||
SceneLayer *sl = CTX_data_scene_layer(C);
|
||||
Object *ob = OBACT_NEW;
|
||||
bool sample_success = false;
|
||||
ImagePaintSettings *imapaint = &scene->toolsettings->imapaint;
|
||||
bool use_material = (imapaint->mode == IMAGEPAINT_MODE_MATERIAL);
|
||||
|
|
|
@ -374,10 +374,10 @@ bool ED_space_image_show_uvedit(SpaceImage *sima, Object *obedit)
|
|||
}
|
||||
|
||||
/* matches clip function */
|
||||
bool ED_space_image_check_show_maskedit(Scene *scene, SpaceImage *sima)
|
||||
bool ED_space_image_check_show_maskedit(SceneLayer *sl, SpaceImage *sima)
|
||||
{
|
||||
/* check editmode - this is reserved for UV editing */
|
||||
Object *ob = OBACT;
|
||||
Object *ob = OBACT_NEW;
|
||||
if (ob && ob->mode & OB_MODE_EDIT && ED_space_image_show_uvedit(sima, ob)) {
|
||||
return false;
|
||||
}
|
||||
|
@ -390,8 +390,8 @@ int ED_space_image_maskedit_poll(bContext *C)
|
|||
SpaceImage *sima = CTX_wm_space_image(C);
|
||||
|
||||
if (sima) {
|
||||
Scene *scene = CTX_data_scene(C);
|
||||
return ED_space_image_check_show_maskedit(scene, sima);
|
||||
SceneLayer *sl = CTX_data_scene_layer(C);
|
||||
return ED_space_image_check_show_maskedit(sl, sima);
|
||||
}
|
||||
|
||||
return false;
|
||||
|
|
|
@ -792,6 +792,7 @@ static int image_view_selected_exec(bContext *C, wmOperator *UNUSED(op))
|
|||
SpaceImage *sima;
|
||||
ARegion *ar;
|
||||
Scene *scene;
|
||||
SceneLayer *sl;
|
||||
Object *obedit;
|
||||
Image *ima;
|
||||
|
||||
|
@ -799,6 +800,7 @@ static int image_view_selected_exec(bContext *C, wmOperator *UNUSED(op))
|
|||
sima = CTX_wm_space_image(C);
|
||||
ar = CTX_wm_region(C);
|
||||
scene = CTX_data_scene(C);
|
||||
sl = CTX_data_scene_layer(C);
|
||||
obedit = CTX_data_edit_object(C);
|
||||
|
||||
ima = ED_space_image(sima);
|
||||
|
@ -810,7 +812,7 @@ static int image_view_selected_exec(bContext *C, wmOperator *UNUSED(op))
|
|||
return OPERATOR_CANCELLED;
|
||||
}
|
||||
}
|
||||
else if (ED_space_image_check_show_maskedit(scene, sima)) {
|
||||
else if (ED_space_image_check_show_maskedit(sl, sima)) {
|
||||
if (!ED_mask_selected_minmax(C, min, max)) {
|
||||
return OPERATOR_CANCELLED;
|
||||
}
|
||||
|
|
|
@ -45,6 +45,7 @@
|
|||
#include "BKE_colortools.h"
|
||||
#include "BKE_context.h"
|
||||
#include "BKE_image.h"
|
||||
#include "BKE_layer.h"
|
||||
#include "BKE_library.h"
|
||||
#include "BKE_scene.h"
|
||||
#include "BKE_screen.h"
|
||||
|
@ -535,6 +536,7 @@ static void image_listener(bScreen *sc, ScrArea *sa, wmNotifier *wmn)
|
|||
case ND_TRANSFORM:
|
||||
case ND_MODIFIER:
|
||||
{
|
||||
TODO_LAYER_CONTEXT; /* need to use OBACT_NEW */
|
||||
Object *ob = OBACT;
|
||||
if (ob && (ob == wmn->reference) && (ob->mode & OB_MODE_EDIT)) {
|
||||
if (sima->lock && (sima->flag & SI_DRAWSHADOW)) {
|
||||
|
|
|
@ -777,7 +777,7 @@ static DMDrawOption wpaint__setSolidDrawOptions_facemask(void *userData, int ind
|
|||
return DM_DRAW_OPTION_NORMAL;
|
||||
}
|
||||
|
||||
static void draw_mesh_text(Scene *scene, Object *ob, int glsl)
|
||||
static void draw_mesh_text(Scene *scene, SceneLayer *sl, Object *ob, int glsl)
|
||||
{
|
||||
Mesh *me = ob->data;
|
||||
DerivedMesh *ddm;
|
||||
|
@ -803,7 +803,7 @@ static void draw_mesh_text(Scene *scene, Object *ob, int glsl)
|
|||
/* don't draw when editing */
|
||||
if (ob->mode & OB_MODE_EDIT)
|
||||
return;
|
||||
else if (ob == OBACT)
|
||||
else if (ob == OBACT_NEW)
|
||||
if (BKE_paint_select_elem_test(ob))
|
||||
return;
|
||||
|
||||
|
@ -947,7 +947,7 @@ static int compareDrawOptionsEm(void *userData, int cur_index, int next_index)
|
|||
return 1;
|
||||
}
|
||||
|
||||
static void draw_mesh_textured_old(Scene *scene, View3D *v3d, RegionView3D *rv3d,
|
||||
static void draw_mesh_textured_old(Scene *scene, SceneLayer *sl, View3D *v3d, RegionView3D *rv3d,
|
||||
Object *ob, DerivedMesh *dm, const int draw_flags)
|
||||
{
|
||||
Mesh *me = ob->data;
|
||||
|
@ -984,7 +984,7 @@ static void draw_mesh_textured_old(Scene *scene, View3D *v3d, RegionView3D *rv3d
|
|||
dm_draw_flag = DM_DRAW_USE_ACTIVE_UV;
|
||||
}
|
||||
|
||||
if (ob == OBACT) {
|
||||
if (ob == OBACT_NEW) {
|
||||
if (ob->mode & OB_MODE_WEIGHT_PAINT) {
|
||||
dm_draw_flag |= DM_DRAW_USE_COLORS | DM_DRAW_ALWAYS_SMOOTH | DM_DRAW_SKIP_HIDDEN;
|
||||
}
|
||||
|
@ -1040,7 +1040,7 @@ static void draw_mesh_textured_old(Scene *scene, View3D *v3d, RegionView3D *rv3d
|
|||
/* draw game engine text hack */
|
||||
if (rv3d->rflag & RV3D_IS_GAME_ENGINE) {
|
||||
if (BKE_bproperty_object_get(ob, "Text")) {
|
||||
draw_mesh_text(scene, ob, 0);
|
||||
draw_mesh_text(scene, sl, ob, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1174,7 +1174,7 @@ static bool tex_mat_set_face_editmesh_cb(void *userData, int index)
|
|||
return !BM_elem_flag_test(efa, BM_ELEM_HIDDEN);
|
||||
}
|
||||
|
||||
void draw_mesh_textured(Scene *scene, View3D *v3d, RegionView3D *rv3d,
|
||||
void draw_mesh_textured(Scene *scene, SceneLayer *sl, View3D *v3d, RegionView3D *rv3d,
|
||||
Object *ob, DerivedMesh *dm, const int draw_flags)
|
||||
{
|
||||
/* if not cycles, or preview-modifiers, or drawing matcaps */
|
||||
|
@ -1183,7 +1183,7 @@ void draw_mesh_textured(Scene *scene, View3D *v3d, RegionView3D *rv3d,
|
|||
(BKE_scene_use_new_shading_nodes(scene) == false) ||
|
||||
((ob->mode & OB_MODE_TEXTURE_PAINT) && ELEM(v3d->drawtype, OB_TEXTURE, OB_SOLID)))
|
||||
{
|
||||
draw_mesh_textured_old(scene, v3d, rv3d, ob, dm, draw_flags);
|
||||
draw_mesh_textured_old(scene, sl, v3d, rv3d, ob, dm, draw_flags);
|
||||
return;
|
||||
}
|
||||
else if (ob->mode & (OB_MODE_VERTEX_PAINT | OB_MODE_WEIGHT_PAINT)) {
|
||||
|
|
|
@ -3797,7 +3797,7 @@ static DMDrawOption draw_em_fancy__setGLSLFaceOpts(void *userData, int index)
|
|||
}
|
||||
}
|
||||
|
||||
static void draw_em_fancy(Scene *scene, ARegion *ar, View3D *v3d,
|
||||
static void draw_em_fancy(Scene *scene, SceneLayer *sl, ARegion *ar, View3D *v3d,
|
||||
Object *ob, BMEditMesh *em, DerivedMesh *cageDM, DerivedMesh *finalDM, const char dt)
|
||||
|
||||
{
|
||||
|
@ -3845,7 +3845,7 @@ static void draw_em_fancy(Scene *scene, ARegion *ar, View3D *v3d,
|
|||
glFrontFace(GL_CCW);
|
||||
}
|
||||
else {
|
||||
draw_mesh_textured(scene, v3d, rv3d, ob, finalDM, 0);
|
||||
draw_mesh_textured(scene, sl, v3d, rv3d, ob, finalDM, 0);
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
@ -4203,11 +4203,11 @@ static bool object_is_halo(Scene *scene, Object *ob)
|
|||
return (ma && (ma->material_type == MA_TYPE_HALO) && !BKE_scene_use_new_shading_nodes(scene));
|
||||
}
|
||||
|
||||
static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D *rv3d, BaseLegacy *base,
|
||||
static void draw_mesh_fancy(Scene *scene, SceneLayer *sl, ARegion *ar, View3D *v3d, RegionView3D *rv3d, Base *base,
|
||||
const char dt, const unsigned char ob_wire_col[4], const short dflag)
|
||||
{
|
||||
#ifdef WITH_GAMEENGINE
|
||||
Object *ob = (rv3d->rflag & RV3D_IS_GAME_ENGINE) ? BKE_object_lod_meshob_get(base->object, scene) : base->object;
|
||||
Object *ob = (rv3d->rflag & RV3D_IS_GAME_ENGINE) ? BKE_object_lod_meshob_get(base->object, sl) : base->object;
|
||||
#else
|
||||
Object *ob = base->object;
|
||||
#endif
|
||||
|
@ -4314,7 +4314,7 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
|
|||
draw_mesh_face_select(rv3d, me, dm, false);
|
||||
}
|
||||
else {
|
||||
draw_mesh_textured(scene, v3d, rv3d, ob, dm, draw_flags);
|
||||
draw_mesh_textured(scene, sl, v3d, rv3d, ob, dm, draw_flags);
|
||||
}
|
||||
|
||||
if (draw_loose && !(draw_flags & DRAW_FACE_SELECT)) {
|
||||
|
@ -4468,7 +4468,7 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
|
|||
}
|
||||
|
||||
/* returns true if nothing was drawn, for detecting to draw an object center */
|
||||
static bool draw_mesh_object(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D *rv3d, BaseLegacy *base,
|
||||
static bool draw_mesh_object(Scene *scene, SceneLayer *sl, ARegion *ar, View3D *v3d, RegionView3D *rv3d, BaseLegacy *base,
|
||||
const char dt, const unsigned char ob_wire_col[4], const short dflag)
|
||||
{
|
||||
Object *ob = base->object;
|
||||
|
@ -4528,7 +4528,7 @@ static bool draw_mesh_object(Scene *scene, ARegion *ar, View3D *v3d, RegionView3
|
|||
}
|
||||
}
|
||||
|
||||
draw_em_fancy(scene, ar, v3d, ob, em, cageDM, finalDM, dt);
|
||||
draw_em_fancy(scene, sl, ar, v3d, ob, em, cageDM, finalDM, dt);
|
||||
|
||||
if (use_material) {
|
||||
GPU_end_object_materials();
|
||||
|
@ -4550,7 +4550,7 @@ static bool draw_mesh_object(Scene *scene, ARegion *ar, View3D *v3d, RegionView3
|
|||
}
|
||||
}
|
||||
|
||||
draw_mesh_fancy(scene, ar, v3d, rv3d, base, dt, ob_wire_col, dflag);
|
||||
draw_mesh_fancy(scene, sl, ar, v3d, rv3d, base, dt, ob_wire_col, dflag);
|
||||
|
||||
GPU_end_object_materials();
|
||||
|
||||
|
@ -4612,18 +4612,18 @@ static void make_color_variations(const unsigned char base_ubyte[4], float low[4
|
|||
high[3] = base[3];
|
||||
}
|
||||
|
||||
static void draw_mesh_fancy_new(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D *rv3d, BaseLegacy *base,
|
||||
static void draw_mesh_fancy_new(Scene *scene, SceneLayer *sl, ARegion *ar, View3D *v3d, RegionView3D *rv3d, Base *base,
|
||||
const char dt, const unsigned char ob_wire_col[4], const short dflag, const bool other_obedit)
|
||||
{
|
||||
if (dflag & (DRAW_PICKING | DRAW_CONSTCOLOR)) {
|
||||
/* too complicated! use existing methods */
|
||||
/* TODO: move this into a separate depth pre-pass */
|
||||
draw_mesh_fancy(scene, ar, v3d, rv3d, base, dt, ob_wire_col, dflag);
|
||||
draw_mesh_fancy(scene, sl, ar, v3d, rv3d, base, dt, ob_wire_col, dflag);
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef WITH_GAMEENGINE
|
||||
Object *ob = (rv3d->rflag & RV3D_IS_GAME_ENGINE) ? BKE_object_lod_meshob_get(base->object, scene) : base->object;
|
||||
Object *ob = (rv3d->rflag & RV3D_IS_GAME_ENGINE) ? BKE_object_lod_meshob_get(base->object, sl) : base->object;
|
||||
#else
|
||||
Object *ob = base->object;
|
||||
#endif
|
||||
|
@ -4789,7 +4789,7 @@ static void draw_mesh_fancy_new(Scene *scene, ARegion *ar, View3D *v3d, RegionVi
|
|||
draw_mesh_face_select(rv3d, me, dm, false);
|
||||
}
|
||||
else {
|
||||
draw_mesh_textured(scene, v3d, rv3d, ob, dm, draw_flags);
|
||||
draw_mesh_textured(scene, sl, v3d, rv3d, ob, dm, draw_flags);
|
||||
}
|
||||
|
||||
if (draw_loose && !(draw_flags & DRAW_FACE_SELECT)) {
|
||||
|
@ -4931,7 +4931,7 @@ static void draw_mesh_fancy_new(Scene *scene, ARegion *ar, View3D *v3d, RegionVi
|
|||
dm->release(dm);
|
||||
}
|
||||
|
||||
static bool draw_mesh_object_new(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D *rv3d, BaseLegacy *base,
|
||||
static bool draw_mesh_object_new(Scene *scene, SceneLayer *sl, ARegion *ar, View3D *v3d, RegionView3D *rv3d, BaseLegacy *base,
|
||||
const char dt, const unsigned char ob_wire_col[4], const short dflag)
|
||||
{
|
||||
Object *ob = base->object;
|
||||
|
@ -5017,7 +5017,7 @@ static bool draw_mesh_object_new(Scene *scene, ARegion *ar, View3D *v3d, RegionV
|
|||
|
||||
const bool other_obedit = obedit && (obedit != ob);
|
||||
|
||||
draw_mesh_fancy_new(scene, ar, v3d, rv3d, base, dt, ob_wire_col, dflag, other_obedit);
|
||||
draw_mesh_fancy_new(scene, sl, ar, v3d, rv3d, base, dt, ob_wire_col, dflag, other_obedit);
|
||||
|
||||
GPU_end_object_materials();
|
||||
|
||||
|
@ -8434,10 +8434,10 @@ void draw_object(Scene *scene, SceneLayer *sl, ARegion *ar, View3D *v3d, Base *b
|
|||
switch (ob->type) {
|
||||
case OB_MESH:
|
||||
if (IS_VIEWPORT_LEGACY(v3d)) {
|
||||
empty_object = draw_mesh_object(scene, ar, v3d, rv3d, base, dt, ob_wire_col, dflag);
|
||||
empty_object = draw_mesh_object(scene, sl, ar, v3d, rv3d, base, dt, ob_wire_col, dflag);
|
||||
}
|
||||
else {
|
||||
empty_object = draw_mesh_object_new(scene, ar, v3d, rv3d, base, dt, ob_wire_col, dflag);
|
||||
empty_object = draw_mesh_object_new(scene, sl, ar, v3d, rv3d, base, dt, ob_wire_col, dflag);
|
||||
}
|
||||
if ((dflag & DRAW_CONSTCOLOR) == 0) {
|
||||
/* mesh draws wire itself */
|
||||
|
|
|
@ -786,8 +786,8 @@ static void do_view3d_vgroup_buttons(bContext *C, void *UNUSED(arg), int event)
|
|||
|
||||
static int view3d_panel_vgroup_poll(const bContext *C, PanelType *UNUSED(pt))
|
||||
{
|
||||
Scene *scene = CTX_data_scene(C);
|
||||
Object *ob = OBACT;
|
||||
SceneLayer *sl = CTX_data_scene_layer(C);
|
||||
Object *ob = OBACT_NEW;
|
||||
if (ob && (BKE_object_is_in_editmode_vgroup(ob) ||
|
||||
BKE_object_is_in_wpaint_select_vert(ob)))
|
||||
{
|
||||
|
@ -1106,9 +1106,9 @@ static void v3d_editmetaball_buts(uiLayout *layout, Object *ob)
|
|||
|
||||
static void do_view3d_region_buttons(bContext *C, void *UNUSED(index), int event)
|
||||
{
|
||||
Scene *scene = CTX_data_scene(C);
|
||||
SceneLayer *sl = CTX_data_scene_layer(C);
|
||||
View3D *v3d = CTX_wm_view3d(C);
|
||||
Object *ob = OBACT;
|
||||
Object *ob = OBACT_NEW;
|
||||
|
||||
switch (event) {
|
||||
|
||||
|
|
|
@ -1505,9 +1505,9 @@ static void view3d_draw_grid(const bContext *C, ARegion *ar)
|
|||
glDisable(GL_DEPTH_TEST);
|
||||
}
|
||||
|
||||
static bool is_cursor_visible(Scene *scene)
|
||||
static bool is_cursor_visible(Scene *scene, SceneLayer *sl)
|
||||
{
|
||||
Object *ob = OBACT;
|
||||
Object *ob = OBACT_NEW;
|
||||
|
||||
/* don't draw cursor in paint modes, but with a few exceptions */
|
||||
if (ob && ob->mode & OB_MODE_ALL_PAINT) {
|
||||
|
@ -2394,9 +2394,9 @@ void view3d_main_region_draw(const bContext *C, ARegion *ar)
|
|||
* meanwhile it should keep the old viewport working.
|
||||
*/
|
||||
|
||||
void VP_legacy_drawcursor(Scene *scene, ARegion *ar, View3D *v3d)
|
||||
void VP_legacy_drawcursor(Scene *scene, SceneLayer *sl, ARegion *ar, View3D *v3d)
|
||||
{
|
||||
if (is_cursor_visible(scene)) {
|
||||
if (is_cursor_visible(scene, sl)) {
|
||||
drawcursor(scene, ar, v3d);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2384,6 +2384,7 @@ static void view3d_main_region_draw_info(const bContext *C, Scene *scene,
|
|||
ARegion *ar, View3D *v3d,
|
||||
const char *grid_unit, bool render_border)
|
||||
{
|
||||
SceneLayer *sl = CTX_data_scene_layer(C);
|
||||
wmWindowManager *wm = CTX_wm_manager(C);
|
||||
RegionView3D *rv3d = ar->regiondata;
|
||||
rcti rect;
|
||||
|
@ -2404,7 +2405,7 @@ static void view3d_main_region_draw_info(const bContext *C, Scene *scene,
|
|||
}
|
||||
|
||||
if ((v3d->flag2 & V3D_RENDER_OVERRIDE) == 0) {
|
||||
VP_legacy_drawcursor(scene, ar, v3d); /* 3D cursor */
|
||||
VP_legacy_drawcursor(scene, sl, ar, v3d); /* 3D cursor */
|
||||
|
||||
if (U.uiflag & USER_SHOW_ROTVIEWICON)
|
||||
VP_legacy_draw_view_axis(rv3d, &rect);
|
||||
|
@ -2412,7 +2413,6 @@ static void view3d_main_region_draw_info(const bContext *C, Scene *scene,
|
|||
draw_view_icon(rv3d, &rect);
|
||||
|
||||
if (U.uiflag & USER_DRAWVIEWINFO) {
|
||||
SceneLayer *sl = CTX_data_scene_layer(C);
|
||||
Object *ob = OBACT_NEW;
|
||||
VP_legacy_draw_selected_name(scene, ob, &rect);
|
||||
}
|
||||
|
|
|
@ -619,7 +619,8 @@ static bool view3d_orbit_calc_center(bContext *C, float r_dyn_ofs[3])
|
|||
bool is_set = false;
|
||||
|
||||
Scene *scene = CTX_data_scene(C);
|
||||
Object *ob_act = OBACT;
|
||||
SceneLayer *sl = CTX_data_scene_layer(C);
|
||||
Object *ob_act = OBACT_NEW;
|
||||
|
||||
if (ob_act && (ob_act->mode & OB_MODE_ALL_PAINT) &&
|
||||
/* with weight-paint + pose-mode, fall through to using calculateTransformCenter */
|
||||
|
@ -656,14 +657,13 @@ static bool view3d_orbit_calc_center(bContext *C, float r_dyn_ofs[3])
|
|||
}
|
||||
else if (ob_act == NULL || ob_act->mode == OB_MODE_OBJECT) {
|
||||
/* object mode use boundbox centers */
|
||||
View3D *v3d = CTX_wm_view3d(C);
|
||||
BaseLegacy *base;
|
||||
Base *base;
|
||||
unsigned int tot = 0;
|
||||
float select_center[3];
|
||||
|
||||
zero_v3(select_center);
|
||||
for (base = FIRSTBASE; base; base = base->next) {
|
||||
if (TESTBASE(v3d, base)) {
|
||||
for (base = FIRSTBASE_NEW; base; base = base->next) {
|
||||
if (TESTBASE_NEW(base)) {
|
||||
/* use the boundbox if we can */
|
||||
Object *ob = base->object;
|
||||
|
||||
|
@ -3027,9 +3027,10 @@ static int viewselected_exec(bContext *C, wmOperator *op)
|
|||
ARegion *ar = CTX_wm_region(C);
|
||||
View3D *v3d = CTX_wm_view3d(C);
|
||||
Scene *scene = CTX_data_scene(C);
|
||||
SceneLayer *sl = CTX_data_scene_layer(C);
|
||||
bGPdata *gpd = CTX_data_gpencil_data(C);
|
||||
const bool is_gp_edit = ((gpd) && (gpd->flag & GP_DATA_STROKE_EDITMODE));
|
||||
Object *ob = OBACT;
|
||||
Object *ob = OBACT_NEW;
|
||||
Object *obedit = CTX_data_edit_object(C);
|
||||
float min[3], max[3];
|
||||
bool ok = false, ok_dist = true;
|
||||
|
@ -3048,9 +3049,9 @@ static int viewselected_exec(bContext *C, wmOperator *op)
|
|||
if (ob && (ob->mode & OB_MODE_WEIGHT_PAINT)) {
|
||||
/* hard-coded exception, we look for the one selected armature */
|
||||
/* this is weak code this way, we should make a generic active/selection callback interface once... */
|
||||
BaseLegacy *base;
|
||||
Base *base;
|
||||
for (base = scene->base.first; base; base = base->next) {
|
||||
if (TESTBASELIB(v3d, base)) {
|
||||
if (TESTBASELIB_NEW(base)) {
|
||||
if (base->object->type == OB_ARMATURE)
|
||||
if (base->object->mode & OB_MODE_POSE)
|
||||
break;
|
||||
|
@ -3859,6 +3860,7 @@ static int viewnumpad_exec(bContext *C, wmOperator *op)
|
|||
ARegion *ar;
|
||||
RegionView3D *rv3d;
|
||||
Scene *scene = CTX_data_scene(C);
|
||||
SceneLayer *sl = CTX_data_scene_layer(C);
|
||||
static int perspo = RV3D_PERSP;
|
||||
int viewnum, nextperspo;
|
||||
bool align_active;
|
||||
|
@ -3893,7 +3895,7 @@ static int viewnumpad_exec(bContext *C, wmOperator *op)
|
|||
/* lastview - */
|
||||
|
||||
if (rv3d->persp != RV3D_CAMOB) {
|
||||
Object *ob = OBACT;
|
||||
Object *ob = OBACT_NEW;
|
||||
|
||||
if (!rv3d->smooth_timer) {
|
||||
/* store settings of current view before allowing overwriting with camera view
|
||||
|
|
|
@ -186,7 +186,7 @@ bool draw_armature(Scene *scene, struct SceneLayer *sl, View3D *v3d, ARegion *ar
|
|||
const bool is_outline);
|
||||
|
||||
/* drawmesh.c */
|
||||
void draw_mesh_textured(Scene *scene, View3D *v3d, RegionView3D *rv3d,
|
||||
void draw_mesh_textured(Scene *scene, struct SceneLayer *sl, View3D *v3d, RegionView3D *rv3d,
|
||||
struct Object *ob, struct DerivedMesh *dm, const int draw_flags);
|
||||
void draw_mesh_face_select(
|
||||
struct RegionView3D *rv3d, struct Mesh *me, struct DerivedMesh *dm,
|
||||
|
@ -330,7 +330,7 @@ extern bool view3d_camera_border_hack_test;
|
|||
#define IS_VIEWPORT_LEGACY(v3d) ((v3d->tmp_compat_flag & V3D_NEW_VIEWPORT) == 0)
|
||||
|
||||
/* temporary for legacy viewport to work */
|
||||
void VP_legacy_drawcursor(Scene *scene, ARegion *ar, View3D *v3d);
|
||||
void VP_legacy_drawcursor(Scene *scene, struct SceneLayer *sl, ARegion *ar, View3D *v3d);
|
||||
void VP_legacy_draw_view_axis(RegionView3D *rv3d, rcti *rect);
|
||||
void VP_legacy_draw_viewport_name(ARegion *ar, View3D *v3d, rcti *rect);
|
||||
void VP_legacy_draw_selected_name(Scene *scene, Object *ob, rcti *rect);
|
||||
|
|
|
@ -1511,7 +1511,7 @@ static bool ed_object_select_pick(
|
|||
}
|
||||
}
|
||||
}
|
||||
else if (ED_do_pose_selectbuffer(scene, basact, buffer, hits, extend, deselect, toggle, do_nearest)) {
|
||||
else if (ED_do_pose_selectbuffer(scene, sl, basact, buffer, hits, extend, deselect, toggle, do_nearest)) {
|
||||
/* then bone is found */
|
||||
|
||||
/* we make the armature selected:
|
||||
|
|
|
@ -50,6 +50,7 @@ struct Object;
|
|||
struct View3D;
|
||||
struct ScrArea;
|
||||
struct Scene;
|
||||
struct SceneLayer;
|
||||
struct bConstraint;
|
||||
struct wmKeyMap;
|
||||
struct wmKeyConfig;
|
||||
|
@ -650,7 +651,7 @@ bool transdata_check_local_islands(TransInfo *t, short around);
|
|||
int count_set_pose_transflags(int *out_mode, short around, struct Object *ob);
|
||||
|
||||
/* auto-keying stuff used by special_aftertrans_update */
|
||||
void autokeyframe_ob_cb_func(struct bContext *C, struct Scene *scene, struct View3D *v3d, struct Object *ob, int tmode);
|
||||
void autokeyframe_ob_cb_func(struct bContext *C, struct Scene *scene, struct SceneLayer *sl, struct View3D *v3d, struct Object *ob, int tmode);
|
||||
void autokeyframe_pose_cb_func(struct bContext *C, struct Scene *scene, struct View3D *v3d, struct Object *ob, int tmode, short targetless_ik);
|
||||
|
||||
/*********************** Constraints *****************************/
|
||||
|
|
|
@ -286,13 +286,13 @@ static void set_prop_dist(TransInfo *t, const bool with_dist)
|
|||
|
||||
static void createTransTexspace(TransInfo *t)
|
||||
{
|
||||
Scene *scene = t->scene;
|
||||
SceneLayer *sl = t->sl;
|
||||
TransData *td;
|
||||
Object *ob;
|
||||
ID *id;
|
||||
short *texflag;
|
||||
|
||||
ob = OBACT;
|
||||
ob = OBACT_NEW;
|
||||
|
||||
if (ob == NULL) { // Shouldn't logically happen, but still...
|
||||
t->total = 0;
|
||||
|
@ -1917,7 +1917,8 @@ static void createTransParticleVerts(bContext *C, TransInfo *t)
|
|||
void flushTransParticles(TransInfo *t)
|
||||
{
|
||||
Scene *scene = t->scene;
|
||||
Object *ob = OBACT;
|
||||
SceneLayer *sl = t->sl;
|
||||
Object *ob = OBACT_NEW;
|
||||
PTCacheEdit *edit = PE_get_current(scene, ob);
|
||||
ParticleSystem *psys = edit->psys;
|
||||
ParticleSystemModifierData *psmd = NULL;
|
||||
|
@ -1957,7 +1958,7 @@ void flushTransParticles(TransInfo *t)
|
|||
point->flag |= PEP_EDIT_RECALC;
|
||||
}
|
||||
|
||||
PE_update_object(scene, OBACT, 1);
|
||||
PE_update_object(scene, OBACT_NEW, 1);
|
||||
}
|
||||
|
||||
/* ********************* mesh ****************** */
|
||||
|
@ -5523,7 +5524,7 @@ static void clear_trans_object_base_flags(TransInfo *t)
|
|||
* tmode: should be a transform mode
|
||||
*/
|
||||
// NOTE: context may not always be available, so must check before using it as it's a luxury for a few cases
|
||||
void autokeyframe_ob_cb_func(bContext *C, Scene *scene, View3D *v3d, Object *ob, int tmode)
|
||||
void autokeyframe_ob_cb_func(bContext *C, Scene *scene, SceneLayer *sl, View3D *v3d, Object *ob, int tmode)
|
||||
{
|
||||
ID *id = &ob->id;
|
||||
FCurve *fcu;
|
||||
|
@ -5572,7 +5573,7 @@ void autokeyframe_ob_cb_func(bContext *C, Scene *scene, View3D *v3d, Object *ob,
|
|||
}
|
||||
else if (ELEM(tmode, TFM_ROTATION, TFM_TRACKBALL)) {
|
||||
if (v3d->around == V3D_AROUND_ACTIVE) {
|
||||
if (ob != OBACT)
|
||||
if (ob != OBACT_NEW)
|
||||
do_loc = true;
|
||||
}
|
||||
else if (v3d->around == V3D_AROUND_CURSOR)
|
||||
|
@ -5583,7 +5584,7 @@ void autokeyframe_ob_cb_func(bContext *C, Scene *scene, View3D *v3d, Object *ob,
|
|||
}
|
||||
else if (tmode == TFM_RESIZE) {
|
||||
if (v3d->around == V3D_AROUND_ACTIVE) {
|
||||
if (ob != OBACT)
|
||||
if (ob != OBACT_NEW)
|
||||
do_loc = true;
|
||||
}
|
||||
else if (v3d->around == V3D_AROUND_CURSOR)
|
||||
|
@ -6346,7 +6347,7 @@ void special_aftertrans_update(bContext *C, TransInfo *t)
|
|||
|
||||
/* Set autokey if necessary */
|
||||
if (!canceled) {
|
||||
autokeyframe_ob_cb_func(C, t->scene, (View3D *)t->view, ob, t->mode);
|
||||
autokeyframe_ob_cb_func(C, t->scene, t->sl, (View3D *)t->view, ob, t->mode);
|
||||
}
|
||||
|
||||
/* restore rigid body transform */
|
||||
|
|
|
@ -927,7 +927,7 @@ static void recalcData_objects(TransInfo *t)
|
|||
// TODO: autokeyframe calls need some setting to specify to add samples (FPoints) instead of keyframes?
|
||||
if ((t->animtimer) && IS_AUTOKEY_ON(t->scene)) {
|
||||
animrecord_check_state(t->scene, &ob->id, t->animtimer);
|
||||
autokeyframe_ob_cb_func(t->context, t->scene, (View3D *)t->view, ob, t->mode);
|
||||
autokeyframe_ob_cb_func(t->context, t->scene, t->sl, (View3D *)t->view, ob, t->mode);
|
||||
}
|
||||
|
||||
/* sets recalc flags fully, instead of flushing existing ones
|
||||
|
|
|
@ -1990,6 +1990,9 @@ extern const char *RE_engine_id_CYCLES;
|
|||
((base)->lay & (v3d ? v3d->lay : scene->lay)) && \
|
||||
((base)->object->restrictflag & OB_RESTRICT_VIEW) == 0)
|
||||
|
||||
#define TESTBASE_NEW(base) ( \
|
||||
(((base)->flag & BASE_SELECTED) != 0) && \
|
||||
(((base)->flag & BASE_VISIBLED) != 0))
|
||||
#define TESTBASELIB_NEW(base) ( \
|
||||
(((base)->flag & BASE_SELECTED) != 0) && \
|
||||
((base)->object->id.lib == NULL) && \
|
||||
|
|
|
@ -255,6 +255,7 @@ EnumPropertyItem rna_enum_file_sort_items[] = {
|
|||
#include "BKE_colortools.h"
|
||||
#include "BKE_context.h"
|
||||
#include "BKE_depsgraph.h"
|
||||
#include "BKE_layer.h"
|
||||
#include "BKE_nla.h"
|
||||
#include "BKE_paint.h"
|
||||
#include "BKE_scene.h"
|
||||
|
@ -817,7 +818,11 @@ static int rna_SpaceImageEditor_show_maskedit_get(PointerRNA *ptr)
|
|||
{
|
||||
SpaceImage *sima = (SpaceImage *)(ptr->data);
|
||||
bScreen *sc = (bScreen *)ptr->id.data;
|
||||
return ED_space_image_check_show_maskedit(sc->scene, sima);
|
||||
|
||||
TODO_LAYER_CONTEXT; /* get SceneLayer from context/window/workspace instead */
|
||||
SceneLayer *sl = BKE_scene_layer_context_active(sc->scene);
|
||||
|
||||
return ED_space_image_check_show_maskedit(sl, sima);
|
||||
}
|
||||
|
||||
static void rna_SpaceImageEditor_image_set(PointerRNA *ptr, PointerRNA value)
|
||||
|
|
|
@ -79,7 +79,8 @@ static void shader_get_from_context(const bContext *C, bNodeTreeType *UNUSED(tre
|
|||
{
|
||||
SpaceNode *snode = CTX_wm_space_node(C);
|
||||
Scene *scene = CTX_data_scene(C);
|
||||
Object *ob = OBACT;
|
||||
SceneLayer *sl = CTX_data_scene_layer(C);
|
||||
Object *ob = OBACT_NEW;
|
||||
|
||||
if ((snode->shaderfrom == SNODE_SHADER_OBJECT) ||
|
||||
(BKE_scene_use_new_shading_nodes(scene) == false))
|
||||
|
|
|
@ -62,7 +62,8 @@ static void texture_get_from_context(const bContext *C, bNodeTreeType *UNUSED(tr
|
|||
{
|
||||
SpaceNode *snode = CTX_wm_space_node(C);
|
||||
Scene *scene = CTX_data_scene(C);
|
||||
Object *ob = OBACT;
|
||||
SceneLayer *sl = CTX_data_scene_layer(C);
|
||||
Object *ob = OBACT_NEW;
|
||||
Tex *tx = NULL;
|
||||
|
||||
if (snode->texfrom == SNODE_TEX_OBJECT) {
|
||||
|
|
Loading…
Reference in New Issue