Commit Graph

64559 Commits

Author SHA1 Message Date
Sergey Sharybin
fe467735e5 Subdiv: CCG, remove redundant call 2018-09-19 09:48:07 +02:00
Campbell Barton
574484006b EditMesh: show the spin arc as a thin ribbon
Closer to the design from T54661
2018-09-19 17:52:13 +10:00
Campbell Barton
ba38206608 Gizmo: tweaks to dial drawing
- Add Arc-Inner-Factor, to increase the inner arc radius from 0
  (show as a disk).
- When showing an angle value, show the angle-end line thicker
  (since thats whats being adjusted).
- Remove offset used by arc drawing which caused aliasing artifacts.
2018-09-19 17:47:15 +10:00
Campbell Barton
3b4782dc24 Gizmo: exclude arc from selection
Also disable polygon smooth before drawing arc.
2018-09-19 16:47:07 +10:00
Campbell Barton
6c7ad56f00 EditMesh: orient spin arc to follow the cursor 2018-09-19 16:41:56 +10:00
Campbell Barton
40ac38f18d Gizmo: remove matrix rotation for the dial gizmo
This makes it impossible to rotate the gizmo using the matrix Y axis.

Testing without this and I can't find any cases it breaks.
2018-09-19 16:22:01 +10:00
Campbell Barton
414e5fe068 Correct polygon_smooth being left enabled 2018-09-19 15:32:28 +10:00
Campbell Barton
2065669716 Cleanup: comments 2018-09-19 13:41:52 +10:00
Campbell Barton
88cd23914f Gizmo: dial3d option to show the final angle
Was showing modal-delta-angle, which isn't useful for the spin tool.
2018-09-19 13:35:15 +10:00
mano-wii
3d3531acb0 Fix unreported: Undo of texts pasted in the Text Editor misses one character.
Caused by commit rB28c34ae7e2d6
Unlike `strncpy`, `BLI_strncpy` ensures the last character is '\0'.
2018-09-18 23:11:59 -03:00
Campbell Barton
4597589503 Cleanup: replace pointer/int casts with macros 2018-09-19 12:22:48 +10:00
Campbell Barton
f35e9f047a Merge branch 'master' into blender2.8 2018-09-19 12:14:36 +10:00
Campbell Barton
bb3ec3ebaf BLI_utildefines: rename pointer conversion macros
Terms get/set don't make much sense when casting values.

Name macros so the conversion is obvious,
use common prefix for easier completion.

- GET_INT_FROM_POINTER  -> POINTER_AS_INT
- SET_INT_IN_POINTER    -> POINTER_FROM_INT
- GET_UINT_FROM_POINTER -> POINTER_AS_UINT
- SET_UINT_IN_POINTER   -> POINTER_FROM_UINT
2018-09-19 12:12:21 +10:00
Campbell Barton
0322e854da Cleanup: missed when using doxy groups 2018-09-19 11:56:52 +10:00
Dalai Felinto
c0fb90ff9a Multi-Objects: Initial select similar support
Note: I had to add an epsilon on top of the threshould for SIMVERT_NORMAL.
Otherwise I was getting differences such as 0.000000something when comparing
supposed-to-be-identical normals.

The way I see it, the Threshold option is a user feature, where users can
control more or less what they want selected. While the epsilon is a
non-negotiable requirement for our float comparison here.

This includes support for:
* SIMVERT_NORMAL
* SIMVERT_FACE
* SIMVERT_EDGE

Not included and currently not supported/disabled:
* SIMVERT_VGROUP
* SIMEDGE_*
* SIMFACE_*

While we are working on this, we prevent users from using the non-ported modes.
Note: the bmo_similar.c file is still around, to be removed in the near future.

Everyone: Please fell free to jump in and help tackling the missing modes.

For details on the implementation discussion:
https://developer.blender.org/D3674
2018-09-18 22:42:07 -03:00
Dalai Felinto
a1acff5459 Move select similar to its own file 2018-09-18 22:42:07 -03:00
Campbell Barton
1ed7c85f54 Cleanup: replace comment headings w/ doxy groups
Also minor changes:

- Remove unused headers.
- rename SimpleExprParseState -> ExprParseState
- rename max_ops -> ops_count_alloc

  Was misleading since maximums are often limits which can't be exceeded.
2018-09-19 11:53:28 +10:00
Campbell Barton
d44c8ce1cb Cleanup: BLI_expr_pylike argument ordering
- Order array length after the array.
- Put return argument last.
2018-09-19 11:40:40 +10:00
Campbell Barton
3aea5695bb Cleanup: rename BLI_simple_expr -> BLI_expr_pylike_eval
Simple isn't a good prefix for library names since
lots of unrelated modules could be called 'simple'.

