Commit Graph

4946 Commits

Author SHA1 Message Date
Campbell Barton
a8fd3df905 Cleanup: spelling 2020-09-15 10:23:41 +10:00
Bastien Montagne
ec6d32b238 Fix T78392: [2.83.5, 2.90, 2.91] Crash on undo/ redo after changing modes.
During undo/redo read code is expected to clear the `OB_MODE_EDIT`
bitflag of `Object.mode`, for some reasons.

This was not done anymore for re-used Objects, we need to add a special
handling case for that too.

Should be backported to 2.90 and 2.83 (will probably not be straight
forward for the latter).
2020-09-14 14:59:29 +02:00
Howard Trickey
ab7608af1b Apply patch D8816, from Zachary(AFWS) for collection boolean operand.
Also added code so that exact solver does the whole collection at once.
This patch allows users to use a collection (as an alternative to Object)
for the boolean modifier operand, and therefore get rid of a long modifier stack.
2020-09-13 16:57:27 -04:00
Campbell Barton
b52aeaadfb Cleanup: spelling, update function name in comments 2020-09-13 15:00:52 +10:00
Jacques Lucke
08002eb865 Cleanup: remove unused includes 2020-09-11 12:08:12 +02:00
Jacques Lucke
c27d00cde0 Refactor: move CacheFile .blend I/O to IDTypeInfo callbacks 2020-09-11 11:57:54 +02:00
Jacques Lucke
f8ef7f045c Refactor: move Sound .blend I/O to IDTypeInfo callbacks 2020-09-11 11:52:37 +02:00
Jacques Lucke
218e9e76a8 Refactor: move Simulation .blend I/O to IDTypeInfo callbacks 2020-09-11 11:46:26 +02:00
Jacques Lucke
12693b807e Refactor: move Volume .blend I/O to IDTypeInfo callbacks 2020-09-11 11:39:06 +02:00
Jacques Lucke
ff4578a6e7 Refactor: move PointCloud .blend I/O to IDTypeInfo callbacks 2020-09-11 11:20:57 +02:00
Jacques Lucke
1b6dd42803 Refactor: move Hair .blend I/O to IDTypeInfo callbacks 2020-09-11 11:14:17 +02:00
Jacques Lucke
12f33daad7 Refactor: move GPencil .blend I/O to IDTypeInfo callbacks 2020-09-11 11:06:15 +02:00
Jacques Lucke
16fecdf994 Refactor: move Texture .blend I/O to IDTypeInfo callbacks 2020-09-11 10:35:36 +02:00
Jeroen Bakker
d6525e8d13 Use DrawManager for Image/UV Editor
This project moves the current UV/Image editor drawing to the draw manager.
Why would we do this:

**Performance**:

Current implementation would draw each texel per time. Multiple texels could be
drawn per pixel what would overwrite the previous result. You can notice this
when working with large textures. Repeat image drawing made this visible by
drawing for a small period of time and stop drawing the rest. Now the rendering
is fast and all repeated images are drawn.

**Alpha drawing**:

Current implementation would draw directly in display space. Giving incorrect
results when displaying alpha transparent images.
This addresses {T52680}, {T74709}, {T79518}
The image editor now can show emission only colors. See {D8234} for
examples.

**Current Limitations**

Using images that are larger than supported by your GPU are resized (eg larger
than 16000x16000 are resized to 8k). This leaves some blurring artifacts. It is
a low priority to add support back of displaying individual pixels of huge
images. There is a design task {T80113} with more detail.

**Implementation overview**
Introduced an Image Engine in the draw module. this engine is responsible for
drawing the texture in the main area of the UV/Image editor. The overlay engine
has a edit_uv overlay which is responsible to draw the UV's, shadows and
overlays specifically for the UV Image editor. The background + checker pattern
is drawn by the overlay_background.

The patch will allow us to share overlays between the 3d viewport and UV/Image
editor more easily. In most cases we just need to switch the `pos` with the `u`
attribute in the vertex shader.

The project can be activated in the user preferences as experimental features.
In a later commit this will be reversed.

Reviewed By: Clément Foucault

