Commit Graph

410 Commits

Author SHA1 Message Date
2a6d03493c WM: default to opening maximized
Blender is typically used maximized or fullscreen,
load maximized instead of attempting to fill the screen bounds.

To load un-maximized use '--window-border' argument.

See D4332
2019-02-12 09:14:10 +11:00
1daaa74b08 WM: command line args to start blender maximized
Part of D4323 by @DragMZ
2019-02-11 14:46:25 +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
141c6073ca WM: Event simulation support for Python
This feature is intended only for testing,
to automate simulating user input.

- Enabled by '--enable-event-simulate'.
- Disables handling all real input events.
- Access by calling `Window.event_simulate(..)`
- Disabling `bpy.app.use_event_simulate`
  to allow handling real events (can only disable).

Currently only mouse & keyboard events work well,
NDOF, IME... etc could be added as needed.

See D4286 for example usage.
2019-02-02 15:23:55 +11:00
65ec7ec524 Cleanup: remove redundant, invalid info from headers
BF-admins agree to remove header information that isn't useful,
to reduce noise.

- BEGIN/END license blocks

  Developers should add non license comments as separate comment blocks.
  No need for separator text.

- Contributors

  This is often invalid, outdated or misleading
  especially when splitting files.

  It's more useful to git-blame to find out who has developed the code.

See P901 for script to perform these edits.
2019-02-02 01:36:28 +11:00
e44a7d36f4 Fix UI not fully updating while resizing window on Windows and macOS.
This is still not fully correct, since the event loop is blocked by GHOST
and no timer events are happening for animation while the mouse is still.
But for the most part it looks ok.
2019-01-17 11:28:56 +01:00
88a80fcec8 Cleanup: commas at the end of enums
Without this clang-format may wrap them onto a single line.
2019-01-16 00:03:03 +11:00
8c3bd1eda1 Cleanup: style 2019-01-15 10:36:52 +11:00
Christopher Peerman
4693207918 Windows: add support for Windows Ink.
Before this Blender always needed the Wintab driver. This adds support for the
native pressure API in Windows 8+, making it possible to get pressure sensitivity
on e.g. Microsoft Surface hardware without any extra drivers.

By default Blender will automatically use Wintab if available, and if not use
Windows Ink instead. There is also a new user preference to explicitly specify
which API to use if automatic detection fails.

Fixes T57869: no pressure sensitivity with Surface pen or laptop.

Code by Christopher Peerman with some tweaks by Brecht Van Lommel.

Differential Revision: https://developer.blender.org/D4165
2019-01-14 20:48:11 +01:00
Sebastian Parborg
e571f0255f Fix T59946: multiple quit dialogs possible.
Differential Revision: https://developer.blender.org/D4147
2019-01-04 14:45:16 +01:00
49490e5cfb Merge branch 'master' into blender2.8 2018-12-12 13:02:09 +11:00
e757c4a3be Cleanup: use colon separator after parameter
Helps separate variable names from descriptive text.
Was already used in some parts of the code,
double space and dashes were used elsewhere.
2018-12-12 12:50:58 +11:00
dac747bd09 UI: rename settings back to preferences.
This distinguishes it better for the many other types of settings.

Ref T54115.
2018-11-28 13:58:35 +01:00
9238b7308a Fix view layer set in the outliner of child window not syncing to parent window. 2018-11-26 16:57:59 +01:00
Julian Eisel
b00963afc1 UI: Initial User-Preferences redesign
Implements the first changes for T54115:

* Rename "User Preferences" window to "Settings" in the UI.
  We'll likely put workspace settings in there, separate from the global
  user settings. System settings should become separate from user
  settings in future to allow settings for specific hardware.
* Add sidebar region for navigation (scrolls independently).
  Addresses space problems, so we can add more categories as needed now.
* Increase size of Settings window to compensate new navigation bar.
* Group sections into User Preferences and System.
  Icons for section groups by Andrzej Ambroz. Thanks!
* Bumps subversion for file compatibility.

