f05b9dba26
DRW: Only change VAO if geometry changes
2019-05-22 13:29:05 +02:00
60319e25f2
GPU: Refactor GPU_batch_draw_range_ex
...
Rename it to GPU_batch_draw_advanced and use base instance when possible.
Also add GPU_batch_bind to bind the vao independantly of drawing commands.
2019-05-22 13:29:05 +02:00
7b3f64e12a
Cleanup: DRW: Remove, rename stuffs
2019-05-22 13:29:05 +02:00
6914f7125b
DRW: Do not update the view ubo for each pass
...
Only update if the view changes.
2019-05-22 13:29:05 +02:00
9f3010e1c0
DRW: DRWView: Finish refactor
2019-05-22 13:29:05 +02:00
742848843d
DRW: Add view param to DRW_culling_* functions
2019-05-22 13:29:05 +02:00
e1153c6a1a
DRW: Remove DRW_state_clip_planes_reset
2019-05-22 13:29:04 +02:00
551bbc87af
DRW: Remove DRW_state_clip_planes_set_from_rv3d
...
This should be handled by DST.view_default
2019-05-22 13:29:04 +02:00
45c085a171
DRW: Add DRWView to improve different view handling
...
This will have multiple benefit.
TODO detail benefits (culling, more explicit, handling of clipping planes)
For now the view usage is wrapped to make changes needed more progressive.
2019-05-22 13:29:04 +02:00
2b1da51b2f
Cleanup: DRW: Refactor code for better readability and simplification
...
- Remove DST.frontface and DST.backface.
- Separate uniform update into its own function draw_update_uniforms.
2019-05-22 13:29:04 +02:00
97d22e12b5
Cleanup: DRW: Remove uneeded DRWState values
...
This removes:
- DRW_STATE_TRANS_FEEDBACK
- DRW_STATE_WIRE
- DRW_STATE_POINT
2019-05-17 18:17:23 +02:00
b23af112d2
DRW: Fix warning on MSVC
2019-05-17 13:38:42 +02:00
92b4e96afe
Cleanup: DRW: Remove unused Uniform types
2019-05-14 10:57:04 +02:00
8bc8a62c57
DRW: Refactor: Use DRWCall to accumulate per instance attributes
...
This is a big change that cleanup a lot of confusing code.
- The instancing/batching data buffer distribution in draw_instance_data.c.
- The selection & drawing code in draw_manager_exec.c
- Prety much every non-meshes object drawing (object_mode.c).
Most of the changes are just renaming but there still a chance a typo might
have sneek through.
The Batching/Instancing Shading groups are replace by DRWCallBuffers. This
is cleaner and conceptually more in line with what a DRWShadingGroup should
be.
There is still some little confusion in draw_common.c where some function
takes shgroup as input and some don't.
2019-05-14 10:57:03 +02:00
0e5da91f0a
Cleanup: Remove DRWCallType
...
This simplify the rendering logic.
2019-05-14 10:57:03 +02:00
754ecd61aa
DRW: Change Procedural function to use a GPUBatch
...
This is in order to have VAO handled by thoses batches instead of using a
common VAO. Even if the VAO has no importance in these case using a batch
will help when transitioning to Vulkan.
2019-05-14 10:57:03 +02:00
b27492d078
DRW: Make Instance count not a pointer
...
Goal is still to simplify the draw manager.
2019-05-14 10:57:03 +02:00
ad0e95688d
Cleanup: DRW: Remove pointers to materials
2019-05-14 10:57:03 +02:00
642c8010b2
DRW: Remove ModelViewMatrix and ModelViewMatrixInverse
2019-05-14 10:57:03 +02:00
e2d04229c3
DRW: Remove support for NormalMatrix
2019-05-09 00:27:11 +02:00
f2f62b184c
DRW: Remove WorldNormalMatrix
2019-05-08 20:13:32 +02:00
7e380fd46a
GPU: Remove GPU_INVERSE_NORMAL_MATRIX
...
The end goal for this is to lower the number of needed matrices.
This also cleanup some uneeded transformation.
2019-05-08 20:13:32 +02:00
3d759e2b09
Cleanup: DRW/GPU: Remove eye vector uniform
2019-05-08 17:52:49 +02:00
e053f6b1d8
DRW: Copy matrix in case of ModelMatrixInverse being used
...
ob->imat is garanteed to be valid by the depsgraph.
2019-05-08 17:52:48 +02:00
820a64b9e5
DRW: Replace BLI_mempool by BLI_memblock
...
This remove a avoid the big overhead present in BLI_mempool when it is
cleared.
2019-05-08 17:49:28 +02:00
9fea65a93d
DRW: Speedup: Don't call GPU_shader_uniform_vector if not needed
...
This seems to remove a bit of overhead of going into the function even if
the uniform is not needed.
2019-05-08 17:49:28 +02:00
fb3b2ab709
Cleanup: Remove unused code in sculpt_mode, workbench and draw manager
2019-05-04 14:11:04 +02:00
102daed1f2
Cleanup: Draw Manager: remove DRW_state_invert_facing
2019-05-02 16:51:45 +02:00
e6705fad33
DRW: Add DRW_STATE_BLEND_PREMUL_UNDER
...
Just basic alpha under operation with premultiplied source.
2019-05-01 12:09:18 +02:00
63f0e150ed
Cleanup: comments (long lines) in draw
2019-05-01 10:51:10 +10:00
93c19a5a2c
Cleanup: comments (mainly long lines)
...
Comments after code can cause awkward line breaks.
2019-04-21 14:27:35 +10:00
2fb9c8ef12
Cleanup: add missing macros to clang-format
2019-04-21 04:40:16 +10:00
41d4a19865
ClangFormat: format '#if 0' code in source/
2019-04-17 08:24:14 +02:00
e12c08e8d1
ClangFormat: apply to source, most of intern
...
Apply clang format as proposed in T53211.
For details on usage and instructions for migrating branches
without conflicts, see:
https://wiki.blender.org/wiki/Tools/ClangFormat
2019-04-17 06:21:24 +02:00
fefc9c95e4
DRW: Opti: Replace bound tex/ubo tracking array by bitfields
...
release_texture_slots() and release_ubo_slots() were one hotspot when
drawing taking ~9% of total CPU counters for no reason.
This was because of the loops using GPU_max_textures that was overkill and
slow.
Replace those by a simple 64bit bitwise OR operation.
2019-04-05 21:15:25 +02:00
42dd888b98
Fix T62178 Eevee: Texture Box mapping not matching Cycles if object is scaled
...
The wrong transformation was used. Add a new matrix specially for this case.
This also fix the Node texture coordinate that was suffering the same issue.
2019-03-28 22:08:54 +01:00
afaa832a85
Fix T62680 Mirrored objects have flipped binormal vectors in LookDev
...
Pass binormal sign via object info.
2019-03-27 20:21:10 +01:00
73b55a5508
Cleanup: style, use braces for draw
2019-03-28 01:14:03 +11:00
2b42b8b779
BLI Math: Add and use new projmat_dimensions utility.
2019-03-21 22:23:49 -03:00
cc1b193ddf
Revert "Fix T62621 object scale changes tangent node output in Eevee"
...
This reverts commit 86646dab7c .
2019-03-22 00:13:18 +01:00
e7fd6c8f30
Cleanup: comment blocks
2019-03-19 15:17:46 +11:00
86646dab7c
Fix T62621 object scale changes tangent node output in Eevee
...
Normal Matrices were not normalized, leading to non-normalized vector
rotations results.
2019-03-15 22:33:03 +01:00
af72fc7555
DRW: Fix State tracking being off when calling GPU_framebuffer_clear
...
State tracking works in pretty much all cases but calling the clear command
does change the write mask outside the draw manager. For now we just reset
the write mask before each pass.
Fix T62203 The selected bone is not highlighted inside the other bone.
2019-03-06 03:38:56 +01:00
85b667716a
Cleanup: style
2019-03-06 10:51:11 +11:00
81283b1c81
DRW: Fix rasterizer discard messing with clear commands
...
Fixes T62179 Viewport Ghosting on rigs
2019-03-05 17:24:39 +01:00
798d2cadc3
DRW: Remove unecessary state changes
...
The TODO is old and the issue does not seems to appear anymore.
If bugs emerge from this commit it's most likely to be a bad usage of the
API.
2019-03-04 01:30:02 +01:00
9d309b7978
Cleanup: quiet undeclared variable warning
...
Also move view_ubo into G_draw.
2019-02-23 19:20:20 +11:00
de13d0a80c
doxygen: add newline after \file
...
While \file doesn't need an argument, it can't have another doxy
command after it.
2019-02-18 08:22:12 +11:00
eef4077f18
Cleanup: remove redundant doxygen \file argument
...
Move \ingroup onto same line to be more compact and
make it clear the file is in the group.
2019-02-06 15:45:22 +11:00
a131514d0f
Edit Mesh: Fix some problem with new implementation
...
- Add manual depth offset to vertices and edges.
- Revert to plain edge decoration.
- Fix active edge coloring.
- Remove active face display if not in face selection mode.
- Add wide line support.
2019-02-05 15:02:15 +01:00