-1..1) to fix errors in keying. Simplified chroma key to not take
despill into consideration (handled elsewhere). Simplified user
interface for pieces not used.
commenting 'blend_factor' for now, its not used.
COLOR and EULER internal pyrna subtypes were causing color type variables to try update euler rotation order.
- replaced PySys_GetObject("modules") with PyImport_GetModuleDict()
- use defaults for keymap import/export rather then setting the same value every time from the UI scripts.
- dont run mesh update functions on zero user meshes (a bit of a cheap trick but works well), made in last commit by mistake.
- dont do a scenegraph update on linking an object, run scene.update() after linking objects.
- remove split material option since we have enough slots.
render from a Main database created from the undo buffer. That means extra
memory usage and processing needed, but gives no interference with other
data.
Still won't work entirely since there are a few things that don't get
flushed always (editmode, sculpt, ..) and some places that use globals.
- raise an exception when python calls is_property_set(name) or is_property_hidden(name) and the property does not exist.
- added BLI_findstring_ptr(), which finds a named item in a listbase where that name is a pointer to a string.
- replaced inline for loops with calls to BLI_findstring_ptr() and IDP_GetPropertyFromGroup().
The file thumbnail generator would write 0x0 size png's to the .thumbnails/fail
folder. However libpng throws an error when doing this. Instead we now write 1x1
png's, which nautilus seems to be doing as well. The content shouldn't matter
anyway since we won't use it.
file->relname was being edited when its length allocated at the size of the original name, realloc'ing failed because the old string was still used by a button.
- remove XML testing feature
- add 2 modules: bpyml - generic, bpyml_ui - blender spesific. nothing uses these now.
==bpyml_ui module==
defines BPyML_BaseUI and its draw() function which uses the bpyml member of the class instance self.draw_data & self.draw_header_data.
This way declarative ui is opt-in and easy to use by using BPyML_BaseUI as a mix-in class.
==bpyml module==
This module translates a python like XML representation into XML
or simple python blender/ui function calls.
sometag(arg=10) [
another(),
another(key="value")
]
# converts into ...
<sometag arg="10">
<another/>
<another key="value" />
</sometag>
- rename TextLine.line -> body, ConsoleLine.line -> body
- minor speedups when setting the body text, also re-allocate console lines if they are < half the length.
- added option to highlight current line in the text editor.
This is used to set the current frame to a floating point subframe state between 0.0 and 1.0
added to the integer frame. A main usage for this is retrieving geometry at sub-frame
intervals for use in multi-segment motion blur:
http://mke3.net/projects/3Delight_blender/renders/multisegment_blur.mov
Example:
scene.set_frame(5)
or
scene.set_frame(5, 0.25)
For !WIN32 systems the fix was in ED_fileselect_set_params
(basically adding the first folder in the sfile->folders_prev list)
For WIN32:
I talked with Nathan (Jesterking) and he agreed that the fix in path_util.c was required too. Without that BLI_path_abs was always making WIN32 paths ending with \ to end with \\
(e.g. C:\Blender\ --> C:\Blender\\)
And this was making the folder to fail ISDIR tests.
- added a script to merge 2 lists of rna renaming from/to
- merged rna_booleans.txt into rna_properties.txt
- made rna_cleaner.py sort by class.from by default.
- optional argument for the drawing mode crashed when not set
- added a check for the call fuinction being callable
- added a check for the argument being a typle.
This fixes: [#23184] Problems with speed control effect strip in the
video sequence editor
Also: got rid of tstripdata caches in DNA.
Fixes some potential crashes in SEQ_IMAGE rendering (s_elem wasn't
checked for NULL).
one of them is in edit mode. This doesn't give correct results for modifiers
though, there was already a check to disable this when are shape keys, so
now it is also disabled if either of the meshes has modifiers.
means you can easily undo what the script did, and keeps the undo stack
up to date. Maybe sometimes it's not necessary, but I think it's
reasonable to do this always.
- re-arranged UI in a way that gave far too much vert scrolling.
- was added all over for simple things like making text="", layout engine should handle this.
- Ton and Brecht are ok with removing this now. Ton would like to work on the layout engine to make it better support these cases.
more of a request then a bug but shows up a strange limitation with curve deform modifier,
The mesh bounding box would set the deform axis start/end to map the deformation of the curve to. This means it ignored offset in the object location and object data location (you could use a dummy vertex to trick it).
Old files wont change, added an option (next to stretch), called 'Bounds Clamp', old files have this behavior but newly made curves have it disabled.
Double checked this gives useful results with stretch on/off and negative axis.
A subtle change with the curve deform modifier is when a vgroup is used: the mesh bounds were being calculated based on the verts in the group (ignoring their weight).
Now ignore verts weighted at 0.
Setting the 3d cursor in perspective mode would keep the cursor behind the viewport,
now check if the cursor is begind the viewport and use the orbit location to set the cursor depth rather then the existing plane.
also made all other exporters do this.
Made some internal changes.
- moved path functions from bpy.utils to bpy.path (similar to os.path)
- added functions...
bpy.path.ensure_ext(path, ".ext", case_sensitive=False) # simple function to ensure the extension is set.
bpy.path.resolve_ncase(path) # useful for importing scenes made on windows where the path case doesnt match the files.
- flip option now flips faces rather then flipping loop order. Now it can copy vertex data in chunks the size of the original vertex count.
- converted macro's to static func's and some general cleanup.
poll() function is now a static method in python, this is more correct, matching C where the operator is not created to run poll.
def poll(self, context): ...
is now...
@staticmethod
def poll(context): ...
Pythons way of doing static methods is a bit odd but cant be helped :|
This does make subclassing poll functions with COMPAT_ENGINES break, so had to modify quite a few scripts for this.
The BGE was getting the namespace dict directly from __main__ which conflicts
with my recent fix to get the pickle module working which to overwrote the __main__ module on script execution.
Simple fix is to have the BGE and Blender use the same method of getting namespaces.
Renamed CreateGlobalDictionary() to bpy_namespace_dict_new() and moved into bpy_internal_import.c
pickle still wont work in the BGE since we make a copy of __main__ namespace but for speed would rather not have to replace the __main__ module many times per second.
- remove brush array for each Paint struct, just use a single brush pointer.
- removed rna function based template filtering.
- filter brushes using a flag on the brush and the pointer poll function.
- set the brushes using a new operator WM_OT_context_set_id().
TODO
- remake startup.blend, currently brush groupings are lost.
- rewrite WM_OT_context_set_id() to use rna introspection.
* add support for LCMS (disabled by default, set WITH_LCMS to true to enable it)
* fixed typo that prevented TIFF support to be properly enabled
* enable ray optimization by default (scons and cmake already did this)
* fixed building with libsndfile on darwin (disabled by default)
* quicktime: use audaspace headers from $(NAN_AUDASPACE)/include instead of intern
* gameengine: add -DWITH_FFMPEG to compiler flags when building with ffmpeg support
notes,
- Use our own callback which doesnt exit() blender.
- Hard coded 'MONOSCNR.ICM' is bad, should this be a user preference or stored per image?
- imb->crect was being set to imb->rect in some cases, disable this because its possible 'rect' gets reallocated and crect becomes freed memory.
- when crect cant be created draw pink checkers, so users dont get confused if color correction isnt working. (previously would draw the uncorrected image, if it didnt crash)
replace some long duplicated, ifdef'd if statements for image extension.
- new function: BLI_testextensie_array(), can take an array of extensions.
- define extension arrays: imb_ext_image, imb_ext_movie, imb_ext_sound - we could have more of these.
- removed amiga extensions iff and lbm
- fix for reload (f8) crashing, missing incref when creating the script namespace.
- store the module names rather then the modules for reloading incase the modules get out of date.
- remove scons option WITH_BF_FHS, its not needed anymore.
- comment WITH_BF_DOCS, was using epydocs which we dont use now.
- blenderlite target was broken, always using openmp.
- building without python wasnt working.
- fixed some warnings.
- more strict warnings for gcc/unix, still <50 for a clean build.
- install files to /usr/local/share/blender/2.53 rather then /usr/local/share/blender/.blender
- removed the immediate option from C/api and now store in python only, when python loads modules it sets it to False.
- unloading a module would clear the entire TypeMap for all modules, only remove the module types that is being unloaded.
- added some checks for bad class registering, report errors rather then crashing.
* Created awesome filter classes :)
* Made all filter effects use the filter classes instead of having the same implementation everywhere.
* Added a Python API for LTI IIR filters.
* Fixed a warning in creator.c that was introduced when adding game autoplay.
from Dan Eicher (dna)
- image.gl_load() was using GL_UNSIGNED_INT rather then GL_UNSIGNED_BYTE channel type.
- changed image.gl_load() to use the image clamp settings (patch had this as an extra argument).
recent commit cleared the __main__ namespace once a script finished which meant classes defined there would loose their namespace.
now inset a new __main__ module into sys.modules for every script that runs, any classes that are registered will hold a reference to that modules namespace.
[#23108] bpy.ops.object.origin_set(type='GEOMETRY_ORIGIN') dosen't work in console
[#23115] Crash when moving armature origin
- setting the armature in editmode would leave editdata in some cases.
- transforming selected linked objects to account for the movement of the obdata was only done for meshes, now do for curves and text3d.
- added utility functions for getting curve & mesh bounds.
- text3d moving center wasn't working at all.
- changed drawobject.c to use BLI_math funcs in more places.
- remove some unused code from operator object.origin_set.
The problem was that typical lift values (0.5 - 1.5, in our case ) would over saturate shadows so that even minor adjustments would give unusable results.
tweaking the input lift to compensate for this helped with the shadows but would loose the color adjustments for the mid-tones.
* Deleted space_buttons.py file as I doubt that these buttons will be done in python. File was not used anyway.
* Deleted some ifdef checks from space_buttons.c for the py header.
- disable this tool if edge mode isnt enabled using its poll function. Also fixed a bug where it would de-select the last active edge.
- made view3d grid drawing use GL_LINES's for less context switching.
BL_ArmatureChannel.rotaion_euler -> BL_ArmatureChannel.rotation_euler
Making the docs match the code:
BL_ArmatureChannel.rotation -> BL_ArmatureChannel.rotation_quaternion
BL_ArmatureChannel.euler_rotation -> BL_ArmatureChannel.rotation_euler
from Dan Eicher (dna)
elem = color_ramp.elements.new(position=0.3)
color_ramp.elements.remove(elem)
- Modified the patch to make generic functions for adding and removing (inline code was in 3 different places)
Fixed by adding a 'slope' parameter to curvemap_reset() to mirror curve presets around Y axis.
Also removed curve preset with 'random' icon, wasn't doing what it looked like it should,
this was intended only for hue correct node anyway.
* Changed rotation brush to not scale down the rotation angle; easier to control this way (and works the same as anchored brush rotation.)
Note: rotate brush seems to work much better with USE_ORIGINAL_NORMAL, this should probably be made the default, if not forced on.
- the __main__ modules namespace was initialized cleanly but left dirty, now restore when finished executing a script incase a module uses this later.
- made the interactive console use the __main__ modules namespace.
- __import__("__main__").__dict__ will now always match the current scripts namespace. (which is what pickle expects).
- __builtins__ as a module rather then a dict from PyEval_GetBuiltins() acts slightly differently, use the module to follow python.
- exceptions in the __init__ functions were not being checked for and segfaulting
- avoid creating a new BPy_StructRNA instance per function call, use the existing one if the type matches.
Partial revert for commit r 27946
Empty/axis xyz text is now purely aligned to object space. Previous 3d view matrix manipulation
stuff that I added wasn't correct, and causing more problems than it solved. Perhaps someone
can tweak this later to be fixed size/screen aligned, but for now this is less annoying.
Added a brush reset operator so that a user won't need to reload the default blend to get back default brush settings
* New brush.reset operator, resets a brush based on the currently-selected tool
* Added UI button in the tools panel
TODO:
* Only resets sculpt brushes right now, other paint modes should be added
* Sculpt polish tool exists only as a Brush, not as a tool; I'd suggest we make it a tool so it can be reset to defaults too
* Animation data for meshes wasn't getting saved at all (the linked actions were, but that doesn't really count)
* Lib-linked actions from other files may not load correctly too
from Dan Eicher (dna)
--- snip ---
Adds the option to not copy python into the .blender/python directory.
Also fixes the problem of deleting the blender installed python where the blender runtime only looks for the copied python and not the system one but not entirely sure why, something to do with CMake hardcoding the PYTHONPATH and PYTHONHOME vars I suppose.
This patch only applies to the 'UNIX AND NOT APPLE' platforms but, then again, those are the only ones anyone really
cares about...or at least the only ones where using the system python is really viable.
from Ralf Hölzemer (cheleb) with my own edits to make the selected camera more clear in the camera view, this also works around the problem where you cant see the camera to select it with passepartout close to 1.0.
--- snip ---
Attached patch changes the camera representation to draw pixel- and aspectratio corrected in 3dview. It does also fix
a little issue where the camera name would jump when the title save would be (de)activated in the camera view.
- Fixed incorrect working of "from mix" insert keyblock operator property
shapekey coordinated are applying on curve's data when creating displist,
so curve's nurbs can't be used as unchanged data -- use basis keyblock data instead
- Fixed tilt damaging when loading editcurve -- made a typo in array indexes
from Justin Dailey (dail)
from the tracker
--- snip ---
In the text space after the python commands return, break, pass or yeild and hitting "Enter" for a new line,
it unindents 1 tab. However it does not do this for the continue statement.
from Justin Dailey (dail)
from the tracker
--- snip ---
In the text editor doing something like this:
print(":(")
When it goes to match the closing bracket, it will highlight the one in the string, not the first one. Also doing:
array["[index"]
will cause it to match the second [ with the closing one.
I have attached a patch to fix this issue. (See attached image to see correct highlighting)
It also works with triple quotes strings(ie """...""" or '''...''')
*Note* However, originally bracket highlighting always on even if syntax highlighting is off. The patch makes it so
it only highlights brackets when syntax highlighting is on (this is a side effect of doing the code this way, if it
was done any other way ALOT of code would have been needed to check for strings,triple quoted strings, escaped quotes,
and comments forwards and backwards). When highlighting matching brackets, the code checks the line's format string
to see if the char is in a string or comment to skip it. If syntax highlighting is turned off, the format string is
null and cannot be used,thus no bracket highlighting.
* Changed UI code to display image browser for PROP_IMAGEPATH
* Set the icon_filepath RNA property for brushes to use PROP_IMAGEPATH
* Changed preview icon drawing to ignore unset icons
* Fixed const warnings in brush RNA