Age | Commit message (Collapse) | Author |
|
Makes it simpler to make some changes...
Also fix order of some includes (use alphabetical please).
|
|
NLA strips are users of their action, so we need to pass along ID
management flags.
This commit also cleans up a bit things by passing along ID_CREATE/COPY
flags instead of dummy booleans...
|
|
This can be done via WM_OT_context_set_enum
|
|
Replace grease pencil specific brush select operator.
|
|
Each mode had its own logic for initializing paint structs,
move to a single function.
Also remove "BKE_brush_get_gpencil_paint", entering grease pencil
mode is responsible for ensuring the data is created.
|
|
Full redesign of the cache system used for drawing strokes and handle derived frame data.
Before, the cache was saved in bGPdata and a hash was used to manage several objects with the same datablock.
Old design made the use of particles very inefficient and prone to bugs and segment faults, and especially when this was mixed with onion skinning and multiple objects using same datablock. Also, there were some conflicts with the depsgrah logic (the old design was done before despgraph was in place) that made the use of hash not working.
The new design saves the data in the object runtime struct and avoid the use of any hash to find the right data. This improves the speed and reduce a lot the complexity of the code, memory allocation, hash overload and adds full support for particles and reused datablocks.
The particles can reuse the modifiers and shader effects of the original grease pencil object.
|
|
After a lot of discussion about this option (see 18f117594004) we have decided set always the order of GP layers in 2D mode (Top->Down) and remove the parameter from User Preferences screen.
Internally all works equal, but in the UI the list is inverted.
The filter buttons to reverse the list or sort alphabetically have been removed because these buttons are not logic in this context.
|
|
|
|
|
|
|
|
Was using 'selected_editable_bases', which used to save a lookup.
This is no longer the case and complicates access from Python
which cant yet easily access Bases.
|
|
|
|
|
|
The first material of the list could not be assigned.
|
|
|
|
Now the operator to select by color can unselect too.
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
Now the weights are managed in the operators.
The subdivide operator and modifier code have been replaced with a shared function.
Some cleanup also.
|
|
|
|
|
|
Using custom api breaks material at object level
|
|
|
|
Replace BKE_gpencil_get_material_index by BKE_object_material_slot_find_index
|
|
The operator allows to copy a complete layer with all frames or only active frame to a new object.
Can be found in edit specials menu (W key) or in Layers specials menu (last button near layer list).
|
|
|
|
Was always using first group.
|
|
|
|
This operator clean any stroke below a defined number of points. This is used because sometimes when use eraser some points keep missing.
Also some changes in the UI menu.
|
|
|
|
|
|
|
|
It's more clear for user to see the name of the color
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
D1518 from @mba105 w/ edits
|
|
Practically all access to enum data is read-only.
|
|
Things like `BLI_uniquename` had nothing, but really nothing to do in
BLI_path_util files!
Also, got rid of length limitation in `BLI_uniquename_cb`, we can use
alloca here to avoid overhead of malloc while keeping free size (within
reasonable limits of course).
|
|
Before this commit, the brush set was created with the first stroke
drawing, but if the user creates the datablock or the layer manually
(not drawing) the brush list was empty.
This commit complement the python fix by Sergey:
https://developer.blender.org/rB89c1f9db37cc1becdd437fcfdb1877306cc2b329
|
|
Was using a bunch of different spellings, mostly "data-block" though, so went with that one (would have been my #1 choice anyway ;) )
|