Commit Graph

4318 Commits

Author SHA1 Message Date
2c545c0409 BLI: Add comment about to orthogonalize_m3/4 2018-10-28 21:48:22 +01:00
a30c9f710a Partial revert '#if 0' cleanup
Partially revert 41216d5ad4

Some of this code had comments to be left as is for readability,
or comment the code should be kept.
Other functions were only for debugging.
2018-10-19 09:18:22 +11:00
41216d5ad4 Cleanup: Remove more #if 0 blocks
Continuation of https://developer.blender.org/D3802

Reviewers: brecht

Differential Revision: https://developer.blender.org/D3808
2018-10-18 15:43:06 +02:00
01745051de DRW: Add DRW_shgroup_create_sub to create children shgroup
This makes is easy to create nested drawcalls that will inherit all the
parents properties. This is usefull if only a few uniforms changes for that
drawcall.
2018-10-12 16:38:55 +02:00
f5e51ded09 Merge branch 'master' into blender2.8 2018-10-11 09:38:17 +11:00
b618c185cb Fix incorrect strncpy use
Didn't ensure null terminated.
2018-10-11 09:36:43 +11:00
a5101de6a9 BLI: Add mul_v2_v2v2 function 2018-10-01 15:14:46 +02:00
d6ca699d7e BLI_math: add isect_seg_seg_v3 2018-10-01 13:52:00 +10:00
9df476ecaa BLI_math: add isect_seg_seg_v3 function and use in the cloth collision algorith.
In my tests a 4% improvement in performance was achieved by simulating a square cloth over the cube.
2018-10-01 00:16:44 -03:00
2ca67de960 A new function to move list at the beginning of another list
This is a change of the BLI_movelisttolist but in reverse order.
2018-09-29 16:45:33 +02:00
28324143c4 UI: draw mono icons with button type text color, instead of area text color. 2018-09-27 18:39:50 +02:00
0666ece2e2 Cloth: Collision improvements
This commit includes several performance, stability, and reliability
improvements to cloth collisions.

Most notably:
* The implementation of a new self-collisions system.
* Multithreading of collision detection.
* Implementation of single sided collisions and normal overrides.
* Replacement of the `plNearestPoints` function from Bullet with a
dedicated solution.

Further, this also includes several bug fixes, and algorithmic
improvements.

Reviewed By: brecht

Differential Revision: http://developer.blender.org/D3712
2018-09-26 17:49:40 +02:00
bb8023ff7f Fix misleading field naming.
This is not any kind of length, it is the number of true values.
2018-09-26 09:05:13 +03:00
87b628db2a Cleanup: style 2018-09-20 07:15:45 +10:00
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
f35e9f047a Merge branch 'master' into blender2.8 2018-09-19 12:14:36 +10:00
0322e854da Cleanup: missed when using doxy groups 2018-09-19 11:56:52 +10:00
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
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
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
345c348262 Cleanup: style 2018-09-19 10:29:57 +10:00
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
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
246aed8847 Merge branch 'master' into blender2.8 2018-09-05 14:48:18 +10:00
1be265afc0 Cleanup: style 2018-09-05 14:46:54 +10:00
1e35f4da72 Merge branch 'master' into blender2.8 2018-09-05 14:34:31 +10:00
c13b2a2504 Fix T54152: --env-system-scripts fails on win32 2018-09-05 14:32:19 +10:00
Dalai Felinto
312af01fb4 3D Text: improvements to vertical alignment
They way Blender handles vertical alignment is very buggy:

- Top-Base: It works perfectly.

- Bottom: It is actually bottom-baseline,
  and it fails when line size is != 1.0 when working with text boxes.

- Top: Poorly implemented, it should use font's ascent
  (recommended distance from baseline),
  so it has room for accents,
  but it's not one line distance far from the origin (as it is now).

- Center: Poorly implemented.
  This is tricky since there is no silver bullet.

