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
2017-02-09Fix: GPencil delete operators did not respect color lockingJoshua Leung
2017-01-20Fix minor glitches in GP code.Bastien Montagne
Reported by coverity scan.
2017-01-19GPencil: Add option to create blank frame in active layer onlyAntonio Vazquez
Now it is possible to select if the blank frame is created in active layer only or in all layers.
2017-01-18Fix strict compiler warning messageSergey Sharybin
2017-01-18GPencil: Avoid variable shadowingSergey Sharybin
2017-01-18Reproject Strokes - To Surface/GeometryJoshua Leung
Experimental option for the Reproject Strokes operator to project strokes on to geometry, instead of only doing this in a planar (i.e. parallel to viewplane) way. The current implementation is quite rough, and may need to be improved before it is really ready for use. Potential issues: * Loss of precision (i.e. stairstepping artifacts) from the 3D -> 2D -> 3D conversion as we don't have float version of one of the projection funcs * Jagged depth if there are gaps, since it will default back to the 3d-cursor plane if no geometry was found (instead of doing some fancy interpolation scheme) * I'm not sure if it's that useful for adapting GP strokes to deforming geometry yet...
2017-01-18Fix: Make it possible to erase strokes (on other layers) even if the active ↵Joshua Leung
layer doesn't have any frames
2017-01-18Fix: Avoid creating redundant frames when erasingJoshua Leung
Now the eraser checks if there's an active frame with some strokes in it before creating a new frame. There's no point in creating a new frame if there are no strokes in the active frame (if one exists). This still doesn't help much if there were strokes but they weren't touched though...
2017-01-18GPencil: Pressing 'B' while in 'Continuous Drawing' mode will create a blank ↵Joshua Leung
frame This is a hardcoded keymapping that just calls the "Add Blank Frame" operator introduced in the previous commit.
2017-01-18GPencil: "Add Blank Frame" operator (D+B)Joshua Leung
This operator adds a new frame with nothing in it on the current frame. If there is already a frame there, all existing frames are shifted one frame later. Quite often when animating, you may want a quick way to get a blank frame, ready to start drawing something new. Or maybe you just need a quick way to add a "placeholder" frame so that a suddenly-appearing element does not show up before its time.
2017-01-18Cleanup: Strict compiler flagsSergey Sharybin
Also seems the new file forced trailing whitespace, which goes against https://wiki.blender.org/index.php/Dev:Doc/Code_Style#Trailing_Space
2017-01-18GP Interpolation: "Remove Breakdowns" operatorJoshua Leung
To make it faster to try different interpolation curves, there's a new operator "Remove Breakdowns" which will delete all breakdowns sandwiched by normal keyframes (i.e. all the ones that the previous run of the Interpolation op created)
2017-01-18GP Interpolate Sequence: Tool settings for controlling the shape of ↵Joshua Leung
interpolation This commit introduces the ability to use the Robert Penner easing equations or a Custom Curve to control the way that the "Interpolate Sequence" operator interpolates between keyframes. Previously, it was only possible to get linear interpolation between the gp frames. Workflow: 1) Place current frame between a pair of GP keyframes 2) Open the "Interpolate" panel in the Toolshelf 3) Choose the interpolation type (under "Sequence Options") 4) Adjust settings (e.g. if you're using "Custom Curve", use the curvemap widget to define the way that the interpolation proceeds) 5) Click "Sequence" to interpolate 6) Play back/scrub the animation to see if you've got the result you want 7) If you need to make some tweaks, undo, or delete the generated keyframes, then repeat the process again from step 4 until you've got the desired result.
2017-01-18GP Interpolate: Move settings from "gp_sculpt" to a new toolsettings struct ↵Joshua Leung
- "gp_interpolate" The "gp_sculpt" settings should be strictly for stroke sculpting, and not abused by other tools. (Similarly, if other general GP tools need one-off options, those should go into the normal toolsettings->gpencil_flag) Furthermore, this paves the way for introducing new settings for controlling the way that GP interpolation takes place (e.g. with easing equations, or a custom curvemap)
2017-01-18GP Interpolate Code Cleanup (Second Round)Joshua Leung
* Reduce scope of variables * Simplify a lot of the active_gpl->actframe->...->framenum stuff * Missed some error messages
2017-01-18Code Cleanup for GP Interpolation ops (first pass)Joshua Leung
* Reshuffled some blocks of code for better ease of navigation/flow in the file * Improved some tooltips * Removed "Helper" tag from some functions that serve bigger roles * Fixed some errant formatting
2017-01-18Code Cleanup: Move GPencil Interpolation operators into their own fileJoshua Leung
The interpolation operators (and their associated code) occupied a significant portion of gpencil_edit.c (which was getting a bit heavy). So, it's best to split these out into a separate file to make things easier to handle, in preparation for some further dev work.
2017-01-16Cleanup/refactor: Add new BLI_string_util.Bastien Montagne
Things like `BLI_uniquename` had nothing, but really nothing to do in BLI_path_util files! Also, got rid of length limitation in `BLI_uniquename_cb`, we can use alloca here to avoid overhead of malloc while keeping free size (within reasonable limits of course).
2017-01-02GPencil: Per-layer option to always show onion skinningJoshua Leung
Sometimes it can be useful to be able to keep onion skins visible in the OpenGL renders and/or when doing animation playback. In particular, there are two use cases where this is quite useful: 1) For creating a cheap motion-blur effect, especially when the before/after values are also animated. 2) If you've animated a shot with onion skinning enabled, the poses may end up looking odd if the ghosts are not shown (as you may have been accounting for the ghosts when making the compositions). This option can be found as the small "camera" toggle between the "Use Onion Skinning" and "Use Custom Colors" options.
2016-12-17Fix T50264: Stroke is not painted when append Grease Pencil blockAntonio Vazquez
When append a datablock the default brushes were not created and only were created when draw new strokes. Now the default brushes are created when draw strokes if necessary.
2016-12-08Fix T49872: 3D cursor places with camera shift in ortographic modeJulian Eisel
2016-12-01GPencil Sculpt: Numpad keys now work when doing sculpt sessions (i.e. when ↵Joshua Leung
the operator is run using wait_for_input=True) This just brings it in line with the drawing operator
2016-11-27Typo fixJoshua Leung
2016-11-20Fix T50081: Grease pencil parented rotation problemAntonioya
When the parent object matrix change after the layer was parented, the inverse matrix for strokes must be updated when editing strokes or the transformations will be wrong.
2016-11-11GPencil: Create brush set when create new datablock or layerAntonioya
Before this commit, the brush set was created with the first stroke drawing, but if the user creates the datablock or the layer manually (not drawing) the brush list was empty. This commit complement the python fix by Sergey: https://developer.blender.org/rB89c1f9db37cc1becdd437fcfdb1877306cc2b329
2016-10-22GPencil: New option to lock strokes to axisAntonioya
Now, the strokes can be locked to a plane set in the cursor location. This option allow the artist to rotate the view and draw keeping the strokes flat over the surface. This option is similar to surface option but doesn't need a object. The option is only valid for 3D view and strokes in CURSOR mode.
2016-10-06GPencil: Fix interpolate stroke keymap conflict with sculptAntonioya
The initial idea was to use Ctrl+E to interpolate stroke because this is similar to Pose breakdown, but the Ctrl+E keymap is used to inverse grease pencil sculpt effect. The new keymap is Ctrl+Alt+E in order to fix the conflict
2016-09-21Fix: Grease Pencil sculpting crashes when sculpting on layers without any ↵Joshua Leung
strokes Reported by @loochmunz. I've also gone through checking for and fixing other places where this was also occurring. To be included in 2.78
2016-09-19UI Messages: Consistent spelling of term "data-block"Julian Eisel
Was using a bunch of different spellings, mostly "data-block" though, so went with that one (would have been my #1 choice anyway ;) )
2016-09-18BLI_listbase: Add/use utility to move link (BLI_listbase_link_move)Julian Eisel
We were calling BLI_remlink and then BLI_insertlinkbefore/after quite often. BLI_listbase_link_move simplifies code a bit and makes it easier to follow. It also returns if link position has changed which can be used to avoid unnecessary updates. Added it to a number of list reorder operators for now and made use of return value. Behavior shouldn't be changed. Also some minor cleanup.
2016-09-18GPencil: Don't show error popup when strokes can't be reordered furtherJulian Eisel
Was spawning error popup each time user tried to move a stroke higher or lower than the list allowed. We don't do that anywhere else and it's not really useful info for the user. So rather not bother her.
2016-09-18GPencil: Fix memory leak using stroke arrange OPJulian Eisel
2016-09-16GPencil: Add a new special menu for editing and replace subdivision shortcutAntonioya
Replace the W shortcut for subdivision by a new menu for edit specials in order to keep consistency in UI. Subdivision is not used all the time, so it's better assign this shortcut to menu.
2016-09-16GPencil: New subdivide stroke operatorAntonioya
In some situations the artist needs to subdivide a stroke created with few points before, specially for sculpting. The subdivision is done for any pair of continuous selected points in the same stroke. The operator can be activated in edit mode with W key and has a parameter for number of cuts.
2016-09-11Revert "GPencil: Add IFACE_ macro to some strings"Antonioya
This reverts commit b50a5b92c15e0f110ca978352c2ba59bc3e97dd3 because BKE_report functions are already automatically handled by translation system.
2016-09-11GPencil: Add IFACE_ macro to some stringsAntonioya
2016-09-11GPencil: Change interpolate stroke factorAntonioya
Now the factor works similar to other Blender areas to make the factor more consistent for artists. The value 0% means equal to original stroke, 100% equal to final stroke (50% means half way). Any value below 0% or greater than 100% create an overshoot of the stroke.
2016-09-08Fix strict compiler warningsSergey Sharybin
2016-09-07GP Interpolation: Mark created frames as being "breakdowns"Joshua Leung
This brings this tool more in line with the Breakdowner for armature animation, with which it shares many commonalities.
2016-09-07Fix: GPencil drawing sessions now respect limits for maximum undo stepsJoshua Leung
When drawing with Grease Pencil "continous drawing" for a long time (i.e. basically, drawing a very large number of strokes), it could be possible to cause lower-specced machines to run out of RAM and start swapping. This was because there was no limit on the number of undo states that the GP undo code was storing; since the undo states grow exponentially on each stroke (i.e. each stroke results in another undo state which contains all the existing strokes AND the newest stroke), this could cause issues when taken to the extreme.
2016-09-07Code Cleanup: Deduplicate undo node freeing codeJoshua Leung
2016-09-07GPencil: New interpolate strokes operatorsAntonioya
Two new modal operators to create a grease pencil interpolate drawing for one frame or a complete sequence between two frames. For drawing the temporary strokes in the viewport, two drawing handlers have been added to manage 3D and 2D stuff. Video: https://youtu.be/qxYwO5sSg5Y The operator shortcuts are Ctrl+E and Ctrl+Shift+E. During the modal operator, the interpolation can be adjusted using the mouse (moving left/right) or the wheel mouse.
2016-08-29GPencil: Fix segment fault when undoAntonioya
When undo in UV/Image editor and press ESC key, there was segment fault in Toolsettings because the reference was missing. Now the toolsetting is loaded from context and not from local operator data.
2016-08-29Fix compilation error caused by wrong array initializationSergey Sharybin
We usually don't silence migh-be-uninitialized warning (which is the only thing which could explain setting matrix to all zeroes) so we can catch such errors when using tools like Valgrind. I don't get warning here and the initializer was wrong, so removing it. If it-s _REALLY_ needed please do a proper initialization.
2016-08-29Code Cleanup: Fixes for some issues noticed during previous fixJoshua Leung
2016-08-29Fix: GPencil Paste couldn't be used to paste strokes from one datablock to ↵Joshua Leung
another This was because the poll callback was checking for the presence of an active layer. If you just create an empty datablock and try to paste, nothing would happen. However, this check was kindof redundant anyway, as the operator would add a layer for you if it didn't find one.
2016-08-29Small optimisation: Only calculate the inverse_diff_mat once per stroke ↵Joshua Leung
instead of for every point (Later this calculation should be moved into the iteration macro instead, since it only needs to be applied once per layer along with the diff_mat calculation)
2016-08-29GPencil: "Reproject Strokes" operatorJoshua Leung
A common problem encountered by artists was that they would accidentally move the 3D cursor while drawing, causing their strokes to end up in weird places in 3D space when viewing the drawing again from other perspectives. This operator helps fix up this mess by taking the selected strokes, projecting them to screenspace, and then back to 3D space again. As a result, it should be as if you had directly drawn the whole thing again, but from the current viewpoint instead. Unfortunately, if there was originally some depth information present (i.e. you already started reshaping the sketch in 3D), then that will get lost during this process. But so far, my tests indicate that this seems to work well enough.
2016-08-29Code Cleanup: Just some fixes for whitespace/typos that I noticed while ↵Joshua Leung
working on other stuff
2016-08-27Code Cleanup (Non-functional tweaks)Joshua Leung
General reshuffling of defines and spacing/brace usage for consistency. In particular: * When defining types, don't mix pointers and non-pointer types on same line to avoid confusion * As much as possible, have all defines at the top of each block instead of scattered haphazardly throughout the code