Differential Revision: https://developer.blender.org/D8234
2020-09-11 08:08:46 +02:00
Campbell Barton
d023c4104c Cleanup: spelling, correct comments 2020-09-11 14:57:27 +10:00
Jacques Lucke
11df9cb9fb Refactor: move Key .blend I/O to IDTypeInfo callbacks 2020-09-10 18:01:55 +02:00
Jacques Lucke
e628e8821e Refactor: move LightProbe .blend I/O to IDTypeInfo callbacks 2020-09-10 17:47:04 +02:00
Jacques Lucke
133b7c34dd Refactor: move Armature .blend I/O to IDTypeInfo callbacks 2020-09-10 17:41:04 +02:00
Jacques Lucke
0c7e77d416 Refactor: move Speaker .blend I/O to IDTypeInfo callbacks 2020-09-10 17:31:18 +02:00
Jacques Lucke
be5cbbabce Refactor: move Mask .blend I/O to IDTypeInfo callbacks 2020-09-10 17:22:35 +02:00
Jacques Lucke
60e102c0a0 Refactor: move World .blend I/O to IDTypeInfo callbacks 2020-09-10 17:06:49 +02:00
Nathan Craddock
2110af20f5 Outliner: Move mode toggling to left column
Add a column of icons in the left gutter of the outliner for controlling
the interaction modes of objects. When an object is in a mode other than
object mode, the mode icon will draw to the left of that object. Any
other objects that are valid to be added or swapped into the mode are
drawn with a dot to the left of the object.

Clicking the dot to the left of an object will swap that object with the
current active object in the interaction mode. For edit and pose modes,
ctrl clicking the dot will add that object to the current mode.

Clicking the mode icon next to the active object removes it and all
other objects from the current mode.

The behavior is nearly identical to the previous edit/pose mode toggling
by selecting the mesh and armature datablocks, with additional support
for all interaction modes.

Currently two undo steps are pushed to prevent an assert.

Part of T77408

Manifest Task: https://developer.blender.org/T68498

Differential Revision: https://developer.blender.org/D8641
2020-09-10 09:01:27 -06:00
Jacques Lucke
0649e63716 Refactor: move Camera .blend I/O to IDTypeInfo callbacks 2020-09-10 16:58:23 +02:00
Jacques Lucke
8a65afac1e Refactor: move Curve .blend I/O to IDTypeInfo callbacks 2020-09-10 16:47:12 +02:00
Jacques Lucke
a82bb8f5f0 clang-format 2020-09-10 16:37:52 +02:00
Jacques Lucke
89b570570a Refactor: move MetaBall .blend I/O to IDTypeInfo callbacks 2020-09-10 16:37:11 +02:00
Jacques Lucke
ea1094bdb0 Refactor: move Material .blend I/O to IDTypeInfo callbacks 2020-09-10 16:23:53 +02:00
Jacques Lucke
94c533ac35 Refactor: move Light .blend I/O to IDTypeInfo callbacks 2020-09-10 16:13:18 +02:00
Jacques Lucke
ede094f9b2 Refactor: move Image .blend I/O to IDTypeInfo callbacks 2020-09-10 15:59:08 +02:00
Jacques Lucke
7f4799a189 Refactor: move Brush .blend I/O to IDTypeInfo callbacks 2020-09-10 15:50:50 +02:00
Jacques Lucke
8e4cc07547 Refactor: move PaintCurve/Palette .blend I/O to IDTypeInfo callbacks 2020-09-10 15:40:32 +02:00
Jacques Lucke
eecd3705d7 Refactor: move MovieClip .blend I/O to IDTypeInfo callbacks 2020-09-10 14:53:29 +02:00
Jacques Lucke
3679f899fb Refactor: move VFont .blend I/O to IDTypeInfo callbacks 2020-09-10 14:42:54 +02:00
Jacques Lucke
fbc12e6cc5 Cleanup: extract functions for PackedFile .blend I/O 2020-09-10 14:35:51 +02:00
Jacques Lucke
b8bcbb2cf2 Refactor: move Text .blend I/O to IDTypeInfo callbacks 2020-09-10 13:57:08 +02:00
Jacques Lucke
fcf6177b0d Refactor: move LineStyle .blend I/O to IDTypeInfo callbacks 2020-09-10 13:50:03 +02:00
Jacques Lucke
d11651fff9 Refactor: move bNodeTree .blend I/O to IDTypeInfo callbacks 2020-09-10 13:33:29 +02:00
Jacques Lucke
b443f9b54c Refactor: move keyingset .blend I/O to blenkernel
Ref T76372
2020-09-10 11:17:51 +02:00
Jacques Lucke
2cd41f49cf Refactor: move Action .blend I/O to IDTypeInfo callbacks 2020-09-10 11:02:42 +02:00
Jacques Lucke
538817d9a8 Refactor: move preview image .blend I/O to blenkernel
Ref T76372
2020-09-10 10:33:21 +02:00
Brecht Van Lommel
a1397a3cc6 Geometry: use generic attributes for Hair and Point Clouds
Instead of custom data layer with special types, using general Vector and Float
attributes.

