Commit Graph

6224 Commits

Author SHA1 Message Date
mano-wii
ffa15f4b4a Python GPU: GPUBatch and GPUShader refactor.
The changes are:
- The shader now is passed as a parameter of the batch `draw` method (batch.draw(shader)). Since the batch always has to set a shader before drawing;
- The batch methods to specify a value to a uniform have been removed. Uniforms are parameters of the program (here called shader). If you change a uniform, it changes in all batchs that use the same program;
- New methods were added to set uniforms by the shader;
- The `batch.program_set_builtin` was removed. It is a duplicate of `program_set` but without a shader object. We need the shader object to configure the uniform;

Differential Revision: https://developer.blender.org/D3752
2018-10-03 23:34:27 -03:00
Campbell Barton
07d4580f64 Gizmo: support for gizmo-group properties
This allows gizmo groups to store properties in the tool.
This makes sense for gizmo options which only control gizmo display and
don't control operator execution.

Unlike similar kinds of properties,
this isn't accessible via the gizmo-group-type instance.

For now the it's only stored in the workspace tool as can be done for
operator properties, so each instance doesn't have different settings
which would be confusing from a user perspective and complicate access
from the top-bar.

Later we could add gizmo-group properties if needed.
2018-10-02 17:03:23 +10:00
mano-wii
3aed08377d GPY Python: program_use_begin and program_use_end.
The user has to be encouraged to use the `program_set` or `program_set_builtin` before drawing.
This avoids problem with gl_context.
2018-10-01 13:58:51 -03:00
Campbell Barton
8ee4fd0bdf Cleanup: style 2018-10-01 09:20:31 +10:00
Sebastian Parborg
a16e5b8efa Cleanup: remove unused DerivedMesh code.
Differential Revision: https://developer.blender.org/D3736
2018-09-27 20:19:28 +02:00
Campbell Barton
14e7fcfdde Cleanup: warnings 2018-09-27 21:15:55 +10:00
mano-wii
da96336e5f Python GPU module: Wrap GPUIndexBuf
Differential Revision D3714
2018-09-27 00:53:45 -03:00
mano-wii
1e647a570d Python GPU module: replace PyArg_ParseTupleAndKeywords by _PyArg_ParseTupleAndKeywordsFast
part of T47811 ("for faster argument parsing").
2018-09-27 00:22:57 -03:00
Campbell Barton
77b381bd35 Merge branch 'master' into blender2.8 2018-09-26 11:42:38 +10:00
Campbell Barton
63658ae76d Cleanup: redundant include 2018-09-26 10:55:22 +10:00
mano-wii
a6b125b06f Remove unused files 2018-09-24 14:50:20 -03:00
mano-wii
9682e43bf9 BGL: Wrap glBlitFramebuffer 2018-09-24 13:12:50 -03:00
mano-wii
4323ccfa6b GPU Python API: matrix.load_projection_matrix
If the `push_projection` and `pop_projection` functions already exist, there should naturally be a way to load a projection matrix.
2018-09-21 15:07:41 -03:00
Campbell Barton
08c7733c13 Cleanup: style 2018-09-21 08:11:50 +10:00
Dalai Felinto
fb88088203 Preserve the actively bound framebuffer after using gpu.offscreen
Otherwise we cannot draw anything after drawing in the offscreen buffer
2018-09-20 21:43:08 +00:00
Dalai Felinto
425cfdd5be GPU Python API: shader.uniform_float
The existing alternative is to use a buffer and call
uniform_vector_float which is overkill for such a simple operation.
2018-09-20 19:51:06 +00:00
Dalai Felinto
e316e41f84 Typo on pydoc for uniform_int 2018-09-20 19:49:08 +00:00
mano-wii
f0149bc070 gpu.batch module: keep shader reference in batch. 2018-09-20 16:38:43 -03:00
mano-wii
9fb9604c19 gpu.shader module: Do not free builtin shaders. 2018-09-20 15:21:59 -03:00
mano-wii
9c2dc808ce gpu.shader.builtin module: Add GPU_SHADER_2D_IMAGE. 2018-09-20 13:55:43 -03:00
Campbell Barton
e4c53d9163 Missing from last commit 2018-09-20 14:57:01 +10:00
Campbell Barton
e228574417 PyAPI: correct term for class property warning 2018-09-20 14:55:07 +10:00
Brecht Van Lommel
6b433f4eb3 Merge branch 'master' into blender2.8 2018-09-19 18:20:50 +02:00
Brecht Van Lommel
a4f2ebc78d Spelling fixes in comments and descriptions, patch by luzpaz.
Differential Revision: https://developer.blender.org/D3700
2018-09-19 18:18:05 +02:00
Campbell Barton
bb3ec3ebaf BLI_utildefines: rename pointer conversion macros
Terms get/set don't make much sense when casting values.

