The issue was that the screen geometry calculations scaled down the
areas, but the header would become too small. So it would be upscaled
again towards the lower screen edge (where the status-bar is at). Now we
do another pass over the geometry calculations, until all areas fit into
the screen, or until some rather arbitrary maximum is reached.
This fixes the issue for common cases. Extreme cases, with many
vertically stashed editors and a too small window to show all, are still
not too well supported. Blender keeps working but the status-bar is
still overlapped. We could deal with this better but what's there now
should be good enough.
These buffer detailed infos are not needed unless going deep into
perf. profiling, in which case you can still disable this compile option.
This makes user report log much more readable.
We cannot change the texture bind point since the interface count
4/5 textures to bind. Changing the uniform to avoid one bind
make the system thinks one texture is missing.
Avoid this by creating a dummy texture and binding it to the empty
slot.
This is to modernize the API:
- Add meaningful name to all textures (except DRW textures).
- Remove unused err_out argument: only used for offscreen python.
- Add mipmap count to creation functions for future changes.
- Clarify the data usage in creation functions.
This is a cleanup commit, there is no functional change.
# Conflicts:
# source/blender/gpu/GPU_texture.h
This is to have better error detection in debug builds.
This is not a replacement for a full check like in renderdoc but it
might catch some issues early on.
This is a massive cleanup needed for vulkan support T68990. It provides:
- More meaningful enums with conversion functions.
- Less hacky supports of arrays and cubemaps (all considered layered).
- More inline with the stateless design of vulkan and modern GL.
- Methods Fallbacks are using framebuffer functions that are wrapped
instead of implementing inside the texture module.
What is not in there:
- API change.
- Samplers support (breaks a few effects).
# Conflicts:
# source/blender/gpu/GPU_texture.h
This is in preparation of using it to clear single texture.
Also includes minor cleanups about not using tex target in
assert and adding enum operators.
This is going to be unecessary after the GPU opengl texture backend refactor.
For now add a save/restore mechanism to leave the state untouched.
Also remove some calls where the caller would bind to particular binding
point and set the shader uniform.
The code to detect non-trivial coplanar intersection sometimes
falsely said there wasn't one. This caused some coplanar intersections
to be missed. Also added a test for this case.
Caused by f04260d8c6.
Cycles' CMake defines macros with the same name as Blender, which
override the Blender ones. There's however a small difference in the
re-defined `remove_cc_flag()`, the Cycles version only takes one flag at
a time. So I guess Blender's calls to it would only result in the first
flag being removed.
Of course Cycles shouldn't override any Blender macros, but I'll leave
that up to Brecht to fix properly.
For the man rationale behind this design, see 49f088e2d0. Further,
this removes users of uiBut.a1/uiBut.a2, which is a very ugly design
choice (hard to reason about).
Note that I had to do rather ugly, specific exceptions for the number
buttons in `ui_def_but_rna()`. But once all users of a1/a2 are removed,
this special handling shouldn't be needed anymore.
I also had to move a sanity check out of the button definition. It's now
moved into a new debug only sanity checking function executed when
finishing the layout definition (block end).
* Support precompiled libraries on Linux
* Add license headers
* Refactoring to deduplicate code
Includes work by Ray Molenkamp and Grische for precompiled libraries.
Ref D8769
- Declare variables where they are initialized
- Use consistent variable and static function names
- Use helper functions more for common operations
- Remove use of BezTriple struct, use CurveProfilePoint instead
- Apply small simplifications to code in some situations
This replaces the switch case and operation types with a
SculptGestureOperation struct with callbacks.
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D8798
This replaces the switch case with function pointers to
extract masks or face sets.
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D8796