Commit Graph

171 Commits

Author SHA1 Message Date
Antony Riakiotakis
b5b359b48f Warning messagebox for windows when an unsupported implementation of
OpenGL is detected:

Hoping to decrease the frequency of by far one of the most frequent bug
reports by windows users.

There is some reorganization of the GHOST API to allow easy addition of
further OpenGL options in the future. The change is not propagated too
deep to keep the size of the patch managable. We might reorganize things
here later.

For OpenGL we do two checks here:
One is a combination of GDI generic renderer or vendor microsoft
corporation and OpenGL version 1.1. This means the system does not
use GPU acceleration at all. We warn user to install a graphics
driver and of cases where this might happen (remote connection, using
blender through virtual machine)

The other one just checks if OpenGL version is less than 1.4 (we can
easily change that in the future of course) and warns that it is
deprecated.

Both cases will still let blender startup correctly but users should now
have a clear idea of the system being unsupported.

A user preference flag is provided to turn the warning off.

Now stop posting those bug reports without installing a driver first -
please?
2015-02-25 13:51:53 +01:00
Campbell Barton
26f9a92453 WM: empty menu so addons can extend the splash 2015-02-01 04:19:55 +11:00
julianeisel
b88e700df4 Cleanup: Minor edits to widget emboss code
* Rename "emboss" to "widget_emboss"
* Remove duplicated UI_GetThemeColor4ubv function

I made sure version bump and Save User Settings are working correctly ;P
2014-12-08 00:38:36 +01:00
Campbell Barton
2c3a503731 UI: Rename Addons -> Add-ons
D812 by @thefallenweeble

internally variable names & paths remain the same, this is for labels & tips only.
2014-11-14 12:19:14 +01:00
Jonathan Williamson
6c2ce7a382 Add Theme Option for UI Emboss
This adds a theme option for the embossing of UI widgets. By doing this users have much greater flexibility for creating nice themes. Previously many themes (particularly dark ones) looked quite bad due to the very obvious emboss. This made simpler, flat-style themes very challenging.

Closes T42228

Reviewed by @campbellbarton
2014-10-27 18:14:00 +01:00
Antony Riakiotakis
9fcc1a32df Pie menus: Confirm threshold
This commit adds a confirm threshold property to pie menus.

Basically, this will confirm the pie menu automatically when
the distance from the center of the pie exceeds that threshold without
a need to release the pie button.

The confirm threshold will only work if it is larger than the pie
threshold.

The confirmation actually occur when the mouse stops moving, to
allow multiple pie menus to be better linked together, (see below)

This functionality also facilitates the ability for chained pie menus by
dragging. Basically, a pie menu item can be a call_menu_pie operator and
the new pie menu will still use the original pie menu release event for
confirmation. This should allow for quick, gesture based navigation in
pie menu hierarchies (going back in the hierarchy is still not supported
though)

There will be a demonstration pie in the official add-on soon
2014-10-13 14:35:41 +02:00
Lukas Tönne
6fa46ad315 Support for "virtual pixelsize" on 4k screens.
On 4k devices the default pixel size leads to tiny OpenGL drawing
that is hardly usable without doubling the DPI. The retina system
on OSX aims to alleviate this problem by introducing a general 2x
pixel size.

No equivalent feature exists on other platforms so far. However,
to emulate the effect this patch introduces a "virtual" pixel size
factor for OpenGL drawing.

Note that the user currently has to enable this manually by selecting
the "Virtual Pixel Mode" in the user preferences (defaults to native).
All windows of a Blender instance share the same virtual pixel size as well.
It may be possible to handle this on a per-window basis and automate
the selection somewhat (if enabled by the user), so working with
multiple screens becomes more convenient, but technical limitations
make this a bit difficult (on X11 with nvidia drivers the actual screen size
is not reported correctly).

Reviewers: ton, campbellbarton

Differential Revision: https://developer.blender.org/D669
2014-09-30 18:29:32 +02:00
Campbell Barton
0e0e528ea4 Cleanup: pep8 2014-09-17 18:36:17 +10:00
Antony Riakiotakis
028fd29eeb Pie Menus C code backend.
This commit merges the code in the pie-menu branch.

As per decisions taken the last few days, there are no pie menus
included and there will be an official add-on including overrides of
some keys with pie menus. However, people will now be able to use the
new code in python.

Full Documentation is in http://wiki.blender.org/index.php/Dev:Ref/

Thanks:
Campbell Barton, Dalai Felinto and Ton Roosendaal for the code review
and design comments

