16 months agoMerge branch 'master' into blender2.8
Sybren A. Stüvel [Sun, 8 Apr 2018 12:07:34 +0000 (14:07 +0200)]
Merge branch 'master' into blender2.8

16 months agoEncoding panel clarifications
Sybren A. Stüvel [Sun, 8 Apr 2018 11:44:53 +0000 (13:44 +0200)]
Encoding panel clarifications

The encoding panel mentions "None" in a few places, which is confusing.
- "Codec: None" now reads "No Video"
- "Audio Codec: None" now reads "No Audio"
- "Output Quality: None; ..." now reads "Constant Bitrate"

When selecting "No Video" the remaining video encoding options are
hidden, making it even more explicit that there will not be video in the
output file.

The label "Codec" now reads "Video Codec" for symmetry with "Audio

16 months agoBLF: Fix problem with bound texture.
Clément Foucault [Sat, 7 Apr 2018 23:14:43 +0000 (01:14 +0200)]
BLF: Fix problem with bound texture.

Previous code was assuming that the glyph texture would remain bound to
GL_TEXTURE0 until the cache would be drawn. This is not always the case,
so better save the texture and rebind it before drawing.

16 months agoBLF: Opti: More clever sampling for blured glyphs.
Clément Foucault [Sat, 7 Apr 2018 23:00:55 +0000 (01:00 +0200)]
BLF: Opti: More clever sampling for blured glyphs.

Reduce the number of sampled required for blurring by using filtered
texture samples.

This changes the result a bit but it is not noticable.

16 months agoBLF: Opti: Draw only one quad per shadow/blurred glyph.
Clément Foucault [Sat, 7 Apr 2018 22:44:35 +0000 (00:44 +0200)]
BLF: Opti: Draw only one quad per shadow/blurred glyph.

This port the Blurring of blf fonts to the final drawing shader.

We add a bit of extra padding to each glyph so that jittering the texture
coord does not sample the neighbor glyphs.

16 months agoFix edit-mesh select next
Campbell Barton [Sat, 7 Apr 2018 17:54:59 +0000 (19:54 +0200)]
Fix edit-mesh select next

Last change introduced error, return would stop looking over candidates.

D3137 by @nBurn

16 months agoBullet: Fix velocity calculation of new spring constraint
Sergej Reich [Sat, 7 Apr 2018 15:37:23 +0000 (17:37 +0200)]
Bullet: Fix velocity calculation of new spring constraint

This is a backport of bullet commit: 86ca7dc

16 months agoUI: Fix waveform widget text drawing.
Clément Foucault [Sat, 7 Apr 2018 12:03:32 +0000 (14:03 +0200)]
UI: Fix waveform widget text drawing.

Flush the text cache so that we have proper scissor test and ordering.

16 months agoUI: Perf: Port color widgets to batch.
Clément Foucault [Fri, 6 Apr 2018 21:54:24 +0000 (23:54 +0200)]
UI: Perf: Port color widgets to batch.

This is more for completeness than perf.

Shader is tiny bit more complex but we get less overdraw and drawcalls.

16 months agoFix object mode workspace check
Campbell Barton [Fri, 6 Apr 2018 16:31:32 +0000 (18:31 +0200)]
Fix object mode workspace check

16 months agoMinor change to last commit
Campbell Barton [Fri, 6 Apr 2018 16:17:18 +0000 (18:17 +0200)]
Minor change to last commit

16 months agoDelete object crashed (missing NULL check)
Campbell Barton [Fri, 6 Apr 2018 16:15:39 +0000 (18:15 +0200)]
Delete object crashed (missing NULL check)

Error in recent removal of workspace.object_mode

16 months agoUI: Perf: Optimize F-curve handles drawing.
Clément Foucault [Fri, 6 Apr 2018 13:39:09 +0000 (15:39 +0200)]
UI: Perf: Optimize F-curve handles drawing.

50% less time in my test when all handles are selected.

16 months agoStyle: Remove duplicated struct declaration.
Clément Foucault [Fri, 6 Apr 2018 12:30:44 +0000 (14:30 +0200)]
Style: Remove duplicated struct declaration.

16 months agoUI: Perf: Use widget base batching
Clément Foucault [Fri, 6 Apr 2018 12:30:20 +0000 (14:30 +0200)]
UI: Perf: Use widget base batching