Include 'py' in module name since this is a subset of Python,
one of the main motivations for this is to be Python like/compatible.
2018-09-19 11:08:04 +10:00
Campbell Barton
345c348262 Cleanup: style 2018-09-19 10:29:57 +10:00
Campbell Barton
69aac13524 Correct invalid enum default 2018-09-19 10:14:37 +10:00
Campbell Barton
a30f32891f Cleanup: remove dummy tooltips 2018-09-19 09:52:33 +10:00
Campbell Barton
900b7127eb UV Snap: minor uv-nearest optimizations
- Pass in the snap distance
  (to avoid comparisons in the multi-object version).
- Loop directly over BMLoop's (without using the iterator).
- Use squared distance instead of manhattan.
2018-09-19 09:54:36 +10:00
Antonioya
e6766287d6 Fix T56827: Crash when enable onion skin in multiwindow
The problem was the cache was not set as dirty if one of the window had the overlay disabled.
2018-09-18 23:18:48 +02:00
Antonioya
ad50671937 GP: Remove vertex transformation when mode is not EDIT mode 2018-09-18 22:36:59 +02:00
Clément Foucault
93780411e9 LookDev: Use theme background instead of world color
This is much less confusing than relying on an hidden parameter (the world
color) that you can only see if you disable the world node tree.
2018-09-18 22:18:49 +02:00
Clément Foucault
629c6a8769 Eevee: Rename "Trace Quality" into "Trace Precision"
The thing is that the quality is something a bit subjective regarding this
option value.

