Age | Commit message (Collapse) | Author |
|
|
|
without the Influence Strip F-Curve existing
|
|
It's unlikely to ever be intentional to square the source alpha, as happens
with glBlendFunc, so this changes the blending throughout the code.
|
|
|
|
Avoid ambiguity between 2d/3d (which were already named).
|
|
It's more important that there is some form of feedback that the strips
are muted (i.e. dotted borders) than the fact that those dotted borders
may have slightly rounded corners. So, just use a regular sharp-cornered
rect when the strips need to be muted.
|
|
There's no reason to manually iterate over items in a DLRBT_Tree,
as the structure is designed to be able to be safely casted down
to a ListBase and ListBase-like nodes..
|
|
|
|
|
|
Goal is to make them more modular, to allow more variants (variable
single-color, thickness, ...) to be added without having to
copy-and-change-one-line of whole chain of shaders.
|
|
Use consistent prefix for gawain API names as well as
some abbreviations to avoid over-long names, see: D2678
|
|
|
|
Use to avoid accidental missing break statements,
use ATTR_FALLTHROUGH to suppress.
|
|
Note that smooth-shaded outlines of muted NLA strips should also be
dashed, not sure how to do that currently (in a simple way), so kept
them solid for now.
|
|
Using geometry shader allows us to get rid of the 'line origin' extra
vertex attribute, which means dashed shader no longer requires fiddling
with those vertex attributes definition, and, most importantly, does not
require anymore special drawing code!
As you can see, this makes code much simpler, and much less verbose,
especially in complex cases.
In addition, changed how dashes are handled, to have two 'modes', a
simple one with single color (using default "color" uniform name), and a
more advanced one allowing more complex and multi-color patterns.
Note that since GLSL 1.2 does not support geometry shaders, a hack was
added for now (which gives solid lines, but at least does not make
Blender crash).
|
|
Also restore drawing of local action markers in NLA strips...
Note: there is another usage of setlinestyle in this file, not sure how
to hanlde it for now, so will leave it for later...
|
|
- use best function for the job
- don't specify alpha if 100%
- 'f' for floating point literals
|
|
Getting ready for a Gawain API change...
Part of T49043
|
|
Each function takes a bool (filled vs outline) and a color. We already had multiple ways of passing color in; these are still here. Special variant for anti-aliasing.
- took GLenum out of interface
- removed UI_RB_ALPHA flag (only one place really used it)
- use exact vertex count
- removed redundant state changes (BLEND, LINE_SMOOTH)
|
|
See intern/gawain for the API change. Other files are updated to use the new name. Also updated every call site to the recommended style:
unsigned int foo = VertexFormat_add_attrib(format, "foo", COMP_ ... )
|
|
Conflicts:
source/blender/editors/space_nla/nla_draw.c
source/blender/editors/space_view3d/view3d_draw.c
|
|
range
|
|
- Size parameter is total size of the shape, not its radius (half size). Updated hard-coded sizes to match this.
- Shader expands size to include outline.
- Fixed fringe between outline color and transparent background.
|
|
Allows vertex shader to determine how large to rasterize each point sprite. Forgot to do this before.
|
|
Plus plenty of C99 cleanup.
Part of T49043. Needs more testing, I don't really use the NLA editor.
|
|
Strip start & end are floating-point values, so clang expected fabsf here. Casting to int since we want a discrete number of vertices.
|
|
Also some conversion to new imm mode (T49043).
Multiple editors affected.
We could push this even further & draw all keyframes in an editor with a single draw call.
Something is strange with keyframe markers in blender2.8 -- they're not showing up before or after this commit. They do appear in master. This commit probably needs some follow-up work after keyframes are showing again. Better to share this code now instead of sitting on it.
|
|
|
|
Part of T49043.
|
|
To make it easier to synchronise timing across multiple strips, if you add
markers locally to an action, these will show up in the NLA strip in the
NLA Editor. These markings can then be used to line up the start/end of
another strip, or even to make sure that the markers from two different
strips end up lining up.
By default, this is turned on, but it can be disabled (via the View menu)
if it adds too much visual noise.
|
|
|
|
|
|
use when the length of the destination string is needed.
|
|
With multiple strips in tweakmode, only the one tagged as being "active"
would get drawn in the correct colours, while all the others would just
get drawn as a selected strip instead.
|
|
When renaming animation channels, the old names are no longer drawn behind the
text boxes anymore. This used to cause problems if the names were long, or
if text boxes were set to have transparent backgrounds.
Thanks to kopias for reporting on IRC.
|
|
* Strips in muted tracks are also drawn with dotted borders now to make it clearer
that they are not contributing.
TODO:
* Perhaps dotted should be used for protected, and opacity for muted instead?
|
|
|
|
|
|
Make the UI API more consistent and reduce confusion with some naming.
mainly:
- API function calls
- enum values
some internal static functions have been left for now
|
|
|
|
|
|
This now works (barring one or two minor glitches and the operator on the pushdown
button being a bit of a hack). The old drawing code is still in place though, and
will be kept around for a little while yet while the last kinks are ironed out.
|
|
This commit lays some of the groundwork needed to port the last of the NLA Editor
channel types that's still defined using custom code. By moving this code over
to the newer standardised framework, this will enable widgets to have tooltips
to make it easier for users to find out what various buttons do.
Currently this isn't hooked up to anything though.
|
|
bAnimChannelType settings callbacks
|
|
action-type icon
Instead of displaying the "tweaking action" status indicator icon on the right hand
side jammed against the mapping/no-mapping toggle (pin), this is now displayed as in
place of the action icon used on the left (as the type indicator). This is less messy
than the previous situation, which was needed partly due to the abuse of an unsuited
icon.
|
|
the "tweaking" state
1) The "pushdown" operation is the actual name for the functionality
previously represented by the snowflake. That is, pushing the active
action onto the NLA stack as a new strip.
The icon that is introduced here is the icon I originally wanted to
use here for this purpose (but couldn't at the time the NLA was coded
as we didn't have the master SVG available yet). I'm making this change
now to hopefully make the "animation-layers" intentions behind the NLA
design a lot clearer than they have been so far.
2) Also added a dedicated icon for representing that the active action
is in the "tweaking" state (i.e. we're editing a particular strip's
action). Previously we were abusing an icon designed for an entirely
different purpose, mainly since its identifier looked like it would work.
|
|
Opted to keep includes if they are used indirectly (even if removing is possible).
|
|
|
|
- pass label strlen since in many cases its already known.
- use single linked list for cached text drawing.
- add BLI_link_utils.h for single linked list macros.
own tests give approx 22% overall speedup.
|
|
|