Merge branch 'blender-v3.1-release'
This commit is contained in:
commit
f493e2f23a
|
@ -1513,7 +1513,9 @@ static void editbmesh_calc_modifiers(struct Depsgraph *depsgraph,
|
|||
}
|
||||
else {
|
||||
Mesh *me_orig = mesh_input;
|
||||
if (me_orig->id.tag & LIB_TAG_COPIED_ON_WRITE) {
|
||||
/* Modifying the input mesh is weak, however as there can only be one object in edit mode
|
||||
* even if multiple are sharing the same mesh this should be thread safe. */
|
||||
if ((me_orig->id.tag & LIB_TAG_COPIED_ON_WRITE) && (ob->mode & OB_MODE_EDIT)) {
|
||||
if (!BKE_mesh_runtime_ensure_edit_data(me_orig)) {
|
||||
BKE_mesh_runtime_reset_edit_data(me_orig);
|
||||
}
|
||||
|
|
|
@ -491,7 +491,9 @@ template<typename TextureMethod> class ScreenSpaceDrawingMode : public AbstractD
|
|||
|
||||
/* Step: Add the GPU textures to the shgroup. */
|
||||
instance_data->update_batches();
|
||||
add_depth_shgroups(*instance_data, image, iuser);
|
||||
if (!instance_data->flags.do_tile_drawing) {
|
||||
add_depth_shgroups(*instance_data, image, iuser);
|
||||
}
|
||||
add_shgroups(instance_data);
|
||||
}
|
||||
|
||||
|
@ -507,8 +509,10 @@ template<typename TextureMethod> class ScreenSpaceDrawingMode : public AbstractD
|
|||
|
||||
DefaultFramebufferList *dfbl = DRW_viewport_framebuffer_list_get();
|
||||
GPU_framebuffer_bind(dfbl->default_fb);
|
||||
|
||||
static float clear_col[4] = {0.0f, 0.0f, 0.0f, 0.0f};
|
||||
GPU_framebuffer_clear_color_depth(dfbl->default_fb, clear_col, 1.0);
|
||||
float clear_depth = instance_data->flags.do_tile_drawing ? 0.75 : 1.0f;
|
||||
GPU_framebuffer_clear_color_depth(dfbl->default_fb, clear_col, clear_depth);
|
||||
|
||||
DRW_view_set_active(instance_data->view);
|
||||
DRW_draw_pass(instance_data->passes.depth_pass);
|
||||
|
|
|
@ -106,7 +106,7 @@ struct IMAGE_InstanceData {
|
|||
|
||||
void update_image_usage(const ImageUser *image_user)
|
||||
{
|
||||
ImageUsage usage(image, image_user);
|
||||
ImageUsage usage(image, image_user, flags.do_tile_drawing);
|
||||
if (last_usage != usage) {
|
||||
last_usage = usage;
|
||||
reset_dirty_flag(true);
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
/**
|
||||
* ImageUsage contains data of the image and image user to identify changes that require a rebuild
|
||||
* of the texture slots.
|
||||
* the texture slots.
|
||||
*/
|
||||
struct ImageUsage {
|
||||
/** Render pass of the image that is used. */
|
||||
|
@ -22,11 +22,12 @@ struct ImageUsage {
|
|||
ColorManagedColorspaceSettings colorspace_settings;
|
||||
/** IMA_ALPHA_* */
|
||||
char alpha_mode;
|
||||
bool last_tile_drawing;
|
||||
|
||||
const void *last_image = nullptr;
|
||||
|
||||
ImageUsage() = default;
|
||||
ImageUsage(const struct Image *image, const struct ImageUser *image_user)
|
||||
ImageUsage(const struct Image *image, const struct ImageUser *image_user, bool do_tile_drawing)
|
||||
{
|
||||
pass = image_user ? image_user->pass : 0;
|
||||
layer = image_user ? image_user->layer : 0;
|
||||
|
@ -34,6 +35,7 @@ struct ImageUsage {
|
|||
colorspace_settings = image->colorspace_settings;
|
||||
alpha_mode = image->alpha_mode;
|
||||
last_image = static_cast<const void *>(image);
|
||||
last_tile_drawing = do_tile_drawing;
|
||||
}
|
||||
|
||||
bool operator==(const ImageUsage &other) const
|
||||
|
|
Loading…
Reference in New Issue