(A masterclass in killing a bug using a sledgehammer...)
Recoded the way that Graph Editor keyframe selection works, replacing the old penalties + closest vert system with a selection queue.
Perhaps the sensitivity tolerance for picking up when a vert is clicked on is too sensitive now, but this can be fixed easily.
Really not much to fix, since it's just not supposed to work. Removed the non-working
brushes (add and puff) from the brush list while hair is disconnected.
This reduces point cache sizes dramatically especially if particle
life time is small compared to total simulation length. For example
with the settings: particle amount = 10000, start = 1, end = 200,
life = 10, cache step = 1, the unoptimized blend file size (compressed)
was a little over 22 Mb and with this optimization the file is a little
under 2 Mb (again compressed). In addition to saving memory/disk space
this also probably speeds up reading from cache, since there's less
data to read.
As an additional fix the memory cache size (displayed in cache panel)
is now calculated correctly.
Proper fix for this. Moving special mouse input stuff to custom callbacks (this also makes the per transform main functions a bit cleaner).
It also fixes the operator property (value) for shear and warp.
Modifier code was asking for filtered textures without sending derivatives.
Disabled this and also checks for filtered/non-filtered.
Brecht, I assumed this was ok due to the existence of the p->osatex variable
- if this isn't what you had in mind, please change or let me know :)
unrelated changes that ended up being more trouble to commit separate...
- removed BLI_split_dirfile(), was nasty, occasionaly modifying the source string, it could create directories and used the $CWD in some cases. was only used in 2 places in filesel.c, if this gives problems can address without bringing back this function.
renamed BLI_split_dirfile_basic --> BLI_split_dirfile
- view3d_operator_needs_opengl was being called for offscreen render when it wasnt needed.
setting sys.stdin to None is done so python wont lock blender when it tries to read from the input. - help() from the console does this.
Running blender with -d keeps the stdin so python debugging can work. add info in the help message about this.
eventually it might be best to replace sys.stdin with our own object which interacts with the console but this is not trivial.
there is sufsurf modifier first in the stack.
Some optimizations in curve_calc_modifiers_post():
- Calculate allverts array only for curve modifier applying to curve
without derived mesh.
- Do not calculate deformedVerts array each time deformation modifier
is applying to derived mesh.
image.py has a function image_editor_guess(), please test on windows and mac. (using 'startfile' and 'open')
this is only used when the image editor is not set.
* I put it under General->System. Not sure is the better place for it though (space_userpref.py)
** also: creator.c fix to avoid autoplay of games when scripts are disabled.
- new mode for projecting an image with the view matrix saved in the image id-properties rather then using the camera matrix.
- operator to screenshot the view and create a new image with the view matrix stored in the image.
these will be used for better re-project integration and are not immediately very useful.
This means we can write low level apis in pyton or C where blender data is passed to external C modules without having to have blender support this directly.
Example use case is to get an image pointer then use ctypes to get the image buffer and pass it to a C image processing function.