2 years agoMerge branch 'master' into blender2.8
Bastien Montagne [Wed, 4 Apr 2018 10:00:57 +0000 (12:00 +0200)]
Merge branch 'master' into blender2.8


2 years agoTweak ID->tag reset on file load (no visible change expected!).
Bastien Montagne [Wed, 4 Apr 2018 09:56:35 +0000 (11:56 +0200)]
Tweak ID->tag reset on file load (no visible change expected!).

Issue was, *some* IDs (like infamous nodetrees from materials etc.)
would not go through the 'main' read_libblock() func, so their tags were
never reset.

So now, we ensure direct_link_id() always clear the tags, and move
setting them in read_libblock() after the call to direct_link_id().

Needed for depsgraph, but general healthier fix actually.

2 years agoDepsgraph: Get pchan index from correct pose
Sergey Sharybin [Wed, 4 Apr 2018 09:55:06 +0000 (11:55 +0200)]
Depsgraph: Get pchan index from correct pose

This code should be replaced with evaluation-time ID block expansion,
but before that it will be helpful to get old design to work again.

2 years agoMerge branch 'master' into blender2.8
Sergey Sharybin [Wed, 4 Apr 2018 09:49:24 +0000 (11:49 +0200)]
Merge branch 'master' into blender2.8

2 years agoDepsgraph: Ensure root pchan is always found
Sergey Sharybin [Wed, 4 Apr 2018 09:49:01 +0000 (11:49 +0200)]
Depsgraph: Ensure root pchan is always found

2 years agoDepsgraph: Pass CoW version of object to armature update done
Sergey Sharybin [Wed, 4 Apr 2018 09:47:09 +0000 (11:47 +0200)]
Depsgraph: Pass CoW version of object to armature update done

2 years agoFix part of T53497: Eevee stuttering on macOS for the first few seconds of usage.
Brecht Van Lommel [Wed, 4 Apr 2018 09:13:13 +0000 (11:13 +0200)]
Fix part of T53497: Eevee stuttering on macOS for the first few seconds of usage.

The problem was that textures were assigned to different slots on different draw
calls, which caused shader specialization/patching by the driver. So the shader
would be compiled over and over until all possible assignments were used.

2 years agoFix missing hair in fishycat and everything else after particle recalc changes
Mai Lavelle [Sat, 31 Mar 2018 06:19:52 +0000 (02:19 -0400)]
Fix missing hair in fishycat and everything else after particle recalc changes

The cache was getting reset always, due to special case of flag being 0.

Bug introduced by: 44cd24a9cee9ffb14b5d26a622f

2 years agoMerge branch 'master' into blender2.8
Sergey Sharybin [Wed, 4 Apr 2018 08:36:39 +0000 (10:36 +0200)]
Merge branch 'master' into blender2.8

2 years agoDepsgraph: Assert that pchan index is always valid
Sergey Sharybin [Wed, 4 Apr 2018 08:35:32 +0000 (10:35 +0200)]
Depsgraph: Assert that pchan index is always valid

2 years agoMerge branch 'master' into blender2.8
Sergey Sharybin [Wed, 4 Apr 2018 08:16:38 +0000 (10:16 +0200)]
Merge branch 'master' into blender2.8

2 years agoDepsgraph: Add missing expansion od custom bone shapes
Sergey Sharybin [Wed, 4 Apr 2018 08:15:45 +0000 (10:15 +0200)]
Depsgraph: Add missing expansion od custom bone shapes

This was fixed in 2.8 branch but not in master.

2 years agoMerge branch 'master' into blender2.8
Sergey Sharybin [Wed, 4 Apr 2018 07:54:50 +0000 (09:54 +0200)]
Merge branch 'master' into blender2.8

2 years agoDepsgraph: Only bind ID-data and indices to depsgraph callbacks
Sergey Sharybin [Tue, 3 Apr 2018 15:23:43 +0000 (17:23 +0200)]
Depsgraph: Only bind ID-data and indices to depsgraph callbacks