Screenshot: https://developer.blender.org/F5715337

I also added categories for future work, but commented them out.
We may also want to redesign contents of each section now.

Reviewers: brecht, campbellbarton
Differential Revision: https://developer.blender.org/D3088
Design Task: https://developer.blender.org/T54115
2018-11-25 17:08:58 +01:00
Julian Eisel
23d66c5d60 Fix T58022: Changing workspace may change layout of User Pref window
Logic to update child windows on workspace changes should simply ignore
temporary child windows. Users opened those for a specific purpose (i.e. edit
user preferences or show render result). Blender should not come in and
repurpose it.
2018-11-24 19:20:31 +01:00
539b465b32 Implement basic global tablet pressure curve options.
Grease Pencil already implements support for full-featured
per-brush pressure curves, but it is useful to have some
basic global settings that affect all brushes and tools.

This adds two simple options:

- Raw pressure required to achieve full brush intensity.
- Softness control, using a gamma curve internally.

The most important one is the max pressure setting, because it is
critical for ergonomics, but the Linux Wacom driver lacks it.

The softness option internally converts to gamma = 4^-softness.

Reviewers: brecht, campbellbarton

Differential Revision: https://developer.blender.org/D3967
2018-11-21 16:34:07 +03:00
64ec05b64d Cleanup: remove some useless BKE_library and BKE_main includes.
Makes it simpler to make some changes...

Also fix order of some includes (use alphabetical please).
2018-11-07 20:58:54 +01:00
33d89e482b Revert "UI: start maximized on X11 if possible, like other platforms."
This reverts commit ac0dfcced3.
2018-10-04 18:52:55 +02:00
ac0dfcced3 UI: start maximized on X11 if possible, like other platforms. 2018-10-01 17:29:48 +02:00
4de1e673a4 Merge branch 'master' into blender2.8 2018-09-27 14:51:33 +02:00
2a63e062b0 Tests: add --no-window-focus to open window without focus.
This is useful to run OpenGL tests while continuing to do other tasks
without windows constantly popping up in the foreground.
2018-09-27 12:21:48 +02:00
342e73f90f Spelling fixes in comments and descriptions (2.8 changes), patch by luzpaz.
Differential Revision: https://developer.blender.org/D3719
2018-09-24 18:48:29 +02:00
253dce07d7 Merge branch 'master' into blender2.8 2018-09-24 17:42:52 +02:00
0cff044d84 Spelling fixes in comments and descriptions, patch by luzpaz.
Differential Revision: https://developer.blender.org/D3719
2018-09-24 17:28:40 +02:00
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
f35e9f047a Merge branch 'master' into blender2.8 2018-09-19 12:14:36 +10:00
15bab56fbc Merge branch 'master' into blender2.8 2018-09-11 11:02:37 +10:00
5bb11cfde2 UI: split theme draw style into separate field
Was using UI_BLOCK_LOOP to control draw style,
this meant we couldn't use popup theme colors for cases
where it the interface has the same purpose as a popup but happens
not to use this flag.
2018-09-11 10:56:08 +10:00
7c6136b35c Merge branch 'master' into blender2.8 2018-08-31 13:40:10 +10:00
18d135d05c Cleanup: rename WM_keymap_find -> WM_keymap_ensure 2018-08-31 13:36:46 +10:00
a069d3dc8c UI: save statusbar/topbar collapsed state per screen.
This can now also be set from the Window menu in addition to dragging.
2018-08-17 20:16:19 +02:00
a5d72bac8e Fix (unreported): misuse of GL Context when creating new window and/or rendering. 2018-08-14 16:10:35 -03:00
7e0eb0d071 GPUFrameBuffer: Put active framebuffer in GPUContext
instead of being ThreadLocal and leading to incorrect usage.