Overall 10% more performance on general UI drawing time.

This commit can introduce ordering problem on some elements.
In this case you need to flush the widget cache to ensure the element that
is going to be drawn is drawn on top of any widget base.

To flush the cache use UI_widgetbase_draw_cache_flush.

This is already done for BLF and Icons.

16 months agoUI: Perf: Add batching capability to widgets.
Clément Foucault [Fri, 6 Apr 2018 12:25:55 +0000 (14:25 +0200)]
UI: Perf: Add batching capability to widgets.

Similiar to how we batch Icons together. This is not enabled in this

16 months agoGPUShader: Add GPU_SHADER_2D_WIDGET_BASE_INST shader.
Clément Foucault [Fri, 6 Apr 2018 12:22:20 +0000 (14:22 +0200)]

This will let us draw multiple widget base at once.

16 months agoFix Collada: nullptr is a c++11 keyword. Changed to NULL
Gaia Clary [Fri, 6 Apr 2018 11:06:46 +0000 (13:06 +0200)]
Fix Collada: nullptr is a c++11 keyword. Changed to NULL

16 months agoFix Collada: Import of animations for objects with multiple materials
Gaia Clary [Fri, 6 Apr 2018 10:42:38 +0000 (12:42 +0200)]
Fix Collada: Import of animations for objects with multiple materials

When importing multiple materials for one object,
the imported material animation curves have all been
assigned to the first material in the object.

This fix also improves the console logging whenever the importer
finds a consistency problem with the imported animation data.

16 months agoCleanup: style, doxy headers
Campbell Barton [Fri, 6 Apr 2018 08:47:39 +0000 (10:47 +0200)]
Cleanup: style, doxy headers

16 months agoUI: Perf: Improve ui_draw_dropshadow.
Clément Foucault [Fri, 6 Apr 2018 08:09:23 +0000 (10:09 +0200)]
UI: Perf: Improve ui_draw_dropshadow.

Replace the 12 iterations of UI_draw_roundbox_4fv with only one batch.

This mean less overdraw and less drawcalls.

I had to hack the opacity falloff curve manually to get approximatly the
same result as previous technique. I'm sure with a bit more brain power
somebody could find the perfect function.

16 months agoUI: Perf: Modify UI_draw_roundbox to use GWN_batch API.
Clément Foucault [Thu, 5 Apr 2018 16:51:08 +0000 (18:51 +0200)]
UI: Perf: Modify UI_draw_roundbox to use GWN_batch API.

This commit also rename and move a few thing to clean things up.

Major improvment is using one drawcall instead of 8 for UI_draw_roundbox_aa.

16 months agoUI: Add accelerator keys to quit confirmation popup
Julian Eisel [Thu, 5 Apr 2018 17:12:28 +0000 (19:12 +0200)]
UI: Add accelerator keys to quit confirmation popup

16 months agoFix error where find-next missed None check
Campbell Barton [Thu, 5 Apr 2018 16:45:25 +0000 (18:45 +0200)]
Fix error where find-next missed None check

Thanks to @nBurn

16 months agoDepsgraph: Avoid build-time armature expanding
Sergey Sharybin [Thu, 5 Apr 2018 16:40:10 +0000 (18:40 +0200)]
Depsgraph: Avoid build-time armature expanding

With index-based pchan evaluation we don't need to go into
a mess of expanding armature at relation construction time.

16 months agoCleanup: use string macros to avoid duplicate args
Campbell Barton [Thu, 5 Apr 2018 16:39:23 +0000 (18:39 +0200)]
Cleanup: use string macros to avoid duplicate args

16 months agoBLI_string_utf8: macros that de-duplicate sizeof arg
Campbell Barton [Thu, 5 Apr 2018 14:56:21 +0000 (16:56 +0200)]
BLI_string_utf8: macros that de-duplicate sizeof arg

16 months agoMerge branch 'master' into blender2.8
Sergey Sharybin [Thu, 5 Apr 2018 16:25:05 +0000 (18:25 +0200)]
Merge branch 'master' into blender2.8

16 months agoRemove workspace object mode, reverts changes w/ 2.8
Campbell Barton [Thu, 5 Apr 2018 16:20:27 +0000 (18:20 +0200)]
Remove workspace object mode, reverts changes w/ 2.8