This is a part of copy-on-write sanitization, to avoid all the checks
which were attempting to keep sub-data pointers intact.

Point is: ID pointers never change for CoW datablocks, but nested
data pointers might change when updating existing copy.

Solution: Only bind ID data pointers and index of sub-data.
This will make CoW datablock 7update function was easier in 2.8.

In master we were only using pose channel pointers in callbacks,
this is exactly what this commit addresses. A linear lookup array
is created on pose evaluation init and is thrown away afterwards.

One thing we might consider doing is to keep indexed array of
poses, similar to chanhash.

Reviewers: campbellbarton

Reviewed By: campbellbarton

Subscribers: dfelinto

Differential Revision:

2 years agoFix T54337: Cycles crash with simple subd object in debug build
Mai Lavelle [Wed, 4 Apr 2018 03:36:35 +0000 (23:36 -0400)]
Fix T54337: Cycles crash with simple subd object in debug build

2 years agoFix T54400: Some GCN 1 cards available to select for use with Cycles
Mai Lavelle [Wed, 4 Apr 2018 03:09:38 +0000 (23:09 -0400)]
Fix T54400: Some GCN 1 cards available to select for use with Cycles

Hainan was missing from the list of GCN 1 cards.

2 years agoBMesh: remove redundant loop in select-next-active
Campbell Barton [Tue, 3 Apr 2018 16:32:55 +0000 (18:32 +0200)]
BMesh: remove redundant loop in select-next-active

Thanks to @nBurn for spotting

2 years agoMissed in last merge
Campbell Barton [Tue, 3 Apr 2018 16:22:52 +0000 (18:22 +0200)]
Missed in last merge

2 years agoMissed in last merge
Campbell Barton [Tue, 3 Apr 2018 16:22:05 +0000 (18:22 +0200)]
Missed in last merge

2 years agoMerge branch 'master' into blender2.8
Campbell Barton [Tue, 3 Apr 2018 16:12:39 +0000 (18:12 +0200)]
Merge branch 'master' into blender2.8

2 years agoUndo: make id-map use binary search to keep sorted
Campbell Barton [Tue, 3 Apr 2018 16:07:51 +0000 (18:07 +0200)]
Undo: make id-map use binary search to keep sorted

2 years agoFix own error w/ undo ID lookup
Campbell Barton [Tue, 3 Apr 2018 15:58:37 +0000 (17:58 +0200)]
Fix own error w/ undo ID lookup

Was testing with small number of items, so this went unnoticed.

2 years agoDraw Manager: Improve description of `draw_frustum_boundbox_calc` variables
Germano [Tue, 3 Apr 2018 15:18:56 +0000 (12:18 -0300)]
Draw Manager: Improve description of `draw_frustum_boundbox_calc` variables

2 years agoCleanup: rename BMesh count_ex -> count_at_most
Campbell Barton [Tue, 3 Apr 2018 15:06:36 +0000 (17:06 +0200)]
Cleanup: rename BMesh count_ex -> count_at_most

2 years agoCleanup: rename list count_ex -> count_at_most
Campbell Barton [Tue, 3 Apr 2018 15:05:21 +0000 (17:05 +0200)]
Cleanup: rename list count_ex -> count_at_most

2 years agoUndo: use with_prev verisons of id-map lookups
Campbell Barton [Tue, 3 Apr 2018 15:03:13 +0000 (17:03 +0200)]
Undo: use with_prev verisons of id-map lookups

2 years agoUndo: use general id-map for image undo lookups.
Campbell Barton [Tue, 3 Apr 2018 14:47:25 +0000 (16:47 +0200)]
Undo: use general id-map for image undo lookups.

Was doing own name based lookups to keep compatible w/ global undo.

2 years agoUndo System: id-map avoid duplicate add/lookup
Campbell Barton [Tue, 3 Apr 2018 14:46:11 +0000 (16:46 +0200)]
Undo System: id-map avoid duplicate add/lookup

Add versions of add/lookup that check the previous item.

2 years agoFix mistake logging w/ undo
Campbell Barton [Tue, 3 Apr 2018 14:45:05 +0000 (16:45 +0200)]
Fix mistake logging w/ undo