Ref T76659

Differential Revision: https://developer.blender.org/D8635
2020-09-09 17:01:17 +02:00
Hans Goudey
842f52d418 Cleanup: Rename public "bUnit" functions
This commit renames the functions in "BKE_unit.h` to be consistent
with the naming in the rest of blenkernel.

bUnit_AsString -> BKE_unit_value_as_string_adaptive
bUnit_AsString2 -> BKE_unit_value_as_string
bUnit_ReplaceString -> BKE_unit_replace_string
bUnit_ApplyPreferredUnit -> BKE_unit_apply_preferred_unit
bUnit_ToUnitAltName -> BKE_unit_name_to_alt
bUnit_ClosestScalar -> BKE_unit_closest_scalar
bUnit_BaseScalar -> BKE_unit_base_scalar
bUnit_IsValid -> BKE_unit_is_valid
bUnit_GetSystem -> BKE_unit_system_get
bUnit_GetBaseUnit -> BKE_unit_base_get
bUnit_GetBaseUnitOfType -> BKE_unit_base_of_type_get
bUnit_GetName -> BKE_unit_name_get
bUnit_GetNameDisplay -> BKE_unit_display_name_get
bUnit_GetIdentifier -> BKE_unit_identifier_get
bUnit_GetScaler -> BKE_unit_scalar_get
bUnit_IsSuppressed -> BKE_unit_is_suppressed

Differential Revision: https://developer.blender.org/D8828
2020-09-09 08:41:15 -05:00
Campbell Barton
4ccd5bf5c6 Fix T80626: Crash adding custom-data layers after reloading the file
Regression in a48d78ce07 which caused the meshes CustomData
to be written before it's layer values were updated for writing.
2020-09-09 20:38:33 +10:00
Campbell Barton
3e8b1550dc Fix "Select" option being ignored when linking collection instances
Also check 'BASE_SELECTABLE' before selecting
which was only done for collections.
2020-09-09 14:51:28 +10:00
Campbell Barton
59653a450e Cleanup: rename group to collection for internal instancing flag
Also update old comment.
2020-09-08 16:49:17 +10:00
Campbell Barton
d20b08281e Cleanup: naming for library link enum
Use 'e' prefix, update comments.
2020-09-08 16:41:55 +10:00
Campbell Barton
748deced1c Link/Append: support instancing object data
This patch supports instantiating object data on append/link,
reported as a bug T58304.

This is an option, available when linking/appending,
similar to the existing "Instance Collections" option.

Reviewed by @sybren

Ref D8792
2020-09-08 16:14:39 +10:00
Campbell Barton
e467c54d58 Refactor: move library linking arguments into a parameter struct
Move arguments to BLO_library_link_{begin/named_part/end} into
a single parameter struct, to ensure arguments always match.

This allows is to skip tagging ID's LIB_TAG_DOIT when it's not needed,
previously it was always cleared just in case it was needed.

This also makes it possible to remove BLO_library_link_named_part_ex
which was only used when tagging was needed.
2020-09-08 16:14:33 +10:00
Howard Trickey
de21ab418d Add a Self option to the Exact boolean modifier. Fixes T52425.
With this option, self-intersections in either or both operands
will be handled properly (if both sides are piecewise winding
number constant, and maybe some other cases too).
In the Boolean tool, this flag was there already but the code
forced a unary operation in that case; this commit corrects it
to make a binary operation. This flag makes the code slower, which
is why it is an option and not an always-on thing.
2020-09-07 14:29:12 -04:00
Campbell Barton
0e5aa49e1d Cleanup: include missing header files in CMake 2020-09-07 23:10:17 +10:00