A more precise trace will have more noise so quality is also diminished in
a way. I believe that using "Precision" is more correct than "Quality" in
this case.
2018-09-18 21:39:53 +02:00
Clément Foucault
5aa3e33565 LookDev: Use black background color if world is not present 2018-09-18 21:39:53 +02:00
Clément Foucault
32e6d5cd6f StudioLight: Fix crash when closing blender
The studiolight was being free after the window manager and was attempting
to stop the job again.
2018-09-18 21:39:53 +02:00
Alan
a1a58c8d0a Fix T54685: EditMesh UV's transform snapping only checks active object
Reviewers: dfelinto
https://developer.blender.org/D3653
2018-09-18 16:26:22 -03:00
Dalai Felinto
8fc6609cc0 UV_OT_align: Cleanup (use enum instead of chars for modes enum
Also tested the straighten option and it is working-ish.

That said, I think straighten should take all the meshes vertices to determine
the line you want to use as reference. However we would need a different way to
determine the first and last uvs to use as reference for the line.
2018-09-18 16:03:36 -03:00
Brecht Van Lommel
b49abbec5f Splash: add first time setup and templates to splash screen.
The first time setup screen only has the interaction preset currently, some
more work is needed to be able to set e.g. the language or compute device
here as in the mockups.

The splash screen stayed the same for now, to make room for the templates
most of the links are now in the Help menu. If there are no recent files yet
the links still show.

The splash screen buttons implementation was fully moved to Python, in the
WM_MT_splash menu.
2018-09-18 19:38:20 +02:00
Brecht Van Lommel
1c815e0826 Workspaces: move 2D Animation, VFX and Video workspaces into own templates.
These can now be acessed from the File > New, Ctrl+N, or the splash screen.
Since these are application templates, users can save a separate startup.blend
for each. User preferences are shared between these templates though.

This also fixes some issues in the default startup.blend (triangulated cube..).

Differential Revision: https://developer.blender.org/D3690
2018-09-18 19:38:20 +02:00
Brecht Van Lommel
84f21c170d Application Templates: make templates more prominent in the UI.
The goal here is to make app templates usable for default templates
that we can ship with Blender. These only have a custom startup.blend
currently and so are quite limited compared to app templates that fully
customize Blender.

But still it seems like the same kind of concept where we should be
sharing the code and UI. It is useful to be able to save a startup.blend
per template, and I can imagine some scripting being useful in the future
as well.

Changes made:

* File > New and Ctrl+N now list the templates, replacing a separate
  Application Templates menu that was not as easy to discover.
* File menu now shows name of active template above Save Startup File
  and Load Factory Settings to indicate these are saved/loaded per
  template.
* The "Default" template was renamed to "General".
* Workspaces can now be added from any of the template startup.blend
  files when clicking the (+) button in the topbar.

* User preferences are now fully shared between app templates, unless
  the template includes a custom userpref.blend. I think this will be
  useful in general, not all app templates need their own keymaps for
  example.
* Previously Save User Preferences would save the current app template
  and then Blender would start using that template by default. I've
  disabled this, to me it seems it was unintentional, or at least not
  clear at all that saving user preferences also makes the current

Differential Revision: https://developer.blender.org/D3690
2018-09-18 19:38:20 +02:00
Brecht Van Lommel
b08d9f036e UI: don't show Redo Unsupported, just hide buttons in that case. 2018-09-18 19:38:20 +02:00
Sergey Sharybin
ebcbb50420 Subdiv: CCG, implement stitching of given faces
Will speed up (or rather bring speed back to what it is supposed to be)
for brushes like smooth.
2018-09-18 17:46:00 +02:00
Sergey Sharybin
7016f11d92 Subdiv: CCG, make inner face grids averaging more reusable 2018-09-18 17:35:59 +02:00
Sergey Sharybin
9bf3e0299b Subdiv: CCG, initial grids stitching implementation
Currently is only working on an "inner" grid boundaries.
Need to implement averaging across face edges.
2018-09-18 17:09:08 +02:00
Sergey Sharybin
41c039d6e9 Subdiv: CCG, evaluate final position for multires
This makes it so coordinates and normals for CCG are calculated
with mutires displacement taken into account. This solves issues
with multires displacement being lost when entering sculpt mode.

The missing part is averaging of normals along grid boundaries.
But even then sculpting shows decent results.

The plan to solve that would be to introduce function to stitch
grids, which can also be used by Smooth brush which requires
this.
2018-09-18 14:48:27 +02:00
Bastien Montagne
b6ff37ee67 Merge branch 'master' into blender2.8 2018-09-18 14:31:44 +02:00
Bastien Montagne
06fd94140c Fix T56833: "zoom to cursor" in Clip editor not handling aspect ratio.
Trivial fix, just using same code as in Image editor...
2018-09-18 14:31:05 +02:00
Clément Foucault
eafec6d4f7 GPUShader: Manually validate sampler count
This happens on NVidia GPUs, using more textures than the maximum allowed
by the gl will NOT trigger a linking issue (maybe because of bindless
texture implementation?).

So in this case we manually count the number of samplers per shader stage
and compare it against the GL limit. We discard the shader if the sampler
count is too high. This shows the user something is wrong with the shader.
2018-09-18 14:22:42 +02:00
Alexander Gavrilov
bf2a54b058 Support evaluating simple driver expressions without Python interpreter.
Recently @sergey found that hard-coding evaluation of certain very
common driver expressions without calling the Python interpreter
produces a 30-40% performance improvement. Since hard-coding is
obviously not suitable for production, I implemented a proper
parser and interpreter for simple arithmetic expressions in C.

The evaluator supports +, -, *, /, (), ==, !=, <, <=, >, >=,
and, or, not, ternary if; driver variables, frame, pi, True, False,
and a subset of standard math functions that seem most useful.

Booleans are represented as numbers, since within the supported
operation set it seems to be impossible to distinguish True/False
from 1.0/0.0. Boolean operations properly implement lazy evaluation
with jumps, and comparisons support chaining like 'a < b < c...'.

Expressions are parsed into a very simple stack machine program
that can then be safely evaluated in multiple threads.

Reviewers: sergey, campbellbarton

Differential Revision: https://developer.blender.org/D3698
2018-09-18 13:25:28 +03:00
Brecht Van Lommel
f3b7e99c04 UI: use monochrome lock icons next to decorators. 2018-09-18 12:11:06 +02:00
Sergey Sharybin
5aa5066c3b Merge branch 'master' into blender2.8 2018-09-18 11:49:08 +02:00
Sergey Sharybin
d04eb330e8 Close OpenEXR thread pool on exit
This partially solves ASAN report about unfreed memory. There is still
something in the report, need to have a closer look with debug version
of OpenEXE library.
2018-09-18 11:10:49 +02:00
Bastien Montagne
eadf0f3d70 Fix T56831: Crash - Transfer Weight & changing it's properties.
Usual Undo/Redo case with operators needing evaluated data...
2018-09-18 09:42:52 +02:00
Campbell Barton
5ae531d813 Cleanup: spelling 2018-09-18 16:35:13 +10:00
Campbell Barton
d421adb83e Gizmo: de-duplicate poll logic
Checking the active tool or operator was a common way to check
if the gizmo was still in use.
2018-09-18 16:15:06 +10:00
Campbell Barton
0a3b66cfb5 Gizmo: dial3d option to get angles w/o wrapping
Needed for spinning multiple revolutions.
2018-09-18 14:58:20 +10:00