Jonathan Williamson, Pawel Lyczkowski, Pablo Vazquez among others for
suggestions during the development.

Special Thanks to Sean Olson, for his support, suggestions, testing and
merciless bugging so that I would finish the pie menu code. Without him
we wouldn't be here. Also to the rest of the developers of the original
python add-on, Patrick Moore and Dan Eicher and finally to Matt Ebb, who
did the research and first implementation and whose code I used to get
started.
2014-08-11 11:02:26 +02:00
Antony Riakiotakis
1134ca7420 Fix T41157
Was an issue with python interpretation error. Second part of the bug is
fixed by Campbell.
also minor UI tweak for occlusion UI.
2014-07-23 16:05:35 +02:00
Antony Riakiotakis
17021171f1 Occlusion Query based selection.
This patch creates an interface for selection mechanisms in opengl. This
makes it possible to switch between occlusion query based or select
rendermode based selection transparently.

This is really useful on graphics drivers that do not accelerate the
select rendermode path (some ATI cards are notorious for this, and the
new path is used by default there), since occlusion queries are always
hardware accelerated due to their use in games.

The option can be found under system - selection. Auto just enables
occlusion queries for ATI users while the rest of the options enforce
one of the two methods always.

There is just one known change, previous code enforced nearest bone to
always get selected, even when mouse selecting near the same position, I
couldn't replicate the behaviour though.

patch by me with edits and review by Campbell.

Thanks!
2014-07-23 15:26:08 +02:00
Bastien Montagne
78cdc707ab Add render result caching.
Simply add an option to render settings to save an EXR cache,
just when the render is finished. Also changed RE_ReadRenderResult() to read
cache instead of temp sample files (those are fully volatile now anyway).

Path to save cached render results is an UserPreferences setting.

Also added 'Reload render' feature to the Image Editor (so one can now re-open a blend,
and in an Image Editor hit ctrl-R to (try to) reload last render from cache).

Reviewers: campbellbarton, sergey

Differential Revision: https://developer.blender.org/D553
2014-06-28 19:23:34 +02:00
Campbell Barton
b96172cb05 UI: Add back ability to select a custom interface font 2014-06-14 02:32:38 +10:00
Campbell Barton
628353835c Fix T40267: Addon's bug tracker urls not respected 2014-05-21 12:18:25 +10:00
Campbell Barton
cc2cdfb08a Code cleanup: de-triplicate add menu/toolbars, also style edits 2014-03-20 01:34:24 +11:00
Campbell Barton
ba81fb70b2 NDOF: enable orbit sensitivity menuitem outside 3d view
The color picker uses.
2014-03-12 03:38:07 +11:00
Campbell Barton
6b693ab7bf NDOF: add navigation modes to user preferences
also comment debug prints for raytracing
2014-03-01 21:47:46 +11:00
Campbell Barton
ea58918171 NDOF: define 2 default navigation modes: free & orbit
After some discussion it seems both are valid defaults but useful for
very different purposes.

- 'free' lets you explore the scene with full 6dof (like fly mode)
- 'orbit' is closer to typical mouse view orbit, constraining to orbiting about a central location.

This doesn't effect orbit/pan which are available with modifier keys.
2014-02-20 12:02:59 +11:00
Campbell Barton
c9233bfd82 Code cleanup: style 2014-02-19 08:02:59 +11:00
Campbell Barton
dcdb4eaf9c NDOF: Fix for fly/walk mode ignoring axis invert options 2014-02-18 23:55:58 +11:00
Campbell Barton
2b0aa105f7 NDOF: show invert pan & zoom in the menu outside the 3d view 2014-02-18 11:57:49 +11:00
Campbell Barton
eedba54aae NDOF: rename 'zoom updown' to 'pan xy swap axis'
This swapped translation for all ndof events.
2014-02-15 09:54:11 +11:00
Campbell Barton
a71f072f9c UI: Replace +/- menus with collapsible ones
Patch D160, by Scott Petrovic with  own modifications.
2014-01-27 18:42:11 +11:00
Jonathan Williamson
bf0231f297 Clean up Zoom Style section of Input Preferences
This removes some grouping labels and improves option names to make them self explanatory and consistent with one another.