This caused too many problems syncing object modes
with multiple objects/windows/workspaces, see: D3130 for details.

16 months agoDepsgraph: Pull indirect dependencies via pchan constraints
Sergey Sharybin [Thu, 5 Apr 2018 16:03:36 +0000 (18:03 +0200)]
Depsgraph: Pull indirect dependencies via pchan constraints

Was missing ID looper for pchan constraint.

16 months agoMerge branch 'master' into blender2.8
Sybren A. Stüvel [Thu, 5 Apr 2018 14:58:41 +0000 (16:58 +0200)]
Merge branch 'master' into blender2.8

16 months agoLoad metadata from video files and expose via RNA
Sybren A. Stüvel [Thu, 5 Apr 2018 14:34:36 +0000 (16:34 +0200)]
Load metadata from video files and expose via RNA

The MovieSequence and MovieClip classes now have a metadata() function
that exposes the `IDProperty *` holding the video metadata.

Part of:

Reviewed by: @campbellbarton

16 months agoWrite the scene render frame range to image/video files
Sybren A. Stüvel [Thu, 5 Apr 2018 14:33:32 +0000 (16:33 +0200)]
Write the scene render frame range to image/video files

This is useful to create a mapping from the frame range in the video to
frame index in the blend file.

Part of:

Reviewed by: @campbellbarton

16 months agoWrite StampData metadata to video files
Sybren A. Stüvel [Thu, 5 Apr 2018 14:31:59 +0000 (16:31 +0200)]
Write StampData metadata to video files

This is currently only supported by FFmpeg (so not frameserver, AVI RAW,
or AVI JPEG), and only seems to work when using Matroska or Ogg Theora

Only metadata that doesn't change from frame to frame is written to
video files. This distinction is visible in the UI by looking at the
stamp checkbox tooltips (they either mention "image" or "image/video").

Part of:

Reviewed by: @campbellbarton

16 months agoIMB_metadata improvements
Sybren A. Stüvel [Thu, 5 Apr 2018 14:27:15 +0000 (16:27 +0200)]
IMB_metadata improvements

- Metadata handling is now separate from `ImBuf *`, allowing it to be
  used with a generic `IDProperty *`.
- Merged `IMB_metadata_add_field()` and `IMB_metadata_change_field()`
  into a more robust `IMB_metadata_set_field()`. This new function
  doesn't return any status (it now always succeeds, and the previously
  existing return value was never checked anyway).
- Removed `IMB_metadata_del_field()` as it was never actually used
- Use `IMB_metadata_ensure()` instead of having
  `IMB_metadata_set_field()` create the containing `IDProperty` for
- Deduplicated function declarations, moved `intern/IMB_metadata.h` out
  of `intern/`. Note that this does mean that we have some extra
  `#include "IMB_metadata.h"` lines now, as the metadata functions are
  no longer declared in `IMB_imbuf.h`.
- Deduplicated function declarations, all metadata-related declarations
  are now in imbuf/IMB_metadata.h.

Part of:

Reviewed by: @campbellbarton

16 months agoBLI_string: macros that de-duplicate sizeof arg
Campbell Barton [Thu, 5 Apr 2018 14:44:48 +0000 (16:44 +0200)]
BLI_string: macros that de-duplicate sizeof arg

16 months agoMerge branch 'master' into blender2.8
Campbell Barton [Thu, 5 Apr 2018 14:19:43 +0000 (16:19 +0200)]
Merge branch 'master' into blender2.8

16 months agoUI: Node Editor: Make nodelink arrow size and link width dpi dependant.
Clément Foucault [Thu, 5 Apr 2018 14:07:28 +0000 (16:07 +0200)]
UI: Node Editor: Make nodelink arrow size and link width dpi dependant.

16 months agoUI: Node Editor: Batch nodelinks together.
Clément Foucault [Thu, 5 Apr 2018 13:43:07 +0000 (15:43 +0200)]
UI: Node Editor: Batch nodelinks together.

This will do only one drawcall for every 256 nodelinks.

16 months agoUI: Node Editor: Port nodelink drawing to shader based drawing.
Clément Foucault [Thu, 5 Apr 2018 13:41:17 +0000 (15:41 +0200)]
UI: Node Editor: Port nodelink drawing to shader based drawing.