2 years agoMerge branch 'master' into blender2.8
Bastien Montagne [Tue, 3 Apr 2018 14:13:13 +0000 (16:13 +0200)]
Merge branch 'master' into blender2.8

2 years agoFix T54477: Broken utf8 strings in old .blend files
Bastien Montagne [Tue, 3 Apr 2018 13:50:49 +0000 (15:50 +0200)]
Fix T54477: Broken utf8 strings in old .blend files

Back in the days (2.4x and before), it was rather easy to get some
invalid utf-8 strings in Blender. This is totally breaking modern code,
so this commit adds a simple 'check & fix strings' operator, available
from the main File menu.

2 years agoFix (unreported) crash when accessing some
Bastien Montagne [Tue, 3 Apr 2018 12:30:36 +0000 (14:30 +0200)]
Fix (unreported) crash when accessing some

E.g. typing `[8].<tab>` in console would hard-crash
trying to dereference NULL pointer. Was a missing check in rna_Property_tags_itemf().

2 years agoCleanup: remove unused mtexpoly array
Campbell Barton [Tue, 3 Apr 2018 12:30:12 +0000 (14:30 +0200)]
Cleanup: remove unused mtexpoly array

Not needed in 2.8

2 years agoMerge branch 'master' into blender2.8
Campbell Barton [Tue, 3 Apr 2018 12:19:51 +0000 (14:19 +0200)]
Merge branch 'master' into blender2.8

2 years agoFix duplicate Cycles panels in properties editor.
Brecht Van Lommel [Tue, 3 Apr 2018 12:04:59 +0000 (14:04 +0200)]
Fix duplicate Cycles panels in properties editor.

2 years agoFix crash on startup on macOS, after recent framebuffer refactoring.
Brecht Van Lommel [Tue, 3 Apr 2018 07:35:22 +0000 (09:35 +0200)]
Fix crash on startup on macOS, after recent framebuffer refactoring.

2 years agoUndo: remove particle undo push
Campbell Barton [Tue, 3 Apr 2018 06:57:01 +0000 (08:57 +0200)]
Undo: remove particle undo push

Was only called on copy particle system
which is already doing an undo push.

2 years agoCleanup: editor BKE_main includes
Campbell Barton [Tue, 3 Apr 2018 06:42:12 +0000 (08:42 +0200)]
Cleanup: editor BKE_main includes

2 years agoUndo: replace global access w/ ED_undo_stack_get
Campbell Barton [Tue, 3 Apr 2018 06:35:42 +0000 (08:35 +0200)]
Undo: replace global access w/ ED_undo_stack_get

While I'd like to avoid using this too much since the operator
system should handle.
It's less trouble than accessing it inline each time.

2 years agoFix mode switching error on undo
Campbell Barton [Tue, 3 Apr 2018 06:03:43 +0000 (08:03 +0200)]
Fix mode switching error on undo

For 2.8 there is already a utility function for this,
wrap it - avoiding an undo step.

2 years agoCorrect own error in string lookup
Campbell Barton [Tue, 3 Apr 2018 05:44:37 +0000 (07:44 +0200)]
Correct own error in string lookup

2 years agoMove to Collection: Reduce memory leakage
Dalai Felinto [Mon, 2 Apr 2018 21:49:00 +0000 (18:49 -0300)]
Move to Collection: Reduce memory leakage

This is really minor but anyways, now it will only leak if you cancel the menu.
And that only if htis is the last time you called this operator before closing

2 years agoMove to Collection: Use automatic fallback name for new collections popup
Dalai Felinto [Mon, 2 Apr 2018 20:12:08 +0000 (17:12 -0300)]
Move to Collection: Use automatic fallback name for new collections popup

2 years agoCollections: API to get automatic name of new collection
Dalai Felinto [Mon, 2 Apr 2018 20:08:51 +0000 (17:08 -0300)]
Collections: API to get automatic name of new collection

