* Accelerated sRGB <=> linear conversion using lookup table, this can speed up
loading of images in the compositor and simple renders quite a bit.
* Dithering now uses the Floyd-Steinberg algorithm. Previously it would simply
randomize each pixel slightly, adding noise, now that should be reduced.
Patch #29309 by David M.
Instead of generally hiding all unused sockets in collapsed mode, the sockets now have a new explicit flag SOCK_AUTO_HIDDEN, which is only toggled when the hide_toggle operator is called. This way the auto-hidden sockets stay as they are when nodes are duplicated etc. The new flag is necessary to distinguish between manually hidden sockets (via hide_sockets_toggle operator) and automatically hidden sockets and restore the node state when unhiding a node.
Disabling mode switching in panning in 2d as it is disabled in 3d also.
Apparently, it is a not good idea to call modal method from a modal method as the last won't be canceled.
Special notifiers used for scene deletion which lead to undo pushes
after SCENE_OT_delete operator happening with scene still present in
the mainfile. That was a reason why operator redo used to restore
scene.
It's not so obvious why special notifier type is needed for scene
set and deletion -- it confuses undo system without having some
obvious advantages. Using "direct" scene deletion and setting
seems to be working fine so let's see if there'll be some issues
with this.
Blur width used to be calculated quite strange depending on current angle.
Also, it used to be using wrong formula to calculate distance between
current point and boundary line which made blur width almost useless.
Now actual blur width is doesn't depend on angle and use corrected formula
for distance calculation which makes blur width slider behaves more
predictable.
This commit might make old files using wipe+blur be rendered a bit differently,
but don't think it's indeed issue because old behavior was crappy to setup
something useful so don't think this setup was used a lot.
This was mostly only a problem when using Cycles, where NodeTrees are used to
control the world settings.
Also needed to knock out a few remnants of some bygone attempted optimisation
attempts which were preventing this from working (i.e. if a world block didn't
have any animdata, it's child nodetree would never get seen/tested). These
worked ok in the past, but are not that flexible for extension.
Looks like some codecs depends on valid PTS set for frame to encode
frame in right way. PTS is calculating based on current frame number
appending to stream which is stored in render data.
So use rd.cfra in screenshot_startjob() instead of keeping own variable
for reporting current frame number.
Now codecs should be happy and work nice.
- remove redundant check in new prop operator which is covered by operators poll func.
- use get_ob_property to get the object prop in BL_ConvertTextProperty() rather then looping for it.
[I don't think anyone has ever reported those, what makes me slightly sad but carry on ;)]
Those fixes introduce a more generic function to load a font before calling BLF_load.
I think it should move to be part of Blender util routines or BLF itself.
For the time being here will make it. Once we get <builtin> font working we go for this.
Thanks Diego Borghetti for the usual assistance with blf.
Interface:
http://www.pasteall.org/pic/show.php?id=23785
Simple test file:
http://www.pasteall.org/blend/10616
(I'll commit this to the text suite later)
Code Explanation:
---------------
(1) it adds a toggle to add/remove a "Text" gameproperty.
- internally this property is just another game property (so we can find it within the game.properties lookup).
- the property itself has no 'value', the interface shows the content of ob.data.body instead (why? because gameproperties are per object, while the text is per data).
(2) at BGE converter time it sets the current value of the object.data.body to the ["Text"] property.
(3) if you change object.text (bge text property) it automatically convert ["Text"] to a CStringValue.
*** that means if the original property was a CIntegerValue, it will be converted to CStringValue forever ***
* the only to do I can think of is to add a warning at doversion time if user has ["Text"] property for a Font object *
* when that happens we print a warning in console/popup.*
If this object is defined, object with Follow Track constraint would be
projected into surface of this depth object.
If object is not set or there's no projection onto it, projection plane
calculated based on original object position would be used.
This allows to make cheap facial mocap.
Sequencer render context should be as large as the whole frame when rendering
using border without clipping.
Can be implemented in more clear way but it'll require more global refactoring.
- This operators always used to work with tracks for camera
- Properly set camera and object fields to Follow Track constraint
- TrackingObject.tracks is now pointing to actual list of tracks for
camera objects.
[#25834] no color of textobjects in game engine when combined with
textured objects
[#26893] Curruption of displayed text (debug properties/fps info or bgui)
when using animated/tile uv mode
The first bug was beacuse a bad mode on the texture environment, now
we save the current glTexEnvi, set the one that we need, draw and
restore the original at the end.
The second was because a missing call to glLoadIdentity for the
texture matrix and as we do before, now we do a gl-Push/Identity/Pop
for this matrix to.
The first problem was solved by Kanttori and the second by Dalai.
Thanks Sergey for the patch!
This bug, and many like it would arise because at some point a F-Curve would get
detected as being unable to be resolved (when trying to display its name in an
Animation Editor), so gets tagged as being "disabled". It was assumed that such
channels usually belonged to deleted data or stuff that wouldn't be able to be
resolved again for a long time. However, in cases like UV settings, they may
only be unavailable temporarily.
As a compromise, this patch clears this disabled flag if a channel is found to
be now working when (in the process of finding out its name when redrawing an
Animation Editor) it can be resolved, in the same place where the disabling was
taking place. This doesn't work fullproof in tests I've done, but should be
nicer than before.
CTX_data_pointer_get_type(C, "object", &RNA_Object).data
with api call:
ED_object_context(C)
... since getting the context object is such a common operation.