Before: https://www.dropbox.com/sh/zp4ildwpuew1w4x/RSLGK_gOG7
After: https://www.dropbox.com/s/c131zb5zb1ds5ap/Screenshot%202013-12-31%2018.54.38.png
2013-12-31 18:53:12 -06:00
Jonathan Williamson
e271e2d84e Align Author field and label horizontally
This aligns the User Preferences > File > Author field and label horizontally, saving space and making it more consistent with author text fields within the same section.
2013-12-31 18:20:33 -06:00
Jonathan Williamson
a594db4efc Improve readability of System panel of User Preferences
This commit adjusts the spacing of the items in User Preferences > System. The spacing is adjusted via separators between each section of options. This better differentiates between groups of options. It also removes a few extra separators for more consistency.
2013-12-31 18:20:33 -06:00
Dalai Felinto
ab49437958 View Navigation: Walk and Fly modes
This is a addtion to the dynamic fly mode.
It behaves as the first person navigation system available in most 3d world  games nowadays.

You can alternate between the old mode (Fly) and the new mode (Walk) in User Preferences > Inputs

Manual:
-------
http://wiki.blender.org/index.php/Doc:2.6/Manual/3D_interaction/Navigating/3D_View#View_Navigation
http://wiki.blender.org/index.php/Doc:2.6/Manual/3D_interaction/Navigating/3D_View/Navigation_Modes

Shortcuts:
----------
WASD (hold)  - Move forward/backward and straft left/right
QE (hold)    - Move up and down
Tab          - Alternate between Walk and Fly modes
Shift (hold) - Speed up movement
Alt (hold)   - Slow down movement
Space or MMB - Teleport
V            - Jump
+/- or mouse wheel - speed increase/decrease speed for this Blender session

User Preferences Options:
-------------------------
Navigation Mode   - fly/walk navigation systems (fly is the old, walk is the new, next options are for walk mode only)
Gravity           - alternate between free navigation and walk with gravity modes
Mouse Sensitivity - sensitivity factor to mouse influence to look around
Teleport Duration - how long the teleport lasts
Camera Height     - camera height to use in gravity mode
Jump Height       - maximum jump speed in m/s
Move Speed        - base move speed in m/s
Boost Factor      - multiplication factor when running or going slow (1/boost)

Development Notes:
------------------
* The initial code was based on view3d_fly.c.
* The NDoF code was not touched, so it most likely is not working.

Pending Issues:
---------------
* Draw in the UI the shortcut options, and current values (e.g., Mode: Fly/Walk)
  (we need a proper API for that)
* OSX seems to present issues if we re-center the mouse every time. We implemented a workaround for that, but a real fix would be welcome.

Code reviewed and with collaborations from Campbell Barton - @campbellbarton
Differential Revision: http://developer.blender.org/D30
2013-12-03 03:14:09 -02:00
Scott Petrovic
43d9eb2522 User Preferences: grey out Mouse Over options if option is unchecked.
Reviewed By: brecht

Differential Revision: http://developer.blender.org/D64
2013-12-02 15:32:29 +01:00
f546c7a889 Addons: remove tracker URL from addon template, as this is no longer used,
and link to the new Addons bug reporting page.
2013-11-16 03:15:17 +01:00
Joshua Leung
50ac2ee8de Grease Pencil: User-Pref for setting the default colour of newly created layers 2013-11-06 10:59:05 +00:00
Campbell Barton
658e72f47d minor ui edits
- move addon refresh button into header
- uilist, use icon for sorting by name (gives more room for name, icon is used in fileselector for same purpose).
- rename orderby to sort in rna and flag names.
- simplify BKE_nurb_handle_calc_simple
2013-08-30 11:49:35 +00:00
Lukas Toenne
771906bc09 Fix for #36387, User Preferences "Addons" panel bogs down the whole interface.
The addons panel draw function calls addon_utils.modules() which in turn retrieves a list of fake modules from the script paths every time. This can become costly when network paths are included for
addons. Solution is to put the scanning process into a dedicated "refresh" function and disable it in frequently called draw and filter functions, i.e. in these cases the cached addons_fake_modules list
will be used instead.