2 years agoMove to Collection: Popup for naming new collection
Dalai Felinto [Mon, 2 Apr 2018 19:19:58 +0000 (16:19 -0300)]
Move to Collection: Popup for naming new collection

2 years agoFix blenderplayer (tm)
Dalai Felinto [Mon, 2 Apr 2018 20:24:18 +0000 (17:24 -0300)]
Fix blenderplayer (tm)

2 years agoPyAPI: Add PyC_Tuple_Pack_F64 utility
Campbell Barton [Mon, 2 Apr 2018 17:48:34 +0000 (19:48 +0200)]
PyAPI: Add PyC_Tuple_Pack_F64 utility

2 years agoBuild: add WITH_OPENVDB_3_ABI_COMPATIBLE option.
Brecht Van Lommel [Mon, 2 Apr 2018 16:55:10 +0000 (18:55 +0200)]

Better fix for T54457. It seems Debian compiles OpenVDB without ABI 3
compatibility, while Arch does enable it as is the default in the OpeVDB
CMake build system.

So now there's an option that the distribution can set depending on how
they compile their OpenVDB package.

2 years agoUI: Fix: Center vertical scrollbar circles.
Clément Foucault [Sun, 1 Apr 2018 09:50:30 +0000 (11:50 +0200)]
UI: Fix: Center vertical scrollbar circles.

2 years agoUI: Perf: Batch Trias with widgets.
Clément Foucault [Sun, 1 Apr 2018 09:49:15 +0000 (11:49 +0200)]
UI: Perf: Batch Trias with widgets.

This remove another portion of imm calls and reduce overall drawcall count.

2 years agoCleanup: remove redundant imbuf return values
Campbell Barton [Mon, 2 Apr 2018 15:30:35 +0000 (17:30 +0200)]
Cleanup: remove redundant imbuf return values

Some functions always returned the input argument
which was never used.

This made code read as if there might be a leak.

Now return a boolean (true the imbuf is modified).

2 years agoPartial fix for T54491: Use a more accurate solution to calculate the frustum boundbox
Germano [Mon, 2 Apr 2018 15:21:09 +0000 (12:21 -0300)]
Partial fix for T54491: Use a more accurate solution to calculate the frustum boundbox

2 years agoBuild: fixes for the Intel compiler versions 2016, 2017, 2018.
Milan Jaros [Mon, 2 Apr 2018 14:11:11 +0000 (16:11 +0200)]
Build: fixes for the Intel compiler versions 2016, 2017, 2018.

Differential Revision:

2 years agoCleanup: newlines left in messages
Campbell Barton [Mon, 2 Apr 2018 13:39:43 +0000 (15:39 +0200)]
Cleanup: newlines left in messages

2 years agoMerge branch 'master' into blender2.8
Campbell Barton [Mon, 2 Apr 2018 13:18:10 +0000 (15:18 +0200)]
Merge branch 'master' into blender2.8

2 years agoCleanup: remove unused view_layer argument
Campbell Barton [Mon, 2 Apr 2018 13:11:53 +0000 (15:11 +0200)]
Cleanup: remove unused view_layer argument

2 years agoCleanup: move undo into it's own directory
Campbell Barton [Mon, 2 Apr 2018 13:02:08 +0000 (15:02 +0200)]
Cleanup: move undo into it's own directory

Split out undo API from ED_util.h into ED_undo.h

2 years agoCleanup: move BKE_global include under ifdef's
Campbell Barton [Mon, 2 Apr 2018 12:19:44 +0000 (14:19 +0200)]
Cleanup: move BKE_global include under ifdef's

2 years agoUndo: store active curve shape key in edit-mode
Campbell Barton [Mon, 2 Apr 2018 09:35:33 +0000 (11:35 +0200)]
Undo: store active curve shape key in edit-mode

2 years agoLogging: use for Python API
Campbell Barton [Mon, 2 Apr 2018 09:05:15 +0000 (11:05 +0200)]
Logging: use for Python API

Adds categories "bpy.context" & "bpy.rna"