Name macros so the conversion is obvious,
use common prefix for easier completion.

- GET_INT_FROM_POINTER  -> POINTER_AS_INT
- SET_INT_IN_POINTER    -> POINTER_FROM_INT
- GET_UINT_FROM_POINTER -> POINTER_AS_UINT
- SET_UINT_IN_POINTER   -> POINTER_FROM_UINT
2018-09-19 12:12:21 +10:00
Campbell Barton
f35e9f047a Merge branch 'master' into blender2.8 2018-09-19 12:14:36 +10:00
Alexander Gavrilov
8c87e681a5 Fix driver expression bytecode validation crash if parsing fails.
Another NULL pointer access: nothing to validate if it already failed.
2018-09-16 10:46:28 +03:00
Alexander Gavrilov
9901679ce8 Fix a crash when a driver expression evaluates to NaN.
The debug logging statement was accessing a NULL pointer.
Also happens in 2.79.
2018-09-16 09:06:57 +03:00
Campbell Barton
83d4328ce7 PyDoc: add gpu.shader
Also some syntax corrections.
2018-09-15 10:35:03 +10:00
mano-wii
1287965089 GPU module: Initial implementation of the gpu.shader submodule.
Differential Revision: https://developer.blender.org/D3688
2018-09-14 09:46:19 -03:00
Campbell Barton
09aa446100 Merge branch 'master' into blender2.8 2018-09-13 20:15:18 +10:00
Campbell Barton
254067106e PyAPI: remove operator methods that leak memory 2018-09-13 20:10:56 +10:00
Campbell Barton
aacdd28edd PyDoc: add bpy.app.icons to docs 2018-09-13 19:21:08 +10:00
Campbell Barton
af1cf00003 Merge branch 'master' into blender2.8 2018-09-13 18:19:24 +10:00
Campbell Barton
a6fc718029 PyAPI: add API call to get an operators type
Getting the instance leaks memory and was only meant to be used for
generating docs.
2018-09-13 18:16:06 +10:00
Campbell Barton
d538de90a7 Merge branch 'master' into blender2.8 2018-09-13 17:56:32 +10:00
Campbell Barton
9900addf11 Cleanup: _bpy.ops utility to lookup an operator 2018-09-13 17:47:56 +10:00
Campbell Barton
c197c210e4 PyAPI: add bpy.app.icons to sys.modules 2018-09-13 17:20:27 +10:00
Campbell Barton
76d67b4db4 Merge branch 'master' into blender2.8 2018-09-13 17:08:58 +10:00
Campbell Barton
44f719b632 Cleanup: use PyImport_GetModuleDict
Replace direct access using PyThreadState_GET
2018-09-13 17:06:07 +10:00
Campbell Barton
8d3a39ff56 Cleanup: use float name in property range function 2018-09-13 08:17:16 +10:00
mano-wii
cde66d7916 GPUVertBuf.fill: support for objects with buffer interface.
Differential Revision: https://developer.blender.org/D3684
2018-09-11 10:03:53 -03:00
mano-wii
9eb1c3f70c gpu module: close quotation marks in descriptions 2018-09-06 04:43:08 -03:00
mano-wii
5ad36c975f gpu module: retouching the description of the types. 2018-09-06 04:39:39 -03:00
Campbell Barton
fa6ed6259c Cleanup: style 2018-09-06 10:47:46 +10:00
Campbell Barton
539c140b3e Correct build errors 2018-09-06 10:47:46 +10:00
mano-wii
6d04e48539 Join the python modules gpu and _gpu into one.
Maybe it's still early to set the new drawing api for python.
But joining these two modules is an initial step.

```
>>> gpu.
        matrix
        select
        types
```
```
>>> gpu.types.GPU
                 Batch(
                 OffScreen(
                 VertBuf(
                 VertFormat(
```
The creation of a new offscreen object is now done by the `GPUOffscreen.__new__` method.

Reviewers: campbellbarton, dfelinto

Reviewed By: campbellbarton, dfelinto

Tags: #bf_blender_2.8

Differential Revision: https://developer.blender.org/D3667
2018-09-05 21:15:44 -03:00
Dalai Felinto
e8dc73a0c9 Fix GPU.offscreen to use depsgraph and updated API 2018-09-05 12:50:33 -03:00
Bastien Montagne
a43ebc63fa Merge branch 'master' into blender2.8
Conflicts:
	source/blender/blenkernel/intern/collision.c
2018-09-03 17:44:36 +02:00
Brecht Van Lommel
4da2acae3a Spelling fixes in comments and descriptions, patch by luzpaz.
Differential Revision: https://developer.blender.org/D3668
2018-09-03 16:55:01 +02:00