Age | Commit message (Collapse) | Author |
|
This parameter is more logic as true because is better scale thickness when the size of the stroke changes.
Reviewed by: @mendio @pepeland
|
|
This reverts commit 2aad8fc7bc2a45d5f749430c7cb9b82b9f6c9e49.
It was a commit without proper review.
A better API needs to be discussed.
|
|
|
|
Needed for studio sprite-fright frozen branch.
Also do not overwrite branch for git sub-modules when it is defined, and
fallback to `master` branch in case specified branch is not found in a
specific sub-repository.
|
|
|
|
Need to ensure render result's pixels are allocated prior to merge.
Differential Revision: https://developer.blender.org/D12371
|
|
Adding a mirror modifier in edit-mode crashed.
Freeing meshes that hold a shallow copy happens in multiple places
while calculating modifiers, making it impractical to clear the
edit-mode pointer before freeing the mesh (as done in
BKE_editmesh_free_derived_caches).
Add a struct member to the edit-mesh struct so evaluated copies
don't free the edit-mesh contents.
|
|
This memory was only duplicated to satisfy mesh_data_free
which was incorrectly freeing the pointer (but nothing else).
|
|
No longer free the edit-mesh pointer while in edit-mode since this
isn't reliable to keep the object in edit-mode while freeing it's
edit-mesh data.
Users who want to exit edit-mode should do so explicitly.
Caused by 6d2f9b1dfa98502e9e9f1a73e3dded2ded1f1ce6.
|
|
Freeing the edit-mesh pointer wasn't free the edit-mesh data it's self.
Unlinking from the outliner or through the Python API leaked memory.
This didn't often cause leaks in practice since ED_editors_exit
exits edit-mode for all objects.
Now freeing mesh data frees the edit-mode data as well,
this matches the behavior of other object types that support edit-mode.
|
|
Calling undo in from Python background-mode would raise an exception
without any information about how to initialize undo.
|
|
The new API introduced in rB1e69a25043120c provides a shorted, more
flexibly way to declare node socket inputs and outputs. This commit
updates all geometry nodes to use the `NodeSocketBuilder` API, except
the four nodes that need `SOCK_HIDE_VALUE` or `SOCK_MULTI_INPUT`.
Differential Revisions: D12377, D12376, D12374, D12373, D12372
|
|
|
|
Failure to calculate normals caused an assertion since face
tessellation was being calculated with invalid normals.
In practice the rip-drag action would recalculate normals anyway,
however mesh tessellation should always be performed with valid normals.
|
|
|
|
Callers that require lazy initialization can use SEQ_editing_ensure.
|
|
|
|
|
|
This commit fixes the custom property edit operator for the the case of
editing group properties. Currently this isn't supported very well, the
data is converted to a string, but the operator shouldn't fail anyway.
This allows editing properties created like this:
C.object['abuse'] = {'parent' : ['child1', 'child2']}
These changes reflect some issues with the design of the operator.
Requiring guessing the type of the data does not work well at all, and
makes code more complicated. In the future this operator can be updated
to use a type drop-down.
Differential Revision: https://developer.blender.org/D12364
|
|
Since the UI data is now stored in the property, and the property is
deleted on the next line, this doesn't need to be called separately.
|
|
|
|
Solved by using const qualifier for arguments which aren't mutable
in PyC functions.
Differential Revision: https://developer.blender.org/D12369
|
|
Context members of the file space would not be shown in the context API
docs.
|
|
Now you can choose the state of texture (as a filter and repetition) to
render it.
This is important as the original state is very limited.
|
|
Since recently it's possible to query the active file (as object, not
just the name), but it's quite useful for scripting to have access to
all selected files.
This introduces `bpy.context.selected_files`, returning a list of file
objects representing files in the File Browser.
|
|
There were requests to be able to track the file selection in the File
Browser. Just using the file name for that wouldn't if the file browser
has the recursive display enabled. File names could be duplicated then.
So expose the entire path relative to the currently displayed directory.
|
|
We could check many more things still, but this should already cover
most basic common cases.
|
|
|
|
|
|
Names describe better what will be applied. Previous names were
extracted from the original code, that weren't accurately named.
|
|
|
|
|
|
Avoid having to include bpy_rna.h for enum utility functions,
recently added to idprop_py_ui_api.c.
|
|
Useful for callers that need the string length.
|
|
Use BLI_str_quoted_substr_range instead of in-line
quote extraction to resolve:
- Bone names containing quotes caused flip to fail.
- Missing NULL check if a matching quote could not be found.
|
|
This is a similar funciton to BLI_str_quoted_substrN
that extracts the range of the quoted string
instead of allocating a new string un-escaped string.
|
|
Rely on BLI_str_quoted_substrN to detect if the prefix exists since
this function exists early there is no need to check before calling.
|
|
The code put the value from the "min" property into the "max"
value. This would have crashed if min was null and max wasn't.
|
|
Assigning a new value to an IDProperty with the Python API would free
the entire contents of the existing property, which unfortunately
happened to include the UI data. The fix is to extract the UI data from
the existing property before freeing its contents. An alternative
would be adding another argument to `IDP_FreePropertyContent_ex`, but
this solution is clearer and doesn't increase complexity elsewhere.
|
|
Objects also have a list of "bone" pose channels embedded directly.
These properties are user visible, so their UI data should be versioned.
|
|
|
|
This is stored internally and used as an integer, so there is no need
to convert it to a float for "as_dict". This was just an oversight.
|
|
|
|
When the same stroke was used as a driver variable, this could make this
stroke already tagged as built in the course of building driver
variables (via `build_gpencil`), but then important stuff from
`build_object_data_geometry_datablock` could be missed later on (because
both of these funtions use `checkIsBuiltAndTag`). Most importantly,
setting up operations such as GEOMETRY_EVAL would be skipped entirely.
`build_object_data_geometry_datablock` seems to cover greasepencil just
fine (does the same as `build_gpencil` and more). Proposed solution is to
remove `build_gpencil` entirely. In `build_id` it would then also call
`build_object_data_geometry_datablock` for `ID_GD` IDs. Now the covered
types that _call_ `build_object_data_geometry_datablock` match exactly
to what is covered _inside_ `build_object_data_geometry_datablock`.
Think this "duplication" of functionality was just overseen in
rB66da2f537ae8 [`build_gpencil` existed long before and said commit made
greasepencil a real object with geometry and such].
thx @JacquesLucke for additional input!
Maniphest Tasks: T88433
Differential Revision: https://developer.blender.org/D12324
|
|
All props of annotations are not animatable by design and opacity must be equal.
As the opacity is reused by gpencil objects, a new prop has been created in order to use different props for annotations and GP objects.
|
|
|
|
|
|
|
|
|
|
The do_color_management option was set, but never read.
|