nutti
69fdcea978
Docs: add API docs for gpu.capabilities
...
Adds Python API documentations for gpu.capabilities module.
Ref D12226
2021-08-17 15:04:35 +10:00
ba055493a0
Cleanup: clang-format
2021-08-17 14:46:46 +10:00
nutti
d60e28093f
Docs: add API docs for gpu.platform
...
Adds Python API documentations for gpu.platform module.
Ref D12222
2021-08-17 14:45:40 +10:00
869b84452a
Cleanup: compiler warnings
2021-08-17 14:42:12 +10:00
4dba206011
PyAPI: GPUShader: make 'uniform_vector_*' less restricted
...
Buffers larger than required may be allowed without restriction.
2021-08-16 13:57:25 -03:00
b5117660da
PyAPI: GPU Buffer: Buffer protocol support
...
The code was commented due to lack of testing and short release deadline.
2021-08-16 13:57:25 -03:00
eb278f5e12
XR: Color Depth Adjustments
...
This addresses reduced visibility of scenes (as displayed in the VR
headset) that can result from the 8-bit color depth format currently
used for XR swapchain images.
By switching to a swapchain format with higher color depth (RGB10_A2,
RGBA16, RGBA16F) for supported runtimes, visibility in VR should be
noticeably improved.
However, current limitations are lack of support for these higher
color depth formats by some XR runtimes, especially for OpenGL.
Also important to note that GPU_offscreen_create() now explicitly
takes in the texture format (eGPUTextureFormat) instead of a
"high_bitdepth" boolean.
Reviewed By: Julian Eisel, Clément Foucault
Differential Revision: http://developer.blender.org/D9842
2021-08-16 11:46:09 +09:00
c9a9d5332b
PyAPI: GPU: Expose builtin shaders
...
Expose `3D_POLYLINE_SMOOTH_COLOR` and
`3D_POLYLINE_FLAT_COLOR` builtins.
Requested by addon developers.
2021-08-11 11:39:51 -03:00
d6ca7ab20e
Cleanup: make format
2021-08-04 19:24:19 -04:00
Gottfried Hofmann
c8004ab407
Expose Color Management as argument for gpu.types.GPUOffScreen.draw_view3d()
...
Fix for https://developer.blender.org/T84227
The problem was that https://developer.blender.org/rBe0ffb911a22bb03755687f45fc1a996870e059a8 turned color management for offscreen rendering off by default, which makes it non-color-managed in some cases. So the idea here is that script authors get the choice wether they want color managed non-color-managed output. Thus this patch introduces a new argument do_color_management as a bool to gpu.types.GPUOffScreen.draw_view3d().
Reviewed By: jbakker
Differential Revision: https://developer.blender.org/D11645
2021-08-04 11:20:22 +02:00
3c50687073
Fix gpu.types.GPUTexture crash when the size argument was too big
...
Missing length check on the size argument before copying it
into a fixed size buffer.
2021-07-29 14:11:37 +10:00
58eacb8e7c
Cleanup: pass sizeof array element to PyC_AsArray
...
Replace the is_double argument which was only used for single/double
precision floats.
This allows supporting different sized int types more easily.
2021-07-27 22:36:01 +10:00
e77a1dc6b0
Fix name used when parsing arguments
2021-07-22 15:29:09 -03:00
1b44b47f69
PyGPU: new method 'GPUFrameBuffer.read_depth'
...
Method requested by users in order to port addons to new API.
2021-07-22 15:17:48 -03:00
c3a400b73f
Cleanup: use single back-tick quoting in comments
...
While doxygen supports both, conform to our style guide.
Note that single back-tick's are already used in a majority of comments.
2021-07-20 22:58:14 +10:00
nutti
695e025c82
Docs: Fix minor incorrect syntax errors
...
This patch fixes the incorrect syntax in documentations.
Reviewed By: Blendify
Differential Revision: https://developer.blender.org/D11822
2021-07-07 19:41:46 -04:00
f1e4903854
Cleanup: full sentences in comments, improve comment formatting
2021-06-26 21:50:48 +10:00
6570159929
Cleanup: update clang-format so PyObject_HEAD indents properly
2021-06-24 17:12:04 +10:00
4b9ff3cd42
Cleanup: comment blocks, trailing space in comments
2021-06-24 15:59:34 +10:00
c73be23e17
Revert "Fix T89204: slow repeated rendering with GPUOffscreen.draw_view3d"
...
This reverts commit d03b26edbd . There is some
refresh issue that needs to be solved before this can be enabled.
2021-06-17 02:06:26 +02:00
d03b26edbd
Fix T89204: slow repeated rendering with GPUOffscreen.draw_view3d
...
Cache the GPUViewport so the framebuffers and associated textures are not
reallocated each time.
2021-06-16 20:19:34 +02:00
f29a738e23
PyAPI: use keyword only arguments
...
Use keyword only arguments for the following functions.
- addon_utils.module_bl_info 2nd arg `info_basis`.
- addon_utils.modules 1st `module_cache`, 2nd arg `refresh`.
- addon_utils.modules_refresh 1st arg `module_cache`.
- bl_app_template_utils.activate 1nd arg `template_id`.
- bl_app_template_utils.import_from_id 2nd arg `ignore_not_found`.
- bl_app_template_utils.import_from_path 2nd arg `ignore_not_found`.
- bl_keymap_utils.keymap_from_toolbar.generate 2nd & 3rd args `use_fallback_keys` & `use_reset`.
- bl_keymap_utils.platform_helpers.keyconfig_data_oskey_from_ctrl 2nd arg `filter_fn`.
- bl_ui_utils.bug_report_url.url_prefill_from_blender 1st arg `addon_info`.
- bmesh.types.BMFace.copy 1st & 2nd args `verts`, `edges`.
- bmesh.types.BMesh.calc_volume 1st arg `signed`.
- bmesh.types.BMesh.from_mesh 2nd..4th args `face_normals`, `use_shape_key`, `shape_key_index`.
- bmesh.types.BMesh.from_object 3rd & 4th args `cage`, `face_normals`.
- bmesh.types.BMesh.transform 2nd arg `filter`.
- bmesh.types.BMesh.update_edit_mesh 2nd & 3rd args `loop_triangles`, `destructive`.
- bmesh.types.{BMVertSeq,BMEdgeSeq,BMFaceSeq}.sort 1st & 2nd arg `key`, `reverse`.
- bmesh.utils.face_split 4th..6th args `coords`, `use_exist`, `example`.
- bpy.data.libraries.load 2nd..4th args `link`, `relative`, `assets_only`.
- bpy.data.user_map 1st..3rd args `subset`, `key_types, `value_types`.
- bpy.msgbus.subscribe_rna 5th arg `options`.
- bpy.path.abspath 2nd & 3rd args `start` & `library`.
- bpy.path.clean_name 2nd arg `replace`.
- bpy.path.ensure_ext 3rd arg `case_sensitive`.
- bpy.path.module_names 2nd arg `recursive`.
- bpy.path.relpath 2nd arg `start`.
- bpy.types.EditBone.transform 2nd & 3rd arg `scale`, `roll`.
- bpy.types.Operator.as_keywords 1st arg `ignore`.
- bpy.types.Struct.{keyframe_insert,keyframe_delete} 2nd..5th args `index`, `frame`, `group`, `options`.
- bpy.types.WindowManager.popup_menu 2nd & 3rd arg `title`, `icon`.
- bpy.types.WindowManager.popup_menu_pie 3rd & 4th arg `title`, `icon`.
- bpy.utils.app_template_paths 1st arg `subdir`.
- bpy.utils.app_template_paths 1st arg `subdir`.
- bpy.utils.blend_paths 1st..3rd args `absolute`, `packed`, `local`.
- bpy.utils.execfile 2nd arg `mod`.
- bpy.utils.keyconfig_set 2nd arg `report`.
- bpy.utils.load_scripts 1st & 2nd `reload_scripts` & `refresh_scripts`.
- bpy.utils.preset_find 3rd & 4th args `display_name`, `ext`.
- bpy.utils.resource_path 2nd & 3rd arg `major`, `minor`.
- bpy.utils.script_paths 1st..4th args `subdir`, `user_pref`, `check_all`, `use_user`.
- bpy.utils.smpte_from_frame 2nd & 3rd args `fps`, `fps_base`.
- bpy.utils.smpte_from_seconds 2nd & 3rd args `fps`, `fps_base`.
- bpy.utils.system_resource 2nd arg `subdir`.
- bpy.utils.time_from_frame 2nd & 3rd args `fps`, `fps_base`.
- bpy.utils.time_to_frame 2nd & 3rd args `fps`, `fps_base`.
- bpy.utils.units.to_string 4th..6th `precision`, `split_unit`, `compatible_unit`.
- bpy.utils.units.to_value 4th arg `str_ref_unit`.
- bpy.utils.user_resource 2nd & 3rd args `subdir`, `create`
- bpy_extras.view3d_utils.location_3d_to_region_2d 4th arg `default`.
- bpy_extras.view3d_utils.region_2d_to_origin_3d 4th arg `clamp`.
- gpu.offscreen.unbind 1st arg `restore`.
- gpu_extras.batch.batch_for_shader 4th arg `indices`.
- gpu_extras.batch.presets.draw_circle_2d 4th arg `segments`.
- gpu_extras.presets.draw_circle_2d 4th arg `segments`.
- imbuf.types.ImBuf.resize 2nd arg `resize`.
- imbuf.write 2nd arg `filepath`.
- mathutils.kdtree.KDTree.find 2nd arg `filter`.
- nodeitems_utils.NodeCategory 3rd & 4th arg `descriptions`, `items`.
- nodeitems_utils.NodeItem 2nd..4th args `label`, `settings`, `poll`.
- nodeitems_utils.NodeItemCustom 1st & 2nd arg `poll`, `draw`.
- rna_prop_ui.draw 5th arg `use_edit`.
- rna_prop_ui.rna_idprop_ui_get 2nd arg `create`.
- rna_prop_ui.rna_idprop_ui_prop_clear 3rd arg `remove`.
- rna_prop_ui.rna_idprop_ui_prop_get 3rd arg `create`.
- rna_xml.xml2rna 2nd arg `root_rna`.
- rna_xml.xml_file_write 4th arg `skip_typemap`.
2021-06-09 03:05:44 +10:00
2b660e825b
Fix T88365: GPUTexture.read returning a buffer with wrong size
...
The pixel components were not being considered.
2021-05-18 10:01:29 -03:00
ea7b00c64f
Fix T88345: Blender crash on GPUFrameBuffer creation
...
Misuse of indexes.
`color_attachements` has only color ones while `config` has color and depth.
2021-05-18 09:39:31 -03:00
3e6609a0dc
Cleanup: silence unused parameter warnings
...
Introduced in rB48fa029dd11b.
2021-05-15 14:13:22 -03:00
Germano Cavalcante
48fa029dd1
Python GPU: New 'platform' module
...
This module exposes the platform utils defined in the GPU module in C.
This will be useful for porting existing code with `bgl` to `gpu`.
Reviewed By: fclem, brecht, campbellbarton
Maniphest Tasks: T80730
Part of D11147
2021-05-14 12:26:40 -03:00
Germano Cavalcante
3f4f109646
Python GPU: New 'capabilities' module
...
This module exposes the capabilities defined in the GPU module in C.
This will be useful for porting existing code in `bgl` to `gpu`.
Reviewed By: fclem, brecht, campbellbarton
Maniphest Tasks: T80730
Part of D11147
2021-05-14 12:26:40 -03:00
777ba780a6
Cleanup: inconsistent parameter name
2021-05-13 13:06:42 +02:00
75536b5a61
Cleanup: compiler warnings
2021-05-01 00:49:55 +10:00
2bd9a28ff8
Cleanup: Rename #if GPU_USE_PY_REFERENCES to #ifndef GPU_NO_USE_PY_REFERENCES
...
This is safer for incremental build.
And there was already a macro `GPU_USE_PY_REFERENCES` used elsewhere.
2021-04-30 11:20:39 -03:00
a711aa5b3c
Fix accidental lines removed in the last commit
2021-04-30 11:03:39 -03:00
a35d33d520
Fix gross errors in previous commit
2021-04-30 11:00:57 -03:00
2510bd3a5f
Python GPU: Add new methods to port the code templates in the manual
...
This commit adds a new API tha allow to replace the bgl API in the exemples on:
https://docs.blender.org/api/current/gpu.html
**Overview (New API):**
```
gpu.state: active_framebuffer_get
GPUFramebuffer: read_color
GPUOffscreen: texture_color
```
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D11031
2021-04-30 10:49:54 -03:00
Germano Cavalcante
04b6296e81
Python GPU: Add reference of PyObject GPU object to the GPU object itself
...
Instead of creating different python wrappers for the same GPU object,
return the same `PyObject` created earlier.
This also allows for more secure access to existing GPU objects.
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D11044
2021-04-30 10:42:13 -03:00
48c5129d1f
Fix errors in Buffer.dimensions setter
...
- Error accessing the length from a sequence.
- Error comparing a boolean to -1.
Issues introduced in 19360c2c1c
2021-04-22 12:34:26 +10:00
932b23782a
Merge branch 'blender-v2.93-release'
2021-04-21 17:15:46 -03:00
0f66dbea90
Fix wrong flag for 'GPUFrameBuffer.viewport_get'
...
`GPUFrameBuffer.viewport_get` has no args.
2021-04-21 17:15:13 -03:00
19360c2c1c
Python GPU Buffer: Add a 'setter' to Buffer.dimensions
...
The attribute `Buffer.dimensions` does not need to be readonly.
2021-04-21 17:07:11 -03:00
d5c6485372
Cleanup: clang format
2021-04-01 11:18:26 +11:00
645fc0c767
Fix build error on windows
...
Error was caused by using `#if` directive in `PyDoc_STRVAR` macro.
This partially reverts 1e4c35d910
2021-03-31 09:46:38 +02:00
1e4c35d910
PyDoc: correct sphinx syntax for gpu.state.blend_set
2021-03-31 17:42:21 +11:00
3f47df577d
Cleanup: use new BLI_assert_unreachable macro
2021-03-24 12:38:08 +11:00
b71b1ae384
Python GPU: Improve the Python GPU API documentation
...
This fixes some errors of continuity and consistency of formatting on
https://docs.blender.org/api/current/gpu.html
This also details the description of some parameters.
Differential Revision: https://developer.blender.org/D10531
2021-03-16 12:48:39 -03:00
242a278b56
Cleanup: rename offs to offscreen
2021-03-08 14:40:57 +11:00
39b86a989d
Cleanup: use const arrays
2021-03-04 16:58:03 +11:00
a40ccde405
Fix logic for calling PyObject_GC_UnTrack
...
All tracked objects need a matching un-track,
also remove redundant Py_XDECREF call.
2021-03-04 15:18:10 +11:00
Germano Cavalcante
6c6b1c015c
GPU Python: Implement gpu.texture.from_image
...
It can be useful to replace `image.bindcode` and `image.gl_load`.
Used for example in https://docs.blender.org/api/current/gpu.html#d-image
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D10458
2021-03-01 17:38:57 -03:00
5be72125bf
Cleanup: Move some utilities to 'gpu_py.h'
2021-02-24 10:58:15 -03:00
Germano Cavalcante
086d70e910
GPU Python: Use 'PyC_ParseStringEnum' to parse items
...
Currently the GPU module for python has different ways to handle enums.
- Organizing items in `PyC_StringEnumItems` arrays and parsing them with `PyC_ParseStringEnum`.
- Using dedicated functions for each type of enum (`bpygpu_ParsePrimType`, `pygpu_ParseVertCompType` and `pygpu_ParseVertFetchMode`).
Although apparently more efficient (especially `pygpu_ParseVertCompType`
which transforms strings into integers for simple comparison), these
dedicated functions duplicate functionality, increase the complexity of
the code and consequently make it less readable.
Reviewed By: campbellbarton
Differential Revision: https://developer.blender.org/D10456
2021-02-22 08:35:52 -03:00
73f4dfa3c5
Cleanup: Clang tidy else after return
2021-02-18 13:58:27 -06:00