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
2022-09-05GPU: remove 'GPU_SHADER_2D_UNIFORM_COLOR'Germano Cavalcante
The only real difference between `GPU_SHADER_2D_UNIFORM_COLOR` and `GPU_SHADER_3D_UNIFORM_COLOR` is that in the vertex shader the 2D version uses `vec4(pos, 0.0, 1.0)` and the 3D version uses `vec4(pos, 1.0)`. But VBOs with 2D attributes work perfectly in shaders that use 3D attributes. Components not specified are filled with components from `vec4(0.0, 0.0, 0.0, 1.0)`. So there is no real benefit to having two different shader versions. This will simplify porting shaders to python as it will not be necessary to use a 3D and a 2D version of the shaders. In python the new name for '2D_UNIFORM_COLOR'' and '3D_UNIFORM_COLOR' is 'UNIFORM_COLOR', but the old names still work for backward compatibility. Differential Revision: https://developer.blender.org/D15836
2022-07-29Cleanup: Move RNA path functions into own C++ fileJulian Eisel
Adds `rna_path.cc` and `RNA_path.h`. `rna_access.c` is a quite big file, which makes it rather hard and inconvenient to navigate. RNA path functions form a nicely coherent unit that can stand well on it's own, so it makes sense to split them off to mitigate the problem. Moreover, I was looking into refactoring the quite convoluted/overloaded `rna_path_parse()`, and found that some C++ features may help greatly with that. So having that code compile in C++ would be helpful to attempt that. Differential Revision: https://developer.blender.org/D15540 Reviewed by: Brecht Van Lommel, Campbell Barton, Bastien Montagne
2022-06-30Cleanup: Remove scene frame macros (`CFRA` et al.)Julian Eisel
Removes the following macros for scene/render frame values: - `CFRA` - `SUBFRA` - `SFRA` - `EFRA` These macros don't add much, other than saving a few characters when typing. It's not immediately clear what they refer to, they just hide what they actually access. Just be explicit and clear about that. Plus these macros gave read and write access to the variables, so eyesores like this would be done (eyesore because it looks like assigning to a constant): ``` CFRA = some_frame_nbr; ``` Reviewed By: sergey Differential Revision: https://developer.blender.org/D15311
2022-06-30Animation: Add GP layers in regular DopesheetAmélie Fondevilla
Grease Pencil animation channels are now also shown in the Dopesheet mode of the Dopesheet editor and in the Timeline. Grease pencil related events are now listened not only by container `SACTCONT_GPENCIL` (Grease Pencil Dopesheet), but also `SACTCONT_DOPESHEET` (main Dopesheet), and `SACTCONT_TIMELINE` (timeline). A new Animation Filter flag was added: `ANIMFILTER_FCURVESONLY`. For now this only filters out Grease Pencil Layer channels. **Implemented:** - Preview range set: now only considers selected Grease Pencil keyframes when `onlySel` parameter is true. Not only this allows the operator to work with grease pencil keyframes in main dopesheet, but it also fixes the operator in the Grease Pencil dopesheet. - Translation: allocation (and freeing) of specific memory for translation of Grease Pencil keyframes. - Copy/Paste: call to both Fcurve and GPencil operators, to allow for mixed selection. Errors are only reported when both the FCurve and GPencil functions fail to paste anything. - Keyframe Type change and Insert Keyframe: removed some code here to unify Grease Pencil dopesheet and main dopesheet code. - Jump, Snap, Mirror, Select all/box/lasso/circle, Select left/right, Clickselect: account for Grease Pencil channels within the channels loop, no need for `ANIMFILTER_FCURVESONLY` there. **Not Implemented:** - Graph-related operators. The filter `ANIMFILTER_FCURVESONLY` is naively added to all graph-related operators, meaning more-or-less all operators that used `ANIMFILTER_CURVE_VISIBLE`. - Select linked: is for F-curves channel only - Select more/less: not yet implemented for grease pencil layers. - Clean Keys, Sample, Extrapolation, Interpolation, Easing, and Handle type change: work on Fcurve-channels only, so the `ANIMFILTER_FCURVESONLY` filter is activated Graying out these operators (when no fcurve keyframe is selected) can be done with custom poll functions BUT may affect performance. This is NOT done in this patch. **Dopesheet Summary Selection:** The main summary of the dopesheet now also takes into account Grease Pencil keyframes, using some nasty copy/pasting of code, as explained [on devtalk](https://devtalk.blender.org/t/gpencil-layers-integration-in-main-dopesheet-selection-issue/24527). It works, but may be improved, providing some deeper changes. Reviewed By: mendio, pepeland, sybren Maniphest Tasks: T97477 Differential Revision: https://developer.blender.org/D15003
2022-06-07Cleanup: spelling in comments, additional white spaceCampbell Barton
2022-05-03NLA: improve visibility of action & active channelNate Rupsis
Selecting Action channel in NLA now sets the context in the N-panel. The actively selected channel is now also drawn in a different way, so that it's visible which one is selected. Old: - The NLA sidebar didn't refresh with the creation of a new action. - There was no indication of the action channel being selected. New: - NLA side bar now refreshed when keyframes are added (new action is created) - Clicking on the action channel now gives visual indication of being selected Reviewed By: RiggingDojo, sybren Maniphest Tasks: T97372 Differential Revision: https://developer.blender.org/D14820
2022-05-01Updating Graph editor channels pin tool tipNate Rupsis
Reviewed By: Blendify Maniphest Tasks: T97631 Differential Revision: https://developer.blender.org/D14766
2022-04-19Cleanup: Use correct capitalization of "F-Curve"Aaron Carlisle
2022-04-14Cleanup: Further hair to curves renamingHans Goudey
These were missed in previous passes. Also remove some logic in `draw_hair.c` that was redundant after f31c3f8114616bb8964c8e7.
2022-04-06Fix F-Curve visibility toggle disabled for library overridden rigJulian Eisel
When showing an action data-block added to a library overridden object in the Graph Editor, the visibility toggles would be disabled. Toggling the visibility should be possible still and works with the shortcuts, just the button was incorrectly disabled. Also added the usual disabled hint for the tooltip. Differential Revision: https://developer.blender.org/D14568 Reviewed by: Bastien Montagne
2022-03-29LibOverride: Massive edits to 'editable' IDs checks in editors code.Bastien Montagne
Add new `BKE_id_is_editable` helper in `BKE_lib_id.h`, that supercedes previous check (simple `ID_IS_LINKED()` macro) for many editing cases. This allows to also take into account 'system override' (aka non-editable override) case. Ref: {T95707}.
2022-03-14Auto-generate RNA-structs declarations in `RNA_prototypes.h`Julian Eisel
So far it was needed to declare a new RNA struct to `RNA_access.h` manually. Since 9b298cf3dbec we generate a `RNA_prototypes.h` for RNA property declarations. Now this also includes the RNA struct declarations, so they don't have to be added manually anymore. Differential Revision: https://developer.blender.org/D13862 Reviewed by: brecht, campbellbarton
2022-03-10Cleanup: spelling in comments & some minor clarificationsCampbell Barton
2022-03-09Cleanup: fix wrong spelling of texture and indentationBrecht Van Lommel
Contributed by luzpaz. Ref D14271, D14270
2022-02-23Cleanup: Remove repeated word in commentsCampbell Barton
2022-02-18Cleanup: Rename original curve object type enumHans Goudey
This commit renames enums related the "Curve" object type and ID type to add `_LEGACY` to the end. The idea is to make our aspirations clearer in the code and to avoid ambiguities between `CURVE` and `CURVES`. Ref T95355 To summarize for the record, the plans are: - In the short/medium term, replace the `Curve` object data type with `Curves` - In the longer term (no immediate plans), use a proper data block for 3D text and surfaces. Differential Revision: https://developer.blender.org/D14114
2022-02-11File headers: SPDX License migrationCampbell Barton
Use a shorter/simpler license convention, stops the header taking so much space. Follow the SPDX license specification: https://spdx.org/licenses - C/C++/objc/objc++ - Python - Shell Scripts - CMake, GNUmakefile While most of the source tree has been included - `./extern/` was left out. - `./intern/cycles` & `./intern/atomic` are also excluded because they use different header conventions. doc/license/SPDX-license-identifiers.txt has been added to list SPDX all used identifiers. See P2788 for the script that automated these edits. Reviewed By: brecht, mont29, sergey Ref D14069
2022-02-07Curves: Rename "Hair" types, variables, and functions to "Curves"Hans Goudey
Based on discussions from T95355 and T94193, the plan is to use the name "Curves" to describe the data-block container for multiple curves. Eventually this will replace the existing "Curve" data-block. However, it will be a while before the curve data-block can be replaced so in order to distinguish the two curve types in the UI, "Hair Curves" will be used, but eventually changed back to "Curves". This patch renames "hair-related" files, functions, types, and variable names to this convention. A deep rename is preferred to keep code consistent and to avoid any "hair" terminology from leaking, since the new data-block is meant for all curve types, not just hair use cases. The downside of this naming is that the difference between "Curve" and "Curves" has become important. That was considered during design discussons and deemed acceptable, especially given the non-permanent nature of the somewhat common conflict. Some points of interest: - All DNA compatibility is lost, just like rBf59767ff9729. - I renamed `ID_HA` to `ID_CV` so there is no complete mismatch. - `hair_curves` is used where necessary to distinguish from the existing "curves" plural. - I didn't rename any of the cycles/rendering code function names, since that is also used by the old hair particle system. Differential Revision: https://developer.blender.org/D14007
2022-02-02Fix T95397: Grease Pencil Icons do not match in Outliner vs Dope Sheet EditorAntonio Vazquez
There was an inconsistency between icons.
2021-12-08Cleanup: move public doc-strings into headers for 'editors'Campbell Barton
Ref T92709
2021-11-24Context: add accessors returning selected actions for animation editors.Alexander Gavrilov
Add a new 'selected_visible_actions' property to allow querying actions that are selected in animation related editors for use in UI and operators. The 'selected_editable_actions' variant excludes linked actions (the only reason an action can be read-only). In the Action and Shape Key editors there is only one action that is specified by the field at the top of the editor. In Dope Sheet it scans the channel rows and returns all actions related to the selected items. This includes summary items for actions and groups. In Graph Editor, it lists actions associated with selected curves. The new property is also used for Copy To Selected and Alt-Click. Ref D11803
2021-11-19Cleanup: fix typos in comments and docsBrecht Van Lommel
Contributed by luzpaz. Differential Revision: https://developer.blender.org/D13264
2021-07-30Cleanup: clang-format (re-run after v12 version bump)Campbell Barton
2021-07-07Cleanup: spelling in commentsCampbell Barton
2021-06-24Cleanup: comment blocks, trailing space in commentsCampbell Barton
2021-06-09Cleanup: redundant/unused assignmentsCampbell Barton
2021-05-21Cleanup: spellingLeon Zandman
Includes fixes to misspelled function names. Ref D11280
2021-04-21Fix T87640: Grease Pencil layer visibility/locking not synchronized from ↵Philipp Oeser
Dope Sheet to Properties Properties Editor is a bit more picky (compared to the Outliner for example) when it comes to listening to grease pencil notifiers -- it requires the action to be set. So when adding the notifier in the dopesheet from the channels (done in `achannel_setting_flush_widget_cb`), now add the `NA_EDITED` action. Maniphest Tasks: T87640 Differential Revision: https://developer.blender.org/D11025
2021-02-13Cleanup: spellingCampbell Barton
2021-02-05Cleanup: correct spelling in commentsCampbell Barton
2021-01-25Cleanup: pass 'rctf' rectangle to 2D box drawing functionsCampbell Barton
Passing 4x arguments for the rectangle, mixed in with round-box radius & color wasn't very readable. Instead, pass a `rctf` as the first argument to UI box drawing functions.
2021-01-15Nla Refactor: Split animsys_evaluate_nla()Wayde Moss
No intended functional changes. Refactors animsys_evaluate_nla() into 2 versions: animsys_evaluate_nla_for_keyframing(), animsys_evaluate_nla_for_flush() to make it clear what data is being calculated and why. Dummy strip creation has been refactored to two separate functions, animsys_create_tweak_strip() and animsys_create_action_track_strip(). Both are evaluated differently from other strips and eachother. There's no need to interweave them. A future patch D8296, generally requires both strips. ___ XXX anim_sys.c) nlatrack_find_tweaked() is a temporary work around. If anyone has any insight into this problem, help is appreciated. Reviewed by: sybren Differential Revision: http://developer.blender.org/D9696
2021-01-12Fix T81965: Library-Override Not able to edit Keyframe propertiesSybren A. Stüvel
Fix keyframe properties not being editable when animating a library-overridden datablock. The problem was that RNA pointers were created based on the datablock affected by the animation (for example an Object), instead of the datablock that contains the FCurve itself (the Action). The latter can be local to the current blend file and should thus be editable, even when the former is not. Reviewed By: mont29 Maniphest Tasks: T81965 Differential Revision: https://developer.blender.org/D10091
2020-12-18Fix T83716: Dope Sheet, incorrect scaling of channel UI elementsVincent Blankfield
Change the top coordinate of the animation channel list UI elements to `rect->ymin` so they correctly span from `rect->ymin` to `channel_height`. Some buttons in the dope sheet channels didn't scale properly with the `Keyframe Scale Factor` preferences setting. This was caused by using the `ymid` value (`ymid = BLI_rctf_cent_y(rect) - 0.5f * ICON_WIDTH`) to position the buttons that supposed to fill all vertical space in the channel (with `channel_height` height). The `ymid` value is only appropriate for the UI elements that with `ICON_WIDTH` height. Maniphest Tasks: T83716 Reviewed by: sybren Differential Revision: https://developer.blender.org/D9841
2020-11-09Animation: move group colors switch to user preferencesSybren A. Stüvel
Move the "Show Group Colors" toggle from a per-editor option to a single user preference in the Animation preferences. The Grease Pencil animation channel side panel allows picking a channel color; this now shows a message when channel colors are disabled. The old "Show Group Colors" toggle had to be set per editor, and was on by default. This meant that disabling group colors would require an action for every file, for every editor. It is very hard to select a color that works both as bone color in the 3D Viewport (needs to be bright there) as well as the channel list (needs to be dark there), most animators turn channel list colors off. Differential Revision: https://developer.blender.org/D9391
2020-10-11Cleanup: make formatAaron Carlisle
2020-10-10Cleanup: use C comments for descriptive textCampbell Barton
Follow our code style guide by using C-comments for text descriptions.
2020-10-07Fix T67776: Animation/value keyframe slider doesn't appear in dope sheetChristoph Lendenfeld
Avoid overwriting user-chosen `SACTION_SLIDERS` flag when switching the Dope Sheet editor to Shape Key mode. The Shape Key mode now ignores the flag, and always shows the sliders. The obvious limitation is that you can't hide the sliders in the Shape Key editor anymore Reviewed By: looch, sybren Differential Revision: https://developer.blender.org/D9121
2020-09-19Cleanup: use parenthesis for if statements in macrosCampbell Barton
2020-09-05Cleanup: spellingCampbell Barton
2020-08-18Cleanup: GPUState: remove double GPU_blend callsClément Foucault
2020-08-18GPUState: GPU_blend final API renamingClément Foucault
We now use GPU_blend for enabling / disabling blending and explicitly set the blend equation.
2020-08-18Cleanup: GPUState: Replace blend func separate by enumClément Foucault
2020-07-20T77086 Animation: Passing Dependency Graph to DriversSybren A. Stüvel
Custom driver functions need access to the dependency graph that is triggering the evaluation of the driver. This patch passes the dependency graph pointer through all the animation-related calls. Instead of passing the evaluation time to functions, the code now passes an `AnimationEvalContext` pointer: ``` typedef struct AnimationEvalContext { struct Depsgraph *const depsgraph; const float eval_time; } AnimationEvalContext; ``` These structs are read-only, meaning that the code cannot change the evaluation time. Note that the `depsgraph` pointer itself is const, but it points to a non-const depsgraph. FCurves and Drivers can be evaluated at a different time than the current scene time, for example when evaluating NLA strips. This means that, even though the current time is stored in the dependency graph, we need an explicit evaluation time. There are two functions that allow creation of `AnimationEvalContext` objects: - `BKE_animsys_eval_context_construct(Depsgraph *depsgraph, float eval_time)`, which creates a new context object from scratch, and - `BKE_animsys_eval_context_construct_at(AnimationEvalContext *anim_eval_context, float eval_time)`, which can be used to create a `AnimationEvalContext` with the same depsgraph, but at a different time. This makes it possible to later add fields without changing any of the code that just want to change the eval time. This also provides a fix for T75553, although it does require a change to the custom driver function. The driver should call `custom_function(depsgraph)`, and the function should use that depsgraph instead of information from `bpy.context`. Reviewed By: brecht, sergey Differential Revision: https://developer.blender.org/D8047
2020-07-03Clang-tidy: Enable braces-around-statements warningSebastian Parborg
2020-07-03Cleanup: Editors/Animation, Clang-Tidy else-after-return fixesSybren A. Stüvel
This addresses warnings from Clang-Tidy's `readability-else-after-return` rule in the `source/blender/editors/animation` module. No functional changes.
2020-06-05GPencil: Channel Lock tooltipAntonio Vazquez
After talking with UI team, we decided to change the tooltip.
2020-06-04GPencil: Fix Lock Frame Dopesheet tooltipAntonio Vazquez
The old tooltip was not clear enough
2020-04-27Merge branch 'blender-v2.83-release'Philipp Oeser
2020-04-27Fix T75519: Graph editor tooltips give false impression of the toggle stateyves
It is just a quick fix for the tooltips in the graph editor, it replaces: - "F-curve modifiers are disabled" with "Enable F-Curve modifiers" - "F-curve is visible in graph editor for editing" with "F-Curve visibility in Graph Editor". Reviewed By: billreynish Maniphest Tasks: T75519 Differential Revision: https://developer.blender.org/D7387