accelerate nodelink drawing.

This commit does not include the batching functionnality. So this should
not make a lot of difference.

16 months agoGWN: Add GWN_batch_uniform_2fv_array.
Clément Foucault [Thu, 5 Apr 2018 13:37:02 +0000 (15:37 +0200)]
GWN: Add GWN_batch_uniform_2fv_array.

16 months agoGPUBatch: Change preset managment system.
Clément Foucault [Thu, 5 Apr 2018 13:36:38 +0000 (15:36 +0200)]
GPUBatch: Change preset managment system.

Now use a list of preset batches with a function to add new ones to this

This removes the need of new functions all over the place to reset/exit.

16 months agoGPUShader: Add 2D Nodelink shader.
Clément Foucault [Thu, 5 Apr 2018 13:27:53 +0000 (15:27 +0200)]
GPUShader: Add 2D Nodelink shader.

Special shader to draw nodelinks for the node editor.

We only pass bezier points to the GPU and vertex position is handled inside
the vertex shader.
The arrow is also part of the batch to avoid separate drawcalls for it.

We still draw 2 pass one for shadow and one for the link color on top.

One variation to draw instances of theses links so that we only do one

16 months agoUndo: split text undo steps out of the data-block
Campbell Barton [Thu, 5 Apr 2018 13:22:33 +0000 (15:22 +0200)]
Undo: split text undo steps out of the data-block

This moves undo storage into a separate struct which is passed
in from the undo system.

16 months agoUndo System: return undo step from undo push init
Campbell Barton [Thu, 5 Apr 2018 12:11:51 +0000 (14:11 +0200)]
Undo System: return undo step from undo push init

Also improve logging

16 months agoLogging: use -1 log level to log all levels
Campbell Barton [Thu, 5 Apr 2018 11:55:04 +0000 (13:55 +0200)]
Logging: use -1 log level to log all levels

16 months agoED_undo: use logging
Campbell Barton [Thu, 5 Apr 2018 11:41:52 +0000 (13:41 +0200)]
ED_undo: use logging

16 months agoFix crash w/ empty text undo operations
Campbell Barton [Thu, 5 Apr 2018 07:59:21 +0000 (09:59 +0200)]
Fix crash w/ empty text undo operations

16 months agoFix Cycles motion blur and engine.frame_set() not working.
Brecht Van Lommel [Wed, 4 Apr 2018 11:51:39 +0000 (13:51 +0200)]
Fix Cycles motion blur and engine.frame_set() not working.

16 months agoDepsgraph: Fix/workaround crash with animation and drivers and CoW
Sergey Sharybin [Wed, 4 Apr 2018 15:28:23 +0000 (17:28 +0200)]
Depsgraph: Fix/workaround crash with animation and drivers and CoW

The issue was caused by component tag forcing CoW component to be run,
without actually flushing changes down the road from the CoW operation.

In a way, this is what we want: we do want CoW to run on changes, but
we don't want tiny change forcing full datablock update.

This commit makes it so order of updates is all correct, but the bigger
issue is still open: what parts of datablock CoW should be updating?

Now it's possible to open spring file and play around.

16 months agoGawain: Make removing batches more thread safe
Sergey Sharybin [Wed, 4 Apr 2018 15:24:57 +0000 (17:24 +0200)]
Gawain: Make removing batches more thread safe

The issue was mainly visible when copy-on-write was enabled. This was forcing
lots of meshes to be freed from multiple thread, causing all sorts of race
conditions in Gawain's VAO code.

OpenGL resources seems already to be doing deferred deletion, need to do the
same for CPU side arrays.

16 months agoMerge branch 'master' into blender2.8
Bastien Montagne [Wed, 4 Apr 2018 13:03:55 +0000 (15:03 +0200)]
Merge branch 'master' into blender2.8


16 months agoFix modifier freeing code re. ID refcounting.
Bastien Montagne [Wed, 4 Apr 2018 12:56:32 +0000 (14:56 +0200)]
Fix modifier freeing code re. ID refcounting.

Free code should not handle ID refcounting at all. This has to be done
at higher level, since in some case we want to free (temp) data that
actually did not refcount at all its IDs.