We still enforce no framebuffer when changing context. We can lift this
restriction later.
2018-07-31 18:21:23 +02:00
ad5b611953 Cleanup: style 2018-07-31 19:21:04 +10:00
c4803759a2 Fix T55245: undo with multiple windows and view layers not working correct. 2018-07-24 11:27:05 +02:00
8876e3aae2 Fix assert when loading file with multiple windows opened
... or when loading a file when having more windows opened than the file
itself.
2018-07-23 17:44:34 +02:00
5037dd8abd GPU: Add GC to FBOs and UBOs and centralize all GCs
GPUFrameBuffers were being free when no context was attached or in the
wrong gl context. This make sure this does not happen again.

You can now safely free any gl resource from any thread (well as long as
it's not used anymore!).
2018-07-19 16:13:15 +02:00
8cd7828792 GWN: Port to GPU module: Replace GWN prefix by GPU 2018-07-18 11:49:15 +02:00
247ad2034d GWN: Port to GPU module: Move files to GPU
This does not include all the struct and type renaming. Only files were
renamed.

gwn_batch.c/h was fusioned with GPU_batch.c/h
gwn_immediate.c/h was fusioned with GPU_immediate.c/h
gwn_imm_util.c/h was fusioned with GPU_immediate_util.c/h
2018-07-18 00:17:57 +02:00
09431033e9 Cleanup: split GPU_batch
Split out presets and utilities for creating batches.
These functions are quite specialized and not related to typical usage.
2018-07-15 10:51:49 +02:00
39b1842335 Fix T55882: crash closing user preferences window in some cases. 2018-07-10 12:33:18 +02:00
8373544df3 Fix T55776: crash with multiple windows and reload new.
There were a number of cases where immActivate() and immDeactivate() could
get out of sync, causing crashes due to using a freed mutex lock. Refactor
the code now to hopefully avoid this always.
2018-07-09 23:57:19 +02:00
53c63db2ee Fix issue with closing child windows in recent changes. 2018-07-04 19:33:15 +02:00
c43443d530 Workspaces: store view layer per main window, instead of per workspace.
It was a bit odd that the scene was stored per window but not the view
layer. The reasoning was that you would use different view layers for
different tasks. This is still possible, but it's more predictable to
switch them both explicitly, and with child window support manually
syncing the view layers between multiple windows is no longer needed
as often.
2018-07-04 18:40:33 +02:00
4e2228525f Workspaces: add main and child windows.
* Main windows show a topbar and statusbar, and select a workspace and
  scene. They are created with Window > New Main Window.

* Child windows do not show a topbar or statusbar. These follow the
  workspace and scene of their parent main window. Created with Window >
  New Window or View > Duplicate Area into New Window.

* The purpose of this change is to support multi monitor setups where you
  just want to put more editors on the other monitors. Without multiple
  topbars and statusbars, working within a single workspace and scene.
  Creating multiple main windows is intended to be a concious choice to
  do different tasks in different workspaces and scenes.

* Note these changes do not currently affect how the operating system
  treats the windows.

* When changing the workspace, the layout in all child windows changes.
  This makes sense if we consider child windows to be just a way to
  extend the main window across more monitors. In some case it may be
  useful to keep the same layout though, we can add an option for this
  depending on user feedback.
2018-07-04 18:40:33 +02:00
Severin
a55b00b53b Fix a number of small errors in area coordinate handling
For example collapsing the lower part of the topbar with 2x interface scale
would hide the top-bar header region. There were also more asserts when changing
window size and moving area edges afterwards (same assert as in T55298).
Fixes are similar to e626998a26.

With all the recent fixes I've done, area geometry handling should be stable
again. Let's hope I'm right :)
2018-06-30 00:42:19 +02:00
4d39da1060 Merge branch 'master' into blender2.8 2018-06-28 23:57:00 +02:00
46dceefc35 WM: Remove Screen Cast
This feature is better handled by specialized tools.
2018-06-28 23:40:51 +02:00
c3594f6469 UI: remove layout choosing menu from new window operator.
The handling of multiple window layouts within a workspace is intended to
be automatic now, this was a leftover from an earlier design.
2018-06-27 16:08:52 +02:00