2 years agoimbuf: revert some of the changes of rBb6ba3c682dd6615e760905572a5bcd69bb46371f since...
Ray Molenkamp [Sun, 1 Apr 2018 21:17:17 +0000 (15:17 -0600)]
imbuf: revert some of the changes of rBb6ba3c682dd6615e760905572a5bcd69bb46371f since they broke the build.

2 years agoFix compiling with Alembic
Sergej Reich [Sun, 1 Apr 2018 17:50:19 +0000 (19:50 +0200)]
Fix compiling with Alembic

Still need G.main

2 years agoWorkaround for undo steps not storing object modes
Campbell Barton [Sun, 1 Apr 2018 17:28:26 +0000 (19:28 +0200)]
Workaround for undo steps not storing object modes

2 years agoMerge branch 'master' into blender2.8
Campbell Barton [Sun, 1 Apr 2018 09:14:09 +0000 (11:14 +0200)]
Merge branch 'master' into blender2.8

2 years agoMerge branch 'master' into blender2.8
Campbell Barton [Sun, 1 Apr 2018 09:03:25 +0000 (11:03 +0200)]
Merge branch 'master' into blender2.8

- Undo that changes modes currently asserts,
  since undo is now screen data.

  Most likely we will change how object mode and workspaces work
  since it's not practical/maintainable at the moment.