This change seems to be working OK, but as usual in that area, only
lots of testing in real-case situation will say whether there are some
hidden bugs or not.

16 months agoFix Cycles particle info node not working.
Brecht Van Lommel [Wed, 4 Apr 2018 11:16:56 +0000 (13:16 +0200)]
Fix Cycles particle info node not working.

16 months agoDepsgraph: Cleanup, reduce indentation level
Sergey Sharybin [Wed, 4 Apr 2018 11:02:28 +0000 (13:02 +0200)]
Depsgraph: Cleanup, reduce indentation level

16 months agoMerge branch 'master' into blender2.8
Sergey Sharybin [Wed, 4 Apr 2018 10:57:36 +0000 (12:57 +0200)]
Merge branch 'master' into blender2.8

16 months agoDepsgraph: Make sure textures used by modifiers are in the graph
Sergey Sharybin [Wed, 4 Apr 2018 10:55:38 +0000 (12:55 +0200)]
Depsgraph: Make sure textures used by modifiers are in the graph

16 months agoProper fix for T54337
Mai Lavelle [Wed, 4 Apr 2018 10:32:39 +0000 (06:32 -0400)]
Proper fix for T54337

Accidentally checked the wrong variable in fa01a1738bd1e3a6750ff.

16 months agoFix undefined workspace in UI script
Sergey Sharybin [Wed, 4 Apr 2018 10:33:00 +0000 (12:33 +0200)]
Fix undefined workspace in UI script

16 months agoFix Eevee crash with generated coordinates on non-objects.
Brecht Van Lommel [Wed, 4 Apr 2018 10:26:57 +0000 (12:26 +0200)]
Fix Eevee crash with generated coordinates on non-objects.

16 months agoCleanup: simplify fix for T53497, this part is not strictly needed.
Brecht Van Lommel [Wed, 4 Apr 2018 10:15:27 +0000 (12:15 +0200)]
Cleanup: simplify fix for T53497, this part is not strictly needed.

16 months agoMerge branch 'master' into blender2.8
Bastien Montagne [Wed, 4 Apr 2018 10:00:57 +0000 (12:00 +0200)]
Merge branch 'master' into blender2.8


16 months agoTweak ID->tag reset on file load (no visible change expected!).
Bastien Montagne [Wed, 4 Apr 2018 09:56:35 +0000 (11:56 +0200)]
Tweak ID->tag reset on file load (no visible change expected!).

Issue was, *some* IDs (like infamous nodetrees from materials etc.)
would not go through the 'main' read_libblock() func, so their tags were
never reset.

So now, we ensure direct_link_id() always clear the tags, and move
setting them in read_libblock() after the call to direct_link_id().

Needed for depsgraph, but general healthier fix actually.

16 months agoDepsgraph: Get pchan index from correct pose
Sergey Sharybin [Wed, 4 Apr 2018 09:55:06 +0000 (11:55 +0200)]
Depsgraph: Get pchan index from correct pose

This code should be replaced with evaluation-time ID block expansion,
but before that it will be helpful to get old design to work again.

16 months agoMerge branch 'master' into blender2.8
Sergey Sharybin [Wed, 4 Apr 2018 09:49:24 +0000 (11:49 +0200)]
Merge branch 'master' into blender2.8

16 months agoDepsgraph: Ensure root pchan is always found
Sergey Sharybin [Wed, 4 Apr 2018 09:49:01 +0000 (11:49 +0200)]
Depsgraph: Ensure root pchan is always found

16 months agoDepsgraph: Pass CoW version of object to armature update done
Sergey Sharybin [Wed, 4 Apr 2018 09:47:09 +0000 (11:47 +0200)]
Depsgraph: Pass CoW version of object to armature update done

16 months agoFix part of T53497: Eevee stuttering on macOS for the first few seconds of usage.
Brecht Van Lommel [Wed, 4 Apr 2018 09:13:13 +0000 (11:13 +0200)]
Fix part of T53497: Eevee stuttering on macOS for the first few seconds of usage.

The problem was that textures were assigned to different slots on different draw
calls, which caused shader specialization/patching by the driver. So the shader
would be compiled over and over until all possible assignments were used.

