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-07-16PyAPI: re-enable the "bgl" module for headless buildsCampbell Barton
Instead of removing the `bgl` module, set all it's functions to stubs so importing `bgl` or any of it's members doesn't raise an error. This avoids problems for scripts that import bgl but don't call it's functions when running in background mode.
2022-07-15Fix T99706: Crash rendering with headless buildsCampbell Barton
When rendering with headless builds, show an error instead of crashing. Previously GPU_backend_init was called indirectly from DRW_opengl_context_create, a new function is now called from the window manager (GPU_backend_init_once), so it's possible to check if the GPU has a back-end. This also disables the `bgl` Python module when building WITH_HEADLESS. Reviewed By: fclem Ref D15463
2022-07-14Cleanup: Rename & refactor several F-curve functionsColin Basnett
Rename and refactor several F-curve key manipulation functions, and move them from `editors` to `blenkernel`. The functions formerly known as `delete_fcurve_key`, `delete_fcurve_keys`, and `clear_fcurve_keys` have been moved from `ED_keyframes_edit.h` to `BKE_fcurve.h` and have been renamed according to hierarchical naming rules. Below is a table of the naming changes. | From | To | | -- | -- | | `delete_fcurve_key(fcu, index, do_recalc)` | `BKE_fcurve_delete_key(fcu, index)` | | `delete_fcurve_keys(fcu)` | `BKE_fcurve_delete_keys_selected(fcu)` | | `clear_fcurve_keys(fcu)` | `BKE_fcurve_delete_keys_all(fcu)` | | `calchandles_fcurve()` | `BKE_fcurve_handles_recalc()` | | `calchandles_fcurve_ex()`| `BKE_fcurve_handles_recalc_ex()` | The function formerly known as `delete_fcurve_key` no longer takes a `do_fast` parameter, which determined whether or not to call `calchandles_fcurve`. Now, the responsibility is on the caller to run the new `BKE_fcurve_handles_recalc` function if they have want to recalculate the handles. In addition, there is now a new static private function called `fcurve_bezt_free` which sets the key count to zero and frees the key array. This function is now used in couple of instances of functionally equivalent code. Note that `BKE_fcurve_delete_keys_all` is just a wrapper around `fcurve_bezt_free`. This change was initially spurred by the fact that `delete_fcurve_keys` was improperly named; this was a good opportunity to fix the location and naming of a few of these functions. Reviewed By: sybren Differential Revision: https://developer.blender.org/D15282
2022-07-13Docs: Fix out of order parametersAaron Carlisle
Fixes T99672
2022-07-13Documentation: Update Docs for Gizmojon denning
This patch updates the documentation for arguments regarding the `Gizmo` type. - Corrected `select_id` doc for draw_preset_ functions. `-1` indicates that no selection ID is to be written, but previous docs incorrectly specified `0` instead. - Added missing doc for `target` argument for `target_set_handler` function. Reviewed by: Aaron Carlisle (Blendify) Differential Revision: https://developer.blender.org/D14834
2022-07-12Cleanup: use array for internal _bpy methodsCampbell Barton
2022-07-12Tests: add test to ensure restricted py-driver execution is workingCampbell Barton
Add internal function (only used for testing at the moment) `_bpy._driver_secure_code_test`. Add test `script_pyapi_bpy_driver_secure_eval` to serves two purposes: - Ensure expressions that should be insecure remain so when upgrading Python or making any changes in this area. - Ensure new versions of Python don't introduce new byte-codes that prevent existing expressions from being executed (happened when upgrading from 3.7, see [0]). [0]: dfa52017638abdf59791e5588c439d3a558a191d
2022-07-12Python: add opcodes for safe py-driversCampbell Barton
The following opcodes have been added, see [0] for details: - LIST_TO_TUPLE: convert a list to a tuple, use for constructing lists/tuples in some cases. - LIST_EXTEND: use for constructing lists with unpacking. - SET_UPDATE: use for constructing sets with unpacking. - CONTAINS_OP: check if `a in b` generally useful. When writing tests these op-codes where needed for basic operations and can be safely supported. Add note why dictionary manipulation op-codes have been left out. Also restrict namsepace access to anything with an underscore prefix since these may be undocumented. [0]: https://docs.python.org/3.10/library/dis.html
2022-07-11PyAPI: add Matrix.is_identity read-only attributeCampbell Barton
Add a convenient way of checking if the matrix is an identity matrix.
2022-07-08Cleanup: spelling in commentsCampbell Barton
Also move mis-placed doc-string.
2022-07-07Python: show additional context for PyDriver errors in the stderrCampbell Barton
Showing the expression alone may not be enough to track down an error evaluating a py-driver. Show information about the target ID & property in the error message as well.
2022-07-07Python: clear Py-driver variables on exitCampbell Barton
These kinds of leaks are relatively harmless, it reduces the number of un-freed data reported by valgrind on exit.
2022-07-07Cleanup: use boolean types & early exit on failure for PyDriverCampbell Barton
Also use __func__ for printing the funciton name.
2022-07-07Fix Py-driver byte code access with Python 3.11Campbell Barton
Error in [0] which assumed the struct member was renamed however byte-code access from PyCodeObject now requires an API call. Thanks to @music for pointing this out. [0]: 780c0ea097444c3be60314dffd203c099720badb
2022-07-05Python: support v3.11 (beta) with changes to PyFrameObject & opcodesCampbell Barton
- Use API calls to access frame-data as PyFrameObject is now opaque. - Update opcodes allowed for safe driver evaluation. **Details** Some opcodes have been added for safe-driver evaluation. Python 3.11 removes many opcodes - the number of accepted opcodes in Blender's listing dropped from 65 to 43) however some new opcodes also needed to be added. As this relates to security details about newly added opcodes have been noted below (see [0] for full documentation). Newly added opcodes: - CACHE: Used to control caching instructions. - RESUME: A no-op. Performs internal checks. - BINARY_OP: Implements the binary and in-place operators, replacing specific binary operations. - CALL, PRECALL, KW_NAMES: Used for calling functions, replacing some existing opcodes. - POP_JUMP_{FORWARD/BACKWARD}_IF_{TRUE/FALSE/NONE/NOT_NONE}. Manipulate the byte-code counter. - SWAP, PUSH_NULL. Stack manipulation. Resolves T99277. [0]: https://docs.python.org/3.11/library/dis.html
2022-07-05Python: add opcodes for safe py-driversCampbell Barton
New opcodes added since 3.7 meant some actions such as `len()` were disabled in safe py-driver execution. The following opcodes have been added, see [0] for details: - ROT_FOUR: similar to existing ROT_* opcodes, added v3.8. - ROT_N: similar to existing ROT_* opcodes, added v3.10. - GET_LEN: Push len(TOS) onto the stack, added v3.10. - IS_OP: for ternary operator, added v3.9. - BUILD_SLICE: access `slice` built-in, doesn't expose new functionality beyond existing `__getitem__` access. [0]: https://docs.python.org/3.10/library/dis.html
2022-07-05Python: remove invalid Py_TPFLAGS_HAVE_GC usageCampbell Barton
Blender wouldn't start with Python 3.11 because of an error in Py_TPFLAGS_HAVE_GC usage for `bpy.app.handlers.persistent`. Remove this flag as it's not necessary. Part of fix for T99277.
2022-06-23Cleanup: Clang tidyHans Goudey
Mainly duplicate includes and else after return.
2022-06-22Cleanup: remove redundant GPU headersCampbell Barton
2022-06-13Cleanup: fix various typosBrecht Van Lommel
Found via codespell -q 3 -S ./intern,./extern -L ans,ba,bording,datas,eiter,fiter,hist,inout,lod,ot,parm,parms,pixelx,pres,te Contributed by luzpaz. Differential Revision: https://developer.blender.org/D15155
2022-06-08CMake: optionally disable OBJ, STL & GPencil SVG supportCampbell Barton
The following CMake options have been added (enabled by default), except for the lite build configuration. - WITH_IO_STL - WITH_IO_WAVEFRONT_OBJ - WITH_IO_GPENCIL (for grease pencil SVG importing). Note that it was already possible to disable grease pencil export by disabling WITH_PUGIXML & WITH_HARU. This is intended to keep the lite builds fast and small for building, linking & execution. Reviewed By: iyadahmed2001, aras_p, antoniov, mont29 Ref D15141
2022-06-03Compositor: add pre/post/cancel handlers and background job infoPhilipp Oeser
Main motivation is from T54314 where there was no way to read from a Viewer image datablock after the compositor has run. The only solution there was to do a full rerender (which obviously takes much longer). Adding a handler avoids having to rerender. This uses new syntax from rBf4456a4d3c97 and also adds "COMPOSITE" as a job type that can be queried by `bpy.app.is_job_running`. NOTE: there is another issue when multiple viewers are used and these get active via RNA (compo execution is not triggered there yet -- unlike when a viewer is selected in the Editor -- this is an issue of `ED_node_set_active` vs. only `nodeSetActive`, but this will be tackled separately) Maniphest Tasks: T54314 Differential Revision: https://developer.blender.org/D15078
2022-06-02Cleanup: remove "<pep8 compliant>" from headersCampbell Barton
It can be assumed that all scripts comply with basic pep8 formatting regarding white-space, indentation etc. Also remove note in best practices page & update `tests/python/pep8.py`. If we want to exclude some scripts from make format, this can be done by adding them to `ignore_files` in: source/tools/utils_maintenance/autopep8_format_paths.py Or using `# nopep8` for to ignore for individual lines. Ref T98554
2022-06-02PyDoc: reference enum instead of inliningCampbell Barton
2022-06-02Expose background job info to PythonSybren A. Stüvel
Add `bpy.app.is_job_running(job_type)` as high-level indicator. Job types currently exposed are `WM_JOB_TYPE_RENDER`, `WM_JOB_TYPE_RENDER_PREVIEW`, and `WM_JOB_TYPE_OBJECT_BAKE`, as strings with the `WM_JOB_TYPE_` prefix removed. The functions can be polled by Python code to determine whether such background work is still ongoing or not. Furthermore, new app handles are added for `object_bake_{pre,complete,canceled}`, which are called respectively before an object baking job starts, completes sucessfully, and stops due to a cancellation. Motivation: There are various cases where Python can trigger the execution of a background job, without getting notification that that background job is done. As a result, it's hard to do things like cleanups, or auto-quitting Blender after the work is done. The approach in this commit can easily be extended with other job types, when the need arises. The rendering of asset previews is one that's likely to be added sooner than later, as there have already been requests about this. Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D14587
2022-05-31Cleanup: tabs to spaces for CMake files & sort file-listsCampbell Barton
2022-05-31PyDoc: de-duplicate enums for rna_rna.c & bpy_props.cCampbell Barton
Lists of items for bpy.props were duplicated 3 times, now all enums are defined once in rna_rna.c and referenced from bpy.props doc-strings.
2022-05-31PyAPI: add _bpy.rna_enum_items_static() for accessing internal enum dataCampbell Barton
This is method is intended for internal use (introspection for generating API docs).
2022-05-27Fix error checking the search callbackCampbell Barton
Error in [0] caused the `set` callback be checked as the search callback. [0]: 3f3d82cfe9cefe4bfd9da3d283dec4a1923ec22d
2022-05-26UI support for showing candidates for string propertiesCampbell Barton
Currently strings are used for cases where a list of identifiers would be useful to show. Add support for string properties to reference a callback to populate candidates to show when editing a string. The user isn't prevented from typing in text not found in this list, it's just useful as a reference. Support for expanding the following strings has been added: - Operator, menu & panel identifiers in the keymap editor. - WM operators that reference data-paths expand using the Python-consoles auto-complete functionality. - Names of keying sets for insert/delete keyframe operators. Details: - `bpy.props.StringProperty` takes an option `search` callback. - A new string callback has been added, set via `RNA_def_property_string_search_func` or `RNA_def_property_string_search_func_runtime`. - Addresses usability issue highlighted by T89560, where setting keying set identifiers as strings isn't practical. - Showing additional right-aligned text in the search results is supported but disabled by default as the text is too cramped in most string search popups where the feature would make sense. It could be enabled as part of other layout tweaks. Reviewed By: brecht Ref D14986
2022-05-25PyDoc: fix generated output for gpu.shaderCampbell Barton
Inclining built-in shader descriptions used the wrong indentation level. Link to the built-in shaders instead which avoids the indentation error and de-duplicates the list which is already shown on the page.
2022-05-25Cleanup: spelling, unbalanced doxy sectionsCampbell Barton
2022-05-25Cleanup: use doxy sections for mathutils typesCampbell Barton
Also minor improvements & corrections to comments.
2022-05-24Merge branch 'blender-v3.2-release'Germano Cavalcante
2022-05-24Fix GPUIndexBuf not working in pythonGermano Cavalcante
Since rBb47c5505aa37, Batchs containing GPUIndexBuf initialized via a PyObject with buffer protocol no longer work. This was because of an unsafe optimization in the GPUIndexBuf module for Python. So remove this micro-optimization.
2022-05-23Merge remote-tracking branch 'origin/blender-v3.2-release'Dalai Felinto
2022-05-23Cleanup: clarify what is scene linear color space in conversion conversionBrecht Van Lommel
* Rename ambiguous rgb to scene_linear in some places * Precompute matrices to directly go to scene instead of through XYZ * Make function signatures more consistent
2022-05-23Python API: add mathutils.Color functions to convert color spacesBrecht Van Lommel
Between scene linear and sRGB, XYZ, linear Rec.709 and ACES2065-1. And add some clarifications about color spaces in the docs. Fixes T98267 Ref T68926 Differential Revision: https://developer.blender.org/D14989
2022-05-20CMake: fix AUDASPACE disabling WITH_PYTHON for BlenderCampbell Barton
When AUDASPACE couldn't find NUMPY, it would disable WITH_PYTHON for the rest of Blender. Now setting the value globally is only done for standalone AUDASPACE builds. Now it's possible to build Blender with AUDASPACE & PYTHON but without NUMPY. While this isn't an especially important configuration to support, having Python mysteriously disabled is a hassle to troubleshoot. NOTE: extern/audaspace/CMakeLists.txt has become out sync with the original [0], it seems this is being maintained in our repository. [0]: https://github.com/neXyon/audaspace/blob/master/CMakeLists.txt
2022-05-19Cleanup: format, reduce line length & strip trailing spaceCampbell Barton
2022-05-18Merge branch 'blender-v3.2-release'Campbell Barton
2022-05-18Fix T88792: WindowManager.clipboard missing in Python API docsCampbell Barton
Support RNA types using the Py/C-API PyGetSetDef defined properties. Currently `WindowManager.clipboard` is the only instance of this.
2022-05-18PyDoc: support building full API docs on macOS & WIN32Campbell Barton
Accessing context members depended on `ctypes` to access symbols which were hidden for macOS & WIN32. Add an API call that doesn't require the symbols to be exported. This allows most symbols to be hidden on Linux, see D14971.
2022-05-18Python: log the status of '--python-use-system-env' on initializationCampbell Barton
Report when the PYTHONPATH is expected to be used to help debug Python initialization issues (see T98131).
2022-05-17Cleanup: spelling in commentsCampbell Barton
2022-05-17Cleanup: use term 'filepath' for full file pathsCampbell Barton
2022-05-13Cleanup: spelling in comments, capitalize tagsCampbell Barton
Also add missing task-ID reference & remove colon after \note as it doesn't render properly in doxygen.
2022-05-09Merge branch 'blender-v3.2-release'Bastien Montagne
2022-05-09Fix T97927: bpy.utils.units.to_string uses wrong units for velocity, ↵Bastien Montagne
acceleration, lens length, and power `TEMPERATURE` type was also missing, not only the new-ish `TIME_ABSOLUTE` one... Added a static assert on the size of the `bpyunits_ucategories_items` array, and a comment on anonymous enum of `B_UNIT_`, in the hope this won't happen again in the future.
2022-05-09Cleanup: typo in variable name.Bastien Montagne