- Removed view_layer from particle settings
  (wasn't needed and complicated undo).

2 years agoCorrect accidental changes by C Logging addition
Campbell Barton [Sun, 1 Apr 2018 08:16:28 +0000 (10:16 +0200)]
Correct accidental changes by C Logging addition

Error in 891c1cfc9a3

2 years agoResolve unsigned comparison error w/ MSVC
Campbell Barton [Sun, 1 Apr 2018 05:41:23 +0000 (07:41 +0200)]
Resolve unsigned comparison error w/ MSVC

2 years agoCleanup: remove global header
Campbell Barton [Sun, 1 Apr 2018 05:24:45 +0000 (07:24 +0200)]
Cleanup: remove global header

2 years agoCleanup: warning
Campbell Barton [Sat, 31 Mar 2018 21:51:38 +0000 (23:51 +0200)]
Cleanup: warning

2 years agoRemoved by accident in last commit
Campbell Barton [Sat, 31 Mar 2018 21:47:05 +0000 (23:47 +0200)]
Removed by accident in last commit

2 years agoUndo: unified undo system w/ linear history
Campbell Barton [Mon, 19 Mar 2018 13:17:59 +0000 (14:17 +0100)]
Undo: unified undo system w/ linear history

- Use a single undo history for all operations.
- UndoType's are registered and poll the context to check if they
  should be used when performing an undo push.
- Mode switching is used to ensure the state is correct before
  undo data is restored.
- Some undo types accumulate changes (image & text editing)
  others store the state multiple times (with de-duplication).
  This is supported by checking UndoStack.mode `ACCUMULATE` / `STORE`.
- Each undo step stores ID datablocks they use with utilities to help
  manage restoring correct ID's.
  Needed since global undo is now mixed with other modes undo.
- Currently performs each undo step when going up/down history
  Previously this wasn't done, making history fail in some cases.
  This can be optimized to skip some combinations of undo steps.

grease-pencil is an exception which has not been updated
since it integrates undo into the draw-session.

See D3113

2 years agoBLF: Remove debug print
Clément Foucault [Sat, 31 Mar 2018 18:33:05 +0000 (20:33 +0200)]
BLF: Remove debug print

"this is not the commit you're looking for"

2 years agoBLF: Fix Vertical/Horizontal layout switch.
Clément Foucault [Sat, 31 Mar 2018 18:26:09 +0000 (20:26 +0200)]
BLF: Fix Vertical/Horizontal layout switch.

This was breaking the first drawcall after a simple/non-simple shader

2 years agoUI: Perf: Batch icons drawcalls together.
Clément Foucault [Sat, 31 Mar 2018 17:32:28 +0000 (19:32 +0200)]
UI: Perf: Batch icons drawcalls together.

For this we use a new shader that gets it's data from a uniform array.
Vertex shader position the vertices using these data.

Using glUniform is way faster than using imm for that matter.

Like BLF rendering, UI icons are always (as far as I know) non occluded and
displayed above everything else. They also does not overlap with texts so
they can be batched at the same time.

2 years agoBLF: Perf: Do not call FT_Set_Char_Size every time.
Clément Foucault [Sat, 31 Mar 2018 14:12:00 +0000 (16:12 +0200)]
BLF: Perf: Do not call FT_Set_Char_Size every time.

Using FT_Set_Char_Size is slow. Calling it only when needed is more clever.

2 years agoBLF: Perf: Add a kerning cache table for ascii chars.
Clément Foucault [Sat, 31 Mar 2018 13:24:10 +0000 (15:24 +0200)]
BLF: Perf: Add a kerning cache table for ascii chars.

This adds less than a megabyte of mem usage.
FT_Get_Kerning was the 2nd hotspot when profilling. This commit completly
remove this cost.

One concern though: I don't know if the kerning data is constant for every
sizes but it seems to be the case. I tested different fonts at different
dpi scalling and saw no differences.

2 years agoBLI_sort_utils: add pointer sorting callback
Campbell Barton [Sat, 31 Mar 2018 17:25:27 +0000 (19:25 +0200)]
BLI_sort_utils: add pointer sorting callback

Also rename Pointer -> Ptr

2 years agoLogging: fix own error with formatting
Campbell Barton [Sat, 31 Mar 2018 13:43:47 +0000 (15:43 +0200)]
Logging: fix own error with formatting

2 years agoUse int instead of bool
Campbell Barton [Sat, 31 Mar 2018 13:33:15 +0000 (15:33 +0200)]
Use int instead of bool

Causes issues when including in some files.

2 years agoLogging: add argument --log-show-basename
Campbell Barton [Sat, 31 Mar 2018 13:27:06 +0000 (15:27 +0200)]
Logging: add argument --log-show-basename

Optionally strips leading path from filenames when logging.

2 years agoCleanup: --help text output
Campbell Barton [Sat, 31 Mar 2018 12:53:15 +0000 (14:53 +0200)]
Cleanup: --help text output

Some arguments missed their <value>.

2 years agoCleanup: blf internal struct naming
Campbell Barton [Sat, 31 Mar 2018 11:40:23 +0000 (13:40 +0200)]
Cleanup: blf internal struct naming

- use x/y/width/height/max as a suffix.
- replace 'num' prefix /w 'len' suffix.

2 years agoCleanup: BLF batch drawing naming
Campbell Barton [Sat, 31 Mar 2018 11:09:03 +0000 (13:09 +0200)]
Cleanup: BLF batch drawing naming

- batching -> batch_draw.
- ct & size -> len.
- start/end -> begin/end (follow GL convention).

2 years agoLogging: add ability to exclude categories.
Campbell Barton [Sat, 31 Mar 2018 10:52:47 +0000 (12:52 +0200)]
Logging: add ability to exclude categories.

2 years agoDocs: doxygen docs for clog
Campbell Barton [Sat, 31 Mar 2018 10:26:37 +0000 (12:26 +0200)]
Docs: doxygen docs for clog

2 years agoFix clog: own error allocating from static buffer
Campbell Barton [Sat, 31 Mar 2018 09:25:49 +0000 (11:25 +0200)]
Fix clog: own error allocating from static buffer

2 years agoFix logger build w/ MSVC
Campbell Barton [Sat, 31 Mar 2018 07:18:30 +0000 (09:18 +0200)]
Fix logger build w/ MSVC

2 years agoBuild deps: do sndfile patch also on linux platform
Arto Kitula [Fri, 30 Mar 2018 23:15:13 +0000 (02:15 +0300)]
Build deps: do sndfile patch also on linux platform

2 years agoGWN: Perf: Bypass glUseProgram(0)
Clément Foucault [Fri, 30 Mar 2018 21:27:45 +0000 (23:27 +0200)]
GWN: Perf: Bypass glUseProgram(0)

I left a flag to quickly debug if something is wrong.
But now that everything uses shader, it seems to be alright since a shader
is always set active before drawing.

2 years agoUI: Perf: Do not use implicit Attrib fill.
Clément Foucault [Fri, 30 Mar 2018 20:51:28 +0000 (22:51 +0200)]
UI: Perf: Do not use implicit Attrib fill.

2 years agoBFL: Fix broken vertical texts.
Clément Foucault [Fri, 30 Mar 2018 20:50:17 +0000 (22:50 +0200)]
BFL: Fix broken vertical texts.

I've made a separate version of the geom shader that works with full
3D modelviewmat.

This commit also includes some fixup inside blf_batching_start().

2 years agoDRW: Add BLF_batch_reset to be able to use BLF inside DRW.
Clément Foucault [Fri, 30 Mar 2018 19:10:24 +0000 (21:10 +0200)]
DRW: Add BLF_batch_reset to be able to use BLF inside DRW.

2 years agoUI: Perf: Add BLF batching for File browser and UI blocks.
Clément Foucault [Fri, 30 Mar 2018 19:09:24 +0000 (21:09 +0200)]
UI: Perf: Add BLF batching for File browser and UI blocks.

This batch together most of the calls that can be batch together.

2 years agoBLF: Add Batching capabilities.
Clément Foucault [Fri, 30 Mar 2018 18:59:45 +0000 (20:59 +0200)]
BLF: Add Batching capabilities.

You can now use BLF_batching_start and BLF_batching_end to batch every
drawcall to BLF together minimizing the overhead introduced by BLF and the
opengl driver.

These calls cannot be nested (for now).

If the modelview matrix changes, previously batched calls are issued and a
the process resume with the new matrix.

However the projection matrix MUST not change and gl scissors as well.

2 years agoGPUFramebuffer: Fix assert triggering another assert.
Clément Foucault [Fri, 30 Mar 2018 18:15:03 +0000 (20:15 +0200)]
GPUFramebuffer: Fix assert triggering another assert.

2 years agoBLF: Use Batch API instead of IMM.
Clément Foucault [Fri, 30 Mar 2018 17:16:14 +0000 (19:16 +0200)]
BLF: Use Batch API instead of IMM.

This is not a perfect win just yet. It's now calling glBufferSubData for
every call (instead of using glMapBufferRange which is almost faster), but
with this system we will be able to batch drawcalls together.

See next commit.

2 years agoGWN: Add GWN_vertbuf_vertex_count_set.
Clément Foucault [Fri, 30 Mar 2018 16:10:08 +0000 (18:10 +0200)]
GWN: Add GWN_vertbuf_vertex_count_set.

This allows us to specify a the number of vertices to upload to the gpu.
This is to keep the same allocation on the System Memory but send the least
amount of data to the GPU/Driver.

2 years agoC Logging: use instead of printf for messages
Campbell Barton [Thu, 29 Mar 2018 18:38:32 +0000 (20:38 +0200)]
C Logging: use instead of printf for messages

- See `--log` help message for usage.
- Supports enabling categories.
- Color severity.
- Optionally logs to a file.
- Currently use to replace printf calls in wm module.

See D3120 for details.

2 years agobuild_deps: Disable building docs for OIIO
Thomas Beck [Fri, 30 Mar 2018 12:58:22 +0000 (14:58 +0200)]
build_deps: Disable building docs for OIIO

Two issues are fixed with this commit:

1) When we build OIIO (on unixoid build environments) and no /src/doc/oiiotool was present we had no build target for it (which led to a build error). As we don't need docs for OIIO, we disable it now.

2) We specified a var that OIIO does not recognize (was removed upstream a long time ago): ILMBASE_VERSION.

2 years agoSelect Grouped: Collection Part II
Dalai Felinto [Thu, 29 Mar 2018 23:01:27 +0000 (20:01 -0300)]
Select Grouped: Collection Part II

Selecting not only the objetcs directly linked to the selected collection.
So we also do it for the objetcs in the nested collections, just as we can
do from the outliner.