===== Situation before this patch =====
in the current situation inside the node editor there is a properties panel (press 'n'-key). This pabel displays some information about the node, backdrop and grease pencil. The UI of the property panel is typically vertical oriented. Nodes in the other hand are not oriented in a direction. Both area's are draw via the same draw function.
With some nodes this will create not user-friendly UI. Try the color-balance for instance). The 3 color circles are drawn next to each other, it would be better to draw them below each other.
When creating more complex nodes you don't want to display all handles in the node-panel and in the properties panel. For instance fine-tuning handles you only want to appear in the property panel to reduce place in the node itself.
===== Situation after this patch =====
This patch separates the draw functions of the property panel and the node panel.
When no special draw function is created for the property panel, the draw function of the node will be used as 'fallback'
===== Impact =====
==== BKE_node.h ====
add a new uifunc (called uifuncbut) to the bNodeType struct. The definition is the same as the uifunc.
==== node_buttons.c ====
if the uifuncbut is set, call it. currently calls the uifunc method
==== drawnode.c ====
static void node_composit_set_butfunc(bNodeType *ntype). set the uifuncbut function where needed. When at the end of the method uifuncbut is still empty, set uifuncbut to the uifunc.
===== Final note =====
! PS. this is not limited to the compositor it also works for Materials and Textures !
! PPS. For other branching creating their own node-tree. Please make sure that your uifuncbut is set NULL or a valid draw function !
A mesh can consist out of multiple material. Take a character with clothing's. the skin can be a different material as the different clothing's. During compositing it is a common use-case to only do a part of the composit on only a specific material. Currently this can not be done.
In blender movies this feature is known to be implemented, but until now it never got integrated into trunk.
Proposal
With material index the Blender internal renderer will be capable of creating a buffer containing the material indexes of the first pixel-hit. This will be implemented in the same manner as the object index.
In the compositor the ID Mask node can be used to extract the information out of the Render pass.
Impact
User interface
On the properties-space the next changes will be done
Scene⇒Render layer⇒Passes⇒Material index will be added
Material⇒Options⇒Pass index will be added
DNA
Material struct will get an new field called “index”. this will be a short-type.
Material struct the field pad will be removed.
A new Render-layer pass will be added (bit 1«18)
RNA
Material RNA is updated (based on “pass index” from object)
Render layer RNA is updated (based on IndexOB)
Blender internal renderer
The Blender internal renderer will process the render pass as a copy of the Object index.
Blender compositor
The render layer input will get a new output socket called “IndexMA”
Usage
An example on how to use material index can be found at:
https://svn.blender.org/svnroot/bf-blender/trunk/lib/tests/compositing/composite_materialindex.blend
This is also example of a commit message longer than the commit itself :)
The manipulator was always using vertex selection flags, but those are only
valid in vertex mode, as selection flag flushing only happens in the direction
vertex -> edge -> face. Now use edge/face selection flags when needed.
Original patch by Jan Diederich, adapted by Pelle Johnsen. Review assistance by Daniel Tavares.
This patch adds an option to export only the selection.
Closed regions didn't always draw the (+) icon right place, confusing
for users.
Next to that, I think this icon is using a bad metaphor or visual language,
Illustrated best if you close a header in outliner or buttons. Icons are
UI widgets, for screen/editor layouts different controls can be stylized.
My preference is something that aligns visually to the seperators between
regions; for testing and hacking pleasure I've added two quick versions,
a small tabbish thing and a triangle. Enable these with debug menu,
ALT+CTRL+D, values 1 or 2.
This is simply drawn with opengl now. An image for it can be made as well.
Previews:
http://www.blender.org/bf/closed_regions1.pnghttp://www.blender.org/bf/closed_regions2.pnghttp://www.blender.org/bf/closed_regions3.png
There's other design ideas to explore as well, like making region deviders
8-10 pixels wide, with a 'drag me' dot on it or so. That takes some screen
estate though, and will require to add big editor-dividers too...
Fun stuff for the mockup-mafia to check on, we have time :)
render strands use the window matrix and window size which were both zero while baking, this caused divides by 0 and eternal malloc loop.
So set unit window matrix and dummy view size.
This is more a workaround then a fix but avoids crashing.
this bug was introduced in 2.58 (r37342), when adding filtering support to imagewrap(), the problem is boxsample was getting float values which were not wrapped as int values are.
Fix for bug found by psy-fi.
* gpu_buffers.c was using GL_ARB_vertex_buffer_object to check for VBO
support, should be using GLEW_ARB_vertex_buffer_object.
error messages on start. These were coming from initializing the SDL video
subsystem as part of Joystick init. We do not need this, as video stuff is
covered by GHOST, most likely this was conflicting.
On clicking in a non-active Blender window (when you activated others),
the mouse position of the first click was still the old position.
Problem is in GHOST; it sends out the 'activate window' event after the
mouseclick event itself. Code now checks for this case and reads the
correct mouse position.
Toggling options on the selection is better done as a generic operator.
Replace ARMATURE_OT_flags_set and POSE_OT_flags_set with WM_OT_context_collection_boolean_set and use menus to access it with specific settings.
This way its easy make a key shortcut which toggles any boolean on any collection - sequences, metaballs, objects, bones etc.
Fix for bug #27710, 'Multires lost from 2.49 file in 2.5x'
Reported by Gaia Clary.
Problem was that the old multires data didn't flush changes to
vertices out to the Multires structure on filesave. So, recent bits of
sculpting could be lost if the multires level wasn't changed before
filesave.
We already had code to deal with missing multires vertex data, which
simply copies the Mesh vertex data into the multires vertex data if it
matches the number of vertices in the highest level. Moved this code
up a bit so that we always make this copy if the numbers match up.
Was able to reproduce the bug fresh in 2.49b, and confirmed that the
fix works. However, this does not help if changes were sculpted on a
multires level other than the highest level and saved without a
subsequent level change.
- comment/remove assignments from values to themselves.
- add case break statements (no functional change but some source code checkers notice).
- fix python errors when the sculpt brush is None.