Note that this may lead to invalid addon lists if script paths are changed (which is not working 100% without restart anyway according to Campbell). For this there is now a "Refresh" operator button in
the addons preferences. If necessary and feasible such forced refreshes can be added later too.
2013-08-28 06:36:54 +00:00
Bastien Montagne
5b83a89c81 Followup to r59434 : py UI scripts edits.
Notes:
* Made those edits by full checking of py files, so I should have spoted most needed edits, yet it remains quite probable I missed a few ones, we'll fix if/when someone notice it...
* Also made some cleanup "on the road"!
2013-08-23 20:41:21 +00:00
Campbell Barton
b2b6d56443 move keymap ui into modules, its not loaded on startup anymore. 2013-07-08 22:57:51 +00:00
Campbell Barton
2c87b88180 re-arrange space_userpref_keymap, no need to use a subclass here, just import the module and call draw_keymaps().
- making this change now because some addons developers are interested in showing keymap UI in their addons prefs and using the class involved making a fake class instance which isnt needed.
2013-07-08 07:25:33 +00:00
Campbell Barton
2085a42e52 pep8 cleanup 2013-06-27 03:05:19 +00:00
Campbell Barton
c6adbe794e comment the icon file from the theme buttons since its not working. 2013-06-22 18:08:58 +00:00
Campbell Barton
447e9a4cd5 add option to enable auto-execute scripts, but exclude certain directories. 2013-06-18 18:11:52 +00:00
Campbell Barton
94e886943b add support for storing text styles in themes.
also reset text styles when resetting to the default theme.
2013-06-07 00:27:21 +00:00
Campbell Barton
df32165002 code cleanup: use more standard names for userpref ui functions was using context for style vars. 2013-06-06 20:36:28 +00:00
Thomas Dinges
98f78fde23 Code cleanup / Layout script:
* Never ever use something like "rowsub" as variable.
2013-04-13 22:52:28 +00:00
Sergey Sharybin
0d86c3f84c Image draw method option
This option replaces previously added GPU limit
option, which became tricky to follow after GLSL
display space conversion.

There're 4 modes available:
- AUTO which will try to guess which mode is
  best to use.
  Currently It'll try using GLSL and if it fails,
  will fallback to 2D textures.
  Probably it'll make sense checking on whether
  2D textures works well but currently such behavior
  shall be sufficient.
  Later we could make this method smarter (for example
  don't try to use GLSL on certain GPU or so).
- GLSL will currently behave the same way as AUTO,
  but it is intended to always try using GLSL
  (unless it can not be used because of existing
  limitation of dither and RGB curves).
- 2D Textures will use CPU-based color space conversion
  and use OGL 2D Texture to display the image.
  Image will be displayed in tiles, so there shall be
  no big GPU memory consumption.
- DrawPixels will straightly fallback to glDrawPixels
  without trying to use any fancy GPU stuff.

Hopefully this will also fix
#34943: Blender crashes when resizing the Compositing Screen Window
2013-04-12 10:52:47 +00:00
Bastien Montagne
5262fcd4d3 I18n: various fixing.
* Reflect changes stated in prev commit about contexts in py code.

* Add a "Plural" context, to handle cases where english does not mark plural at all (e.g. shorten labels of only one adjective). Not so happy with that, but can't see any other way to do it, for now.

* Abuse "ID_CURVE" context for all falloff curves (this should solve some confusion issues, e.g. "sharp"...).
2013-03-28 15:41:43 +00:00
Bastien Montagne
885441e758 I18n users request: add the ability to use a translated name for newly added/created objects or other datablocks.
This simply adds a third "translation type" (in addition to iface and tip), "new data", with relevant user settings flag and helper funcs/macros (and py api).

Currently implemented name translation when adding new objects, as well as modifiers and constraints, will add the others (cd layers, scenes, perhaps nodes [though I think they do not need this], etc.) later.
2013-03-20 18:42:09 +00:00
Ton Roosendaal
4c1d80bf86 Forgot to commit the button to set memory limit for using GPU Images... 2013-03-18 09:05:15 +00:00
Gaia Clary
64b2ecf6f9 Userprefs:Addon panel - Renamed label of the link to the documentation 2013-03-14 16:53:38 +00:00
Ton Roosendaal
5b2943d811 Bug report #34573
User Preferences, Themes, UI: buttons to define own icon image now draws
greyed out, to show the option isn't working yet.
2013-03-10 11:42:46 +00:00
Bastien Montagne
d0f4a2396b Actually, UI scripts should not use directly pgettext, but rather the iface or tooltip variants. Added those to bpy.app.translations, and used pgettext_iface.
(Did not add those when I created that module, because I did not thought we would actually need them in usual UI code, but turned out I was wrong).

Also made some optimizations in those py gettext funcs, when i18n is disabled at build time, no need to do pyobject -> cstring -> pyobject conversions!.
2013-02-10 10:29:38 +00:00
Campbell Barton
3b8a0f3d67 use import rather then assignment for loading '_' into scripts. 2013-02-10 09:56:05 +00:00
Bastien Montagne
c0fa16f2c9 Another fix for r54414 (cleaner to "import" pgettext once at top of files, also now using usual '_' shortcut). 2013-02-10 09:09:26 +00:00