16 months agoFix missing hair in fishycat and everything else after particle recalc changes
Mai Lavelle [Sat, 31 Mar 2018 06:19:52 +0000 (02:19 -0400)]
Fix missing hair in fishycat and everything else after particle recalc changes

The cache was getting reset always, due to special case of flag being 0.

Bug introduced by: 44cd24a9cee9ffb14b5d26a622f

16 months agoMerge branch 'master' into blender2.8
Sergey Sharybin [Wed, 4 Apr 2018 08:36:39 +0000 (10:36 +0200)]
Merge branch 'master' into blender2.8

16 months agoDepsgraph: Assert that pchan index is always valid
Sergey Sharybin [Wed, 4 Apr 2018 08:35:32 +0000 (10:35 +0200)]
Depsgraph: Assert that pchan index is always valid

16 months agoMerge branch 'master' into blender2.8
Sergey Sharybin [Wed, 4 Apr 2018 08:16:38 +0000 (10:16 +0200)]
Merge branch 'master' into blender2.8

16 months agoDepsgraph: Add missing expansion od custom bone shapes
Sergey Sharybin [Wed, 4 Apr 2018 08:15:45 +0000 (10:15 +0200)]
Depsgraph: Add missing expansion od custom bone shapes

This was fixed in 2.8 branch but not in master.

16 months agoMerge branch 'master' into blender2.8
Sergey Sharybin [Wed, 4 Apr 2018 07:54:50 +0000 (09:54 +0200)]
Merge branch 'master' into blender2.8

16 months agoDepsgraph: Only bind ID-data and indices to depsgraph callbacks
Sergey Sharybin [Tue, 3 Apr 2018 15:23:43 +0000 (17:23 +0200)]
Depsgraph: Only bind ID-data and indices to depsgraph callbacks

This is a part of copy-on-write sanitization, to avoid all the checks
which were attempting to keep sub-data pointers intact.

Point is: ID pointers never change for CoW datablocks, but nested
data pointers might change when updating existing copy.

Solution: Only bind ID data pointers and index of sub-data.
This will make CoW datablock 7update function was easier in 2.8.

In master we were only using pose channel pointers in callbacks,
this is exactly what this commit addresses. A linear lookup array
is created on pose evaluation init and is thrown away afterwards.

One thing we might consider doing is to keep indexed array of
poses, similar to chanhash.

Reviewers: campbellbarton

Reviewed By: campbellbarton

Subscribers: dfelinto

Differential Revision:

16 months agoFix T54337: Cycles crash with simple subd object in debug build
Mai Lavelle [Wed, 4 Apr 2018 03:36:35 +0000 (23:36 -0400)]
Fix T54337: Cycles crash with simple subd object in debug build

16 months agoFix T54400: Some GCN 1 cards available to select for use with Cycles
Mai Lavelle [Wed, 4 Apr 2018 03:09:38 +0000 (23:09 -0400)]
Fix T54400: Some GCN 1 cards available to select for use with Cycles

Hainan was missing from the list of GCN 1 cards.

16 months agoBMesh: remove redundant loop in select-next-active
Campbell Barton [Tue, 3 Apr 2018 16:32:55 +0000 (18:32 +0200)]
BMesh: remove redundant loop in select-next-active

Thanks to @nBurn for spotting

16 months agoMissed in last merge
Campbell Barton [Tue, 3 Apr 2018 16:22:52 +0000 (18:22 +0200)]
Missed in last merge

16 months agoMissed in last merge
Campbell Barton [Tue, 3 Apr 2018 16:22:05 +0000 (18:22 +0200)]
Missed in last merge

16 months agoMerge branch 'master' into blender2.8
Campbell Barton [Tue, 3 Apr 2018 16:12:39 +0000 (18:12 +0200)]
Merge branch 'master' into blender2.8

16 months agoUndo: make id-map use binary search to keep sorted
Campbell Barton [Tue, 3 Apr 2018 16:07:51 +0000 (18:07 +0200)]
Undo: make id-map use binary search to keep sorted

16 months agoFix own error w/ undo ID lookup
Campbell Barton [Tue, 3 Apr 2018 15:58:37 +0000 (17:58 +0200)]
Fix own error w/ undo ID lookup

Was testing with small number of items, so this went unnoticed.

