Age | Commit message (Collapse) | Author |
|
|
|
The error was in any GP object without layers.
Also added a check to avoid paint in a locked layer.
|
|
Note that there are most certainly many other operators that’d need that
same flag... Don’t have time to hunt them down currently, will just fix
as issues are found, for now.
|
|
Many snap_to operators need a fully evaluated depsgraph to run
properly...
|
|
For now, that flag is only used in redo code, since after undo step
depsgraph is totally empty... We *may* want to add at least an assert in
op calling code too, though?
|
|
Since that call make the graph active, it should only be used in active
editing context aware code (i.e. essentially, operators).
|
|
|
|
This remove unused clip_block when not needed and the useless ubo bind that
were put there for the sake of not crashing.
|
|
|
|
The display is broken otherwise.
|
|
|
|
Also some renames and cleanups.
|
|
It's more clear for user to see the name of the color
|
|
|
|
|
|
|
|
|
|
Some of them are unecessary and should be removed from the shader instead.
But for now we need a quick fix for the crashes happening on some platforms.
See T55475.
|
|
This function was called by RNA Api and had grease pencil object type missing.
|
|
|
|
Calling code is responsible to check on NULL pointers here, or ensure
is does have a fully built and evaluated depsgraph, but this should
never crash in DEG queries themselves.
|
|
|
|
Also show particle brush in tool-properties panel.
|
|
Enabled infinite sharp patches for topology refiner and evaluator,
which allows to have sharp edge at first subdivision level.
Also tweaked crease export from Blender to OpenSubdiv to have more
artistic control over the whole 0..1 range.
|
|
|
|
Changing a brush now updates the tool.
|
|
|
|
|
|
In some cases (e.g. using old userpref settings/keymaps)
it was possible to trigger a crash when the wrong GP/Annotation
operators were triggered in the wrong contexts (e.g. using
the old GPENCIL_OT_paint in annotation-only contexts like
all the 2D editors).
This commit resolves several issues that were caused by sloppy
code-churn + features that had been hacked on.
|
|
collect timing data
This will be useful for checking on the progress of our optimisation
efforts, and to generate some nice stats for later.
|
|
Pretty minor, from 0.6 to 0.8, but the improvement is noticeable
especially when using a stylus, without overlapping too much with
the buttons and dropdowns in headers.
|
|
|
|
|
|
|
|
This means tweaking parameter is now interactive and does not need to
recompile the shaders.
|
|
This is in order to reference the localized node->storage when populating
the UBO data.
|
|
texelFetch return vec4(0.0) if the target pixel is outside the texture
rect. So we mimic the default repeate mode that we have for linear
interpolation.
Fix T56156 Mapping-Node doesn't work
|
|
We need to copy the size of the gputype not the padded type.
|
|
Before that it was only first UV layer which was properly evaluated,
the rest were ignored. Now all layers are being properly handled.
|
|
Currently unused, added for the future and API completeness.
|
|
|
|
|
|
The idea is simple: do not provide full topology to OpenSubdiv, leave
edges creation to OpenSubdiv itself. This solves issues with non-manifold
meshes which were known to fail, including the ones from T52059.
On a positive side we can simplify our side of converter, keeping code
shorter.
it is still possible that we'll need to ensure all loops has same
winding, but that is less things to worry about.
|
|
Applies to vertices and edges. Biggest annoyance here is that OpenSubdiv's
topology converter expects that there is no loose geometry, otherwise it
is getting confused.
For now solution is to create some sort of mapping from real Mesh vertex
and edge index to a non-loose-index. Now the annoying part is that this
is an extra step to calculate before we can compare topology, meaning FPS
will not be as great as if we knew for sure that topology didn't change.
Loose edges subdivision is different from what it used to be with old
subdivision code, but probably nice feature now is that endpoints of loose
edges are stay at the coarse vertex locations. This allows to have things
like plane with hair strands, without need to duplicate edge vertices at
endpoints.
All this required some re-work of topology refiner creation, which is now
only passing edges and vertices which are adjacent to face. This is how
topology refiner is supposed to be used, and this is how its validator
also works. Vertices which are adjacent to loose edges are marked as
infinite sharp. This seems to be good-enough approximation for now. In the
future we might tweaks things a bit and push such vertices in average
direction of loose edges, to match old subdivision code closer.
|
|
Internally values are stored as 32bit integers, no idea why i thought
they were 8 bit.
|
|
|
|
|
|
|
|
|
|
Now it should at least succeed when there are no grease pencil objects.
|