Pasting values into/onto sliders in the Action Editor didn't insert new keyframes for the related channels.
I've added a one-liner to the interface/buttons code which calls the button callback upon pasting values, thus fixing this bug and perhaps some others in the future. This shouldn't cause any problems in general (I haven't seen any yet!).
Thanks to venomgfx (Pablo Vazquez) for reporting this.
Tooltip getStringSize and getBoundingBox correction
Not really any user-visible changes here, but a nice clean-up of
internal font drawing functions, in this case used in tooltips.
Thanks!
This time, it's temporarily hidden by default, but active with rt: set to 5.
If anyone that was having probs with it before could test and let me know if
things go without issues, that would be appreciated!
This commit should hopefully fix some of the problems some people were
having with tablet support in sculpt mode, and also the problems I made
visible with my previous commit related to number field dragging.
Now, all the ghost related stuff is tucked away in ghostwinlay.c and a
simple Blender API, similar to the existing get_mbut() for example, is
provided to access the tablet data. As with the other mouse related data in
Blender, the tablet data is cached upon each mouse move or click, in the
Window struct.
You can now just use:
float get_pressure(void);
void get_tilt(float *xtilt, float *ytilt);
short get_activedevice(void);
to get such data from the tablet. Documentation on the returned data
is in ghostwinlay.c in the _Window struct definition.
Brecht and Nicholas, I've updated the painting and sculpt code and it works
just fine here, you may want to give it a check though to make sure I
haven't done anything silly.
Clearing number buttons and press enter (for assigning zero) did not give
a button event anymore. Caused by code for python eval, it treated this
as an error.
* Tablet pressure sensitivity for number field dragging
Many of the number fields in Blender are very sensitive. With this addition,
softer tablet pressure causes the number field dragging to be more precise,
as if you're holding shift, but variable depending on how hard or soft
you're pressing. You can push hard for large adjustments or just lightly
stroke it for fine tuning.
P.S. There was a bug in the tracker regarding tablet support in sculpt mode that
never really got resolved. I don't know if it still exists, but number fields
are a pretty major part of Blender, so just in case this commit causes problems
for you, you can disable it (temporarily, this won't be left in) by changing
rt: to any value other than 0. If anyone has problems, please report them, and
we can get it sorted out properly.
Buttons: Missing linked-library lock reset in code could invoke error menu
Bugfix #5770
Renamed option "Clear Pose" to "Clear User Transform" to indicate that this
differs from rest-pose. This option clears all Pose channel transforms, but
leaves Action values in pose unchanged. Means that when you do this, an
'insert key' won't change the animation.
Own fix:
Missing test for NULL pointer could crash Image Properties panel for linked
Image data.
CTRL+C/V (or Apple+C/V) on buttons didn't copy/paste names for buttons
of type "ID pointer" anymore. Was caused by NULL pointer check in wrong
location.
Textbutton: SHIFT+Arrow selections did not work proper when the amount of
text in a button was more than its width could display. Now still doesn't
work OK 100% (when selection itself goes outside of button view).
Also: removed the very bad SELWIDTH define (but->selend - but->selsta).
That's not making readable code!
Reason: I had to make the "BUT" type in Blender to use callbacks *after* the
uiBlock was freed, because in Blender several of these callbacks invoke
drawing, which isn't possible while a block is being evaluated.
Please read:
http://www.blender3d.org/cms/Imaging.834.0.html
Or in short:
- adding MultiLayer Image support
- recoded entire Image API
- better integration of movie/sequence Images
Was a whole load of work... went down for a week to do this. So, will need
a lot of testing! Will be in irc all evening.
Full log:
http://www.blender3d.org/cms/Render_Passes.829.0.html
In short:
- Passes now have option to be excluded from "Combined".
- RenderLayers allow to override Light (Lamp groups) or Material.
- RenderLayers and Passes are in Outliner now, (ab)using Matt's nice
'restriction collumns'. :)
Based on patch #5140 by Juho Vepsäläinen, this commit removes the requirement to type # at the start when you want to use Python expression evaluation when typing a value in a button.
In a nutshell, that means you can now type 3 + 5 in a numbut and see it change to 8.
Word of warning: The normal Python operator logic applies, so if you type in 1 / 3, you'll get 0 and not 0.333. There's no going around that.
- Now baking itself is threaded too (like for render, max 2 cpus. Moving
this to 4 cpus is on todo. Goes twice as fast!
- fix: ESC from bake was broken...
- other fix: toolbox menus didn't treat sublevel string lengths OK,
truncating items like for Group library names.
- When using (referenced) Library files, the groups in Add menu now are
listed per used file. This allows to easier create custom datasets.
- Toolbox opens in collums now, when more than 30 items in a menu exist
THE OBJECT PROXY
Or simple said; local control of referenced data from libraries.
Having library files with references is a very common studio setup, and
Blender did do quite well in that area. Were it not that for character
setups it was impossible to use still.
This commit will enable a full rig+character to remain in the library,
and still have - under strict control - local access for animation edits.
Full log:
http://www.blender3d.org/cms/Proxy_Objects.824.0.html
- pending commit for OSX intel systems, with intel graphics. These now call
an extra swapbuffers after glFlush(). Code is ifdeffed, and doesnt affect
other systems.
- show-off commit: option to have transparent nodes over the composite
result. Only draws Image for active Viewer Node now, and image doesnt
translate nor zoom (which isnt bad though).
Set in themes the alpha color of "node backdrop" to make nodes
transparent.
Apparently not supported in Windows compiler, and although it has _isnan()
I've got no time to code wrappers for it, and #ifdefs here is plain bad
code.
Nice todo for Campbell one of these days after release!
Using TAB to type values in button sequences, didn't execute button
callbacks on the 2nd and and 3rd etc. Error could be noticed in the
Node Editor, Mapping node. That one didn't pass on changes to shading code.
Ancient issue in making screendumps in Blender. It used to support making
dumps of popup menus, but that disappeared a while ago. However, when you
press CTRL+F3 in a menu now, Blender hangs in some eternal loop in ghost.
This commit fixes making menu screendumps (nice for docs!).
- press CTRL+F3 *twice* for an exact copy of a menu. (first press exits
menu, 2nd press opens filewindow)
- note, it is ALT+CTRL+F3 in OSX
- what is saved is only the topmost open level of a menu
- full-screen dumps work too by holding SHIFT extra.
Fix for old (post 2.3) annoyance in UI; on redraw of the entire buttons
window, the active button (with highlight) was detected wrong. Was just
a matrix calculation on wrong moment. :)
Also: fixed tooltip for transparent material "add" option. It was talking
about "Glow", a confusing description.
Users can write any valid Python expression (that evals to an int or float) inside Blender's gui number buttons (preceded by #) and have them evaluated to their actual int or float value.
Button Evaluation has access to the same modules as PyDrivers.
For example:
#1.0*9-2.3
#ob("Camera").LocZ
#1.0/ob("Cube").LocX
#math.sin(math.pi) -- or simply #m.sin(m.pi)
etc
you can click on the 'Sample' button, to sample any colour on the Blender
screen. This is really useful in the compositor, and would probably be good for
sampling footage in any eventual chroma key nodes that may be made, too.
LMB to pick the colour, ESC or RMB to cancel.
Hotkeys Ctrl/Command (Mac) X, C, and V will cut, copy and paste the selected
text to and from the 'buttons clipboard'.
This clipboard is still not that good since it doesn't even use the same
storage as the blender text editor, let alone the host OS. But I guess that
sort of thing should be tackled inside of GHOST. Any takers? :)
Note : this part of code was quite a mess with things called twice when
not needed, tests for not updating when we want to, and hsv sliders not
handled properly.
I tried to figure what was useful and what was not but cannot garantee i
spotted everything or even fixed it the most proper way, the event callback
nesting making hard to figure what really happen.
However it does work again now
- Texture Node
Allows to use any Blender Texture block as input for masks or color
blending. The texture node doesn't generate a real image, but adjusts to
the size as mapped with during an operation. So it won't work to use it
as Image input for Blur or Filter nodes.
Note; the Vector inputs for this node only work with manual input now!
- Translation Node
Give any image an offset in X or Y direction
For the Texture node to work, I needed to move the central 'pixel
processor' up one level... to allow differently sized images to merge
and allow 'procedural images' without size.
Temporal image of the day: http://www.blender.org/bf/rt.jpg
(NOTE: new include dependency in Render module, might need MSVC update!
It has to include the imbuf/intern/openexr/ directory in search path)
-> New Composite node: "Hue Saturation".
Works like the former 'post process' menu. There's no gamma, brightness or
multiply needed in this node, for that the Curves Node functions better.
-> Enabled Toolbox in Node editor
This now also replaces the SHIFT+A for adding nodes. The nodes are
automatically added to the menus, using the 'class' category from the
type definition.
Current classes are (compositor examples):
Inputs: RenderResult, Image
Outputs: Composite, Viewer
Color Ops: RGB Curves, Mix, Hue Saturation, AlphaOver
Vector Ops: Normal, Vector Curves, Map Value
Filters: Filter, Blur, VectorBlur
Convertors: ColorRamp, RGBtoBW, Separate RGBA, Separate HSVA, Set Alpha
Generators: RGB, Value, Time
Groups: the list of custom defined nodes
-> OpenEXR tile saving support
Created an API for for saving tile-based Images with an unlimited amount
of layers/channels. I've tested it for 'render result' now, with the idea
that this can (optionally) replace the current inserting of tiles in the
main result buffers. Especially with a lot of layers, the used memory for
these buffers can easily go into the 100s of megs.
Two other advantages:
- all 'render result' layers can be saved entirely in a single file, for
later use in compositing, also for animation output.
- on each render, per scene, a unique temp file can be stored, allowing
to re-use these temp files on starting Blender or loading files, showing
the last result of a render command.
The option is currently disabled, needs more work... but I had to commit
this because of the rest of the work I did!
-> Bug fix
The Image node didn't call an execute event when browsing another image.
- Scene support in RenderLayers
You now can indicate in Compositor to use RenderLayer(s) from other scenes.
Use the new dropdown menu in the "Render Result" node. It will change the
title of the node to indicate that.
The other Scenes are rendered fully separate, creating own databases (and
octrees) after the current scene was finished. They use their own render
settings, with as exception the render output size (and optional border).
This makes the option an interesting memory saver and speedup.
Also note that the render-results of other scenes are kept in memory while
you work. So, after a render, you can tweak all composit effects.
- Render Stats
Added an 'info string' to stats, printed in renderwindow header. It gives
info now on steps "creating database", "shadow buffers", and "octree".
- Bug fixes
Added redraw event for Image window, when using compositor render.
Text objects were not rendered using background render (probably a bug
since depsgraph was added)
Dropdown buttons in Node editor were not refreshed after usage
Sometimes render window did not open, this due to wrong check for 'esc'.
Removed option that renders view-layers on F12, with mouse in 3d window.
Not only was it confusing, it's now more efficient with the Preview Panel,
which does this nicely.