To clear this situation I created a new option (Bottom-Baseline),
and addressed the issues above.
I'm getting the ascent and descent from freetype2,
and use this for padding above/below the text.
Also for vertically centering the text.
2018-09-05 11:33:14 +10:00
e913e79fb5 Merge branch 'master' into blender2.8 2018-09-04 17:34:46 +10:00
8cd6e22ec0 Cleanup: use const arg for BLI_rect inside check 2018-09-04 17:33:12 +10:00
0ddf3e110e Cleanup: comment blocks 2018-09-02 18:51:31 +10:00
ae57383648 Cleanup: comment blocks 2018-09-02 18:28:27 +10:00
df8a7ec3a8 Fix fox strict flags: Avoid sign cast of strlen() result 2018-08-30 14:14:18 +02:00
89186595de Cleanup: add file doxy comments 2018-08-30 01:56:08 +10:00
1d067868c0 UI: tweak drawing of header status text for transparent headers. 2018-08-15 16:00:40 +02:00
bf2d0782bc Merge branch 'master' into blender2.8 2018-08-09 08:20:06 +10:00
3aee3bbac7 Math Lib: varied size vector multiply
Needed for Python mathutils elementwise multiply.
2018-08-09 08:14:38 +10:00
9e2f678ba2 Fix mistake in atomic bitmap
Internally values are stored as 32bit integers, no idea why i thought
they were 8 bit.
2018-08-01 18:42:59 +02:00
be5ccb9ce8 Merge branch 'master' into blender2.8 2018-08-01 16:13:13 +02:00
9336aef4eb Fix T56195: Typo in BLI_array_utils.h. 2018-08-01 16:12:36 +02:00
3f5d3aa057 Merge branch 'master' into blender2.8 2018-08-01 16:39:34 +10:00
583b2f9a3d Cleanup: remove unused array member 2018-08-01 16:38:57 +10:00
66da2f537a New Grease Pencil object for 2D animation
This commit merge the full development done in greasepencil-object branch and include mainly the following features.

- New grease pencil object.
- New drawing engine.
- New grease pencil modes Draw/Sculpt/Edit and Weight Paint.
- New brushes for grease pencil.
- New modifiers for grease pencil.
- New shaders FX.
- New material system (replace old palettes and colors).
- Split of annotations (old grease pencil) and new grease pencil object.
- UI adapted to blender 2.8.

You can get more info here:

https://code.blender.org/2017/12/drawing-2d-animation-in-blender-2-8/
https://code.blender.org/2018/07/grease-pencil-status-update/

This is the result of nearly two years of development and I want thanks firstly the other members of the grease pencil team: Daniel M. Lara, Matias Mendiola and Joshua Leung for their support, ideas and to keep working in the project all the time, without them this project had been impossible.

Also, I want thanks other Blender developers for their help, advices and to be there always to help me, and specially to Clément Foucault, Dalai Felinto, Pablo Vázquez and Campbell Barton.
2018-07-31 10:50:43 +02:00
51c38b5d49 Subsurf: Rework in a way that patches boundaries are merged together
The idea is to create vertices along the coarse edges once, without
splitting coarse edges on separate ptex faces. This requires some
indexing magic, vertices within a patch are no longer sequential.

Not sure how to make it nicer without such a black magic looking
calculations (which are basically boiling down to mimicking order
of verts/edges creation).

In the current offsets calculation loose verts and edges are not
properly taken into account, but those are causing topology refiner
to fail anyway, so it needs a bit deeper change.

Reviewers: brecht

Differential Revision: https://developer.blender.org/D3570
2018-07-31 09:24:30 +02:00
2e2e7aff7c Merge branch 'master' into blender2.8 2018-07-30 18:44:18 +02:00
885cc4cf9a Build: require C11/C++11 for all operating systems in master.
This is in preparation of upgrading our library dependencies, some of which
need C++11. We already use C++11 in blender2.8 and for Windows and macOS, so
this just affects Linux.

On many distributions this will not require any changes, on some
install_deps.sh will need to be run again to rebuild libraries.

Differential Revision: https://developer.blender.org/D3568
2018-07-30 17:12:24 +02:00
b8ab2a84d3 Merge branch 'master' into blender2.8 2018-07-27 11:01:01 +10:00
71564debf9 Fix T56074: Remove doubles creates holes
Own regression when moving remove-doubles to kd-tree
(seems to happen only in rare cases).
2018-07-27 10:55:30 +10:00
9c0dea213e Merge branch 'master' into blender2.8
Conflicts:
	source/blender/blenkernel/intern/rigidbody.c
2018-07-25 21:12:04 +02:00
5ba4d059c0 Fix (unreported) potential div-by-zero in ray/bbox intersection BLI code.
Also added note that direction parameter should be normalized vector
in case one intend to use returned distance values.
2018-07-25 21:04:28 +02:00