Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-08-14Fix crash on texture painting after new scene is added, reported byAntony Riakiotakis
kopias on irc, thanks.
2014-08-13SpellingCampbell Barton
2014-08-12Fix part of T41406Antony Riakiotakis
Attempt to make soften brush faster by allowing non-symmetric kernels. Projective painting supports those naturally but for 2D painting there's a small hack to avoid shifting of the texture. Not totally correct but it works for now.
2014-08-12Support table erasor in projective painting as well.Antony Riakiotakis
2014-07-24Change to previous commit, allow tweaking name at creation time.Antony Riakiotakis
2014-07-24UI cleanup:Antony Riakiotakis
New layer in texture painting will now allow entering image parameters, similar to new image.
2014-07-23Updates/fixes for new UI messages.Bastien Montagne
2014-07-21GSOC 2013 paintAntony Riakiotakis
Yep, at last it's here! There are a few minor issues remaining but development can go on in master after discussion at blender institute. For full list of features see: http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.72/Painting Thanks to Sergey and Campbell for the extensive review and to the countless artists that have given their input and reported issues during development.
2014-06-23Add ED_paint.h, split out ED_sculpt.hCampbell Barton
also rename some functions to match our convention
2014-05-14Code cleanup: indentationCampbell Barton
2014-05-13Fix T39196, Dynamic Topology Undo Applied to Wrong MeshAntony Riakiotakis
Undoing nodes that do not belong to the current object will cause the saved bmesh log entry to be reverted instead. This entry can belong to another object though. This is easy to fix by enforcing name matching (this was borrowed by edit mode but can definitely be improved) between current object name and undo node name and deleting older entries. However there are complications. Deleting dyntopo entries in this way can leave a brush stroke as first dyntopo log entry. This can present issues if we attempt to delete that entry since it's deleted mesh elements may now have had their ids (which would still be valid at the time) cleaned up. This can result in crashing if we attempt to resculpt on the mesh. To fix this I have disabled releasing the deleted entries. This entanglement between bm_log and undo is quite volatile but I hope the system works better now. Also minor cleanup, fix unneeded check warning
2014-04-30Code cleanup: remove unused includesCampbell Barton
Opted to keep includes if they are used indirectly (even if removing is possible).
2014-04-30Code cleanup: remove redundant CTX callsCampbell Barton
2014-04-13Cleanup:Antony Riakiotakis
Naming: Change pressure to size_pressure, it notes correctly that this value is updated and expected to be used for size updating only. Change name of cursor function and since it is used for uv sculpting only now move to the relevant file. Also cleanup unneeded functionality from function. Stroke: Separate updating of stroke variables to invariants (updated when stroke->init = false) and variants.
2014-04-11Code cleanup: use boolCampbell Barton
2014-04-01Code cleanup: remove TRUE/FALSE & WITH_BOOL_COMPAT defineCampbell Barton
2014-03-23Use eyeliner cursor for sampling. Thanks to Thomas Beck for theAntony Riakiotakis
suggestion :)
2014-03-14Fix T39156 part 2: Add support for image paint operations in undoAntony Riakiotakis
history operator (Ctrl + Alt + Z). This will only show paint operations now while in an image paint mode. The caveat is that user can delete previous paint operations too (even on images not on the canvas currently) so it needs some care. This is consistent with regular undo behaviour though. Sculpting also suffers from lack of Undo history support, this will be added in a separate commit.
2014-02-28Fix T38885: missing image editor paint brush updates after recent UI changes.Brecht Van Lommel
2014-02-26Paint API: add BKE_paint_select_elem_test: to check on paint selectionCampbell Barton
2014-02-11Code cleanup: fix a few visual studio compiler warnings.Brecht Van Lommel
2014-02-05Fix for vpaint_stroke_test_start returning operator flags, not boolCampbell Barton
also use bools for paint callbacks
2014-01-03Fix T38045: Clone stamp crashesSergey Sharybin
Issue seems to be caused by thread-unsafe IMB_freeImBuf. Now use generic BKE_image_release_ibuf to de-reference image buffer which was acquired from image datablock.
2013-12-13Image cache rewrite to using generic movie cacheSergey Sharybin
Summary: Behaves very much the same as cache for Movie Clip datablock: - Image now have `MovieCache *cache` field which replaced legacy `ListBase ibufs`. This allows image datablock to easily keep of image buffers which are owned by itself. This field isn't saved to the file and getting restored on undo steps. However, cache limit is global for movies, sequences and image datablocks now. So overall cached image buffers size will not go above cache limit size in user preferences. - Image buffers which are marked as BITMAPDIRTY will never be freed from the cache. - Added utility function to iterate over image buffers saved in movie cache. - Movie cache cleanup check callback now have ImBuf argument which can be used in a condition of cleanup. - Added some utility functions which replaces legacy ibufs iterations with image cache iteration which happens from inside a lock. - Fixed `image_mem_size()` which was only counting one of the buffers if both float and byte buffer present. Additional notes: - `BKE_image_get_first_ibuf()` is rather stupid, but direct access to ibufs->first was also the same stupid idea. Would consider avoid this function is another project. - There are some places which doesn't look threadsafe, but they already were not so much threadsafe anyway before. So think not a big deal with solving this later. Finally solves infinite memory usage by image sequences! :) Reviewers: brecht, campbellbarton Reviewed By: brecht CC: sebastian_k Differential Revision: http://developer.blender.org/D95
2013-12-10Refactoring/cleanup, borrowed from soc-2013-paint branch.Antony Riakiotakis
* Move symmetry options to the paint struct (where all paint systems can make use of it) * Rename draw_pressure to stroke_active. This is what is really checked on those occasions that this is used. Also move turning on/off of this option to the stroke level and avoid doing it on every stroke system. * Rename BRUSH_RESTORE_MESH to BRUSH_DRAG_DOT. In image painting this won't restore any mesh, so better have a name that is directly linked to what the flag actually does.
2013-12-08Fix T37326 inversion of image channels did not do an undo push. Now only do ↵Antony Riakiotakis
an undo if we are in image paint mode and use the paint undo stack. Also added missing GPU update.:
2013-10-31remove return argument from wmOperatorType->cancel, was only ever returning ↵Campbell Barton
OPERATOR_CANCELLED.
2013-10-16style cleanupCampbell Barton
2013-10-15Final fix for #36905. Enforce redraw of window once before sampling.Antony Riakiotakis
Thanks to Brecht for the solution!
2013-10-11Fix #36905: backport of fix in soc-2013-paint. This commit ensures that ↵Antony Riakiotakis
during color sampling the cursor of the current brush is disabled. This avoids sampling of the brush cursor for really small brushes. Only caveat is that if operator exec is called then cursor might be visible in new sample location. This is not so common though.
2013-10-09Paint cursor overlays: Delete the cursor texture overlay resources whenAntony Riakiotakis
exiting a paint mode.
2013-09-30Fix "Sample Color" not working in vertex paint mode.Irie Shinsuke
The issue was discussed at blender.org forum: http://www.blender.org/forum/viewtopic.php?t=28158
2013-09-30revert r36440, own commit, no longer needed because of changes to the keymap.Campbell Barton
resolves [#36860] sampling color in face select mask
2013-08-29follow up on r59628, setting modes now ensures that other modes exit first,Campbell Barton
this was only done in some cases before and it was possible to enable weightpaint+sculpt at the same time when enabling sculpt by directly running the mode switching operator. add generic function to ensure a compatible mode before entering the new mode (added to each operators exec function)
2013-06-13Fix #35634: weight paint did not do z-buffer culling anymore on Windows ↵Brecht Van Lommel
after recent change to size of bool.
2013-06-06style cleanupCampbell Barton
2013-05-16Fix #35372: sculpting/painting long brush strokes with small brush size wouldBrecht Van Lommel
take up a lot of memory. The operator was recording an array with all stroke points. However this was not particularly useful, only sculpt mode had exec() implemented to redo the stroke, but it was not registering the operator anyway so there was no way to access the data after the operator was done. So no one was using this anyway. I did now implement exec for the paint modes so you can call the operator with stroke points from a script.
2013-05-15Attempt to fix #35057 and #35372: slow texture painting performance.Brecht Van Lommel
After the paint refactoring for 2.67, the OpenGL texture was getting updated for every stroke point, rather than once for every redraw. With a small brush radius and low spacing the number of stroke points can be quite large, which might have a big performance impact depending on the graphics card / drivers. Also for 2D image paint, avoid redrawing the button panels and properties editor during painting. There is another possible cause for slowdowns with 3D texture painting which was not fixed. Projection painting is creating and destroying threads for every stroke point. Depending on the CPU/OS there might be a lot of overhead in doing that if the brush size is small.
2013-05-15Fix part of #35372: distorted strokes when painting zoomed out with a small ↵Brecht Van Lommel
brush size. Interpolated mouse coordinates should not get rounded to integers.
2013-05-01style cleanupCampbell Barton
2013-04-30More image painting fixes:Brecht Van Lommel
* 2D image painting support for masking to limit the max contribution of a stroke to a pixel, to get it working compatible with projection painting. Not strictly a bugfix, but the inconsistency here was annoying. * Fix python errors in Texture Mask panel in image editor, was missing overlay options. * Clamp paint mask to 0..1 in case some texture exceeds it, this could give black pixels due to integer overflow.
2013-04-14code cleanup: rename BKE_tessmesh -> BKE_editmesh, rename ↵Campbell Barton
EditDerivedBMesh.tc -> em. ('tc' is odd name which isn't used elsewhere).
2013-04-12Paint refactoring commit, non-disruptive (in theory :p)Antony Riakiotakis
* Fix precision overflow issue with overlay previews, * Expose alpha mask mapping to UI (still not functional but coming soon). * More overlay refactoring: Overlay now does minimal checking for texture refresh. Instead, we now have invalidation flags to set an aspect of the brush overlay as invalid. This is necessary because this way we will be able to separate and preview different brush attributes on the overlays, using different textures: These attributes/aspects are: Primary texture (main texture for sculpt, vertex, imapaint) Secondary texture (mask/alpha texture for imapaint) Cursor texture (cursor texture. It involves brush strength and curves) Modified the relevant RNA property update functions and C update callback functions to call the relevant cursor invalidation functions instead of checking every frame for multiple properties. Properties that affect this are: Image changes, if image is used by current brush, Texture slot changes, similarly Curve changes, Object mode change invalidates the cursor Paint tool change invalidates the cursor. These changes give slightly more invalidation cases than simply comparing the relevant properties each frame, but these do not occur in performance critical moments and it's a much more elegant system than adding more variables to check per frame each time we add something on the system.
2013-04-11Fix #34954, due to hardcoded key release it was impossible to change keyAntony Riakiotakis
for sample color and exit the operator. Also tweaked stencil to behave similarly, so it is now possible to assign custom keys to stencil control.
2013-03-31Changes to Stencil control:Antony Riakiotakis
* Add a poll function that only activates the operator when a stencil brush is active * Change shortcuts to RMouse - translate, Shift - RMouse Scale, Ctrl - RMouse, rotate. MUCH faster and simpler workflow. * Change shortcut of colour sampling to S. Sampling is important but not as important as warranting the Right Mouse button. * Add a notifier so that toolbar gets updated texture rotation when rotating the stencil Also, * Slight rearrangement of options so that jittering is more accessible (easily more often used than smooth stroke)
2013-03-29Support for brush overlay in texture paint mode. For the image editor,Antony Riakiotakis
the tiled overlay is still a bit off, investigating on how to better correct this, though it may well be non trivial.
2013-03-29misc minor edits.Campbell Barton
- pass string size to BLI_timestr() to avoid possible buffer overrun. - quiet warning for mingw. - include guards for windows utf conversion funcs. - fix for mistage in edge-angle-selection check. - some style cleanup.
2013-03-25Alpha mask textures porting part 1: Support for projective texturing.Antony Riakiotakis
Also add random mapping to brushes.
2013-03-19Fix: Clamp alpha to 1.0 or adding alpha in paint creates "isolines" dueAntony Riakiotakis
to integer overflow. One of the beautiful bugs that is sad to see fixed. Also remove unused timer variable
2013-03-18Merge of the PyNodes branch (aka "custom nodes") into trunk.Lukas Toenne
PyNodes opens up the node system in Blender to scripters and adds a number of UI-level improvements. === Dynamic node type registration === Node types can now be added at runtime, using the RNA registration mechanism from python. This enables addons such as render engines to create a complete user interface with nodes. Examples of how such nodes can be defined can be found in my personal wiki docs atm [1] and as a script template in release/scripts/templates_py/custom_nodes.py [2]. === Node group improvements === Each node editor now has a tree history of edited node groups, which allows opening and editing nested node groups. The node editor also supports pinning now, so that different spaces can be used to edit different node groups simultaneously. For more ramblings and rationale see (really old) blog post on code.blender.org [3]. The interface of node groups has been overhauled. Sockets of a node group are no longer displayed in columns on either side, but instead special input/output nodes are used to mirror group sockets inside a node tree. This solves the problem of long node lines in groups and allows more adaptable node layout. Internal sockets can be exposed from a group by either connecting to the extension sockets in input/output nodes (shown as empty circle) or by adding sockets from the node property bar in the "Interface" panel. Further details such as the socket name can also be changed there. [1] http://wiki.blender.org/index.php/User:Phonybone/Python_Nodes [2] http://projects.blender.org/scm/viewvc.php/trunk/blender/release/scripts/templates_py/custom_nodes.py?view=markup&root=bf-blender [3] http://code.blender.org/index.php/2012/01/improving-node-group-interface-editing/