16 months agoDraw Manager: Improve description of `draw_frustum_boundbox_calc` variables
Germano [Tue, 3 Apr 2018 15:18:56 +0000 (12:18 -0300)]
Draw Manager: Improve description of `draw_frustum_boundbox_calc` variables

16 months agoCleanup: rename BMesh count_ex -> count_at_most
Campbell Barton [Tue, 3 Apr 2018 15:06:36 +0000 (17:06 +0200)]
Cleanup: rename BMesh count_ex -> count_at_most

16 months agoCleanup: rename list count_ex -> count_at_most
Campbell Barton [Tue, 3 Apr 2018 15:05:21 +0000 (17:05 +0200)]
Cleanup: rename list count_ex -> count_at_most

16 months agoUndo: use with_prev verisons of id-map lookups
Campbell Barton [Tue, 3 Apr 2018 15:03:13 +0000 (17:03 +0200)]
Undo: use with_prev verisons of id-map lookups

16 months agoUndo: use general id-map for image undo lookups.
Campbell Barton [Tue, 3 Apr 2018 14:47:25 +0000 (16:47 +0200)]
Undo: use general id-map for image undo lookups.

Was doing own name based lookups to keep compatible w/ global undo.

16 months agoUndo System: id-map avoid duplicate add/lookup
Campbell Barton [Tue, 3 Apr 2018 14:46:11 +0000 (16:46 +0200)]
Undo System: id-map avoid duplicate add/lookup

Add versions of add/lookup that check the previous item.

16 months agoFix mistake logging w/ undo
Campbell Barton [Tue, 3 Apr 2018 14:45:05 +0000 (16:45 +0200)]
Fix mistake logging w/ undo

16 months agoMerge branch 'master' into blender2.8
Bastien Montagne [Tue, 3 Apr 2018 14:13:13 +0000 (16:13 +0200)]
Merge branch 'master' into blender2.8

16 months agoFix T54477: Broken utf8 strings in old .blend files
Bastien Montagne [Tue, 3 Apr 2018 13:50:49 +0000 (15:50 +0200)]
Fix T54477: Broken utf8 strings in old .blend files

Back in the days (2.4x and before), it was rather easy to get some
invalid utf-8 strings in Blender. This is totally breaking modern code,
so this commit adds a simple 'check & fix strings' operator, available
from the main File menu.

16 months agoFix (unreported) crash when accessing some
Bastien Montagne [Tue, 3 Apr 2018 12:30:36 +0000 (14:30 +0200)]
Fix (unreported) crash when accessing some

E.g. typing `[8].<tab>` in console would hard-crash
trying to dereference NULL pointer. Was a missing check in rna_Property_tags_itemf().

16 months agoCleanup: remove unused mtexpoly array
Campbell Barton [Tue, 3 Apr 2018 12:30:12 +0000 (14:30 +0200)]
Cleanup: remove unused mtexpoly array

Not needed in 2.8

16 months agoMerge branch 'master' into blender2.8
Campbell Barton [Tue, 3 Apr 2018 12:19:51 +0000 (14:19 +0200)]
Merge branch 'master' into blender2.8

16 months agoFix duplicate Cycles panels in properties editor.
Brecht Van Lommel [Tue, 3 Apr 2018 12:04:59 +0000 (14:04 +0200)]
Fix duplicate Cycles panels in properties editor.

16 months agoFix crash on startup on macOS, after recent framebuffer refactoring.
Brecht Van Lommel [Tue, 3 Apr 2018 07:35:22 +0000 (09:35 +0200)]
Fix crash on startup on macOS, after recent framebuffer refactoring.

16 months agoUndo: remove particle undo push
Campbell Barton [Tue, 3 Apr 2018 06:57:01 +0000 (08:57 +0200)]
Undo: remove particle undo push

Was only called on copy particle system
which is already doing an undo push.

16 months agoCleanup: editor BKE_main includes
Campbell Barton [Tue, 3 Apr 2018 06:42:12 +0000 (08:42 +0200)]
Cleanup: editor BKE_main includes

16 months agoUndo: replace global access w/ ED_undo_stack_get
Campbell Barton [Tue, 3 Apr 2018 06:35:42 +0000 (08:35 +0200)]
Undo: replace global access w/ ED_undo_stack_get

While I'd like to avoid using this too much since the operator
system should handle.
It's less trouble than accessing it inline each time.