Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-05-31UI: support drawing panels from multiple contextsCampbell Barton
2018-05-30Fix render info not working with overlap regionsDalai Felinto
2018-05-29UI: Expand space sub-types into the menuCampbell Barton
Initial support for expanding editors, see: T54744
2018-05-23UI: Global "Status-bar" Area (WIP)Julian Eisel
* Add horizontal bar at bottom of all non-temp windows, similar to the Top-bar. * Status-bar is hidden in UI-less fullscreen mode * Current contents are preliminary and based on T54861: ** Left: Current file-path if needed. "(Modified)" note if file was changed. ** Center: Scene statistics (like in 2.7 Info Editor). ** Right: Progress-bars and reports * Internally managed as own "STATUSBAR" editor-type (hidden in UI). * Like with the Top-bar, Status-bar data and SDNA writing is disabled. * Most changes in low-level screen/area code are to support layout bounds that differ from window bounds. Design task: T54861 Main changes approved by @brecht.
2018-05-23Cleanup: move toolsystem into own includeCampbell Barton
Many files using the window manager don't access the tool-system. This avoids rebuilding many files when the tool-system changes.
2018-05-22Fix outliner crashes when dragging elements in some cases.Brecht Van Lommel
Avoid rebuilding outliner tree in more cases, also helps performance.
2018-05-18Tool System: support for tool cursorsCampbell Barton
2018-05-18Tool System: store the active tool in ScrAreaCampbell Barton
Without this we need to have the context to get the (space_type, mode) args for an active tool lookup. For event handling & poll its more convenient to have direct access.
2018-05-16Fix visible region overlap calculationCampbell Barton
Existing code didn't account for top/bottom overlap.
2018-05-15Fix random crashes in the outliner, especially with bigger scenes.Brecht Van Lommel
The outliner can redraw quicker without rebuilding the tree, for example when just moving the mouse and highlighting different items. The way this worked is that the outliner would be tagged to avoid rebuilding, however if another operation that does require rebuilding happens in the meantime we could go out of sync and crash.
2018-05-08Cleanup: whitespace, duplicate includesCampbell Barton
2018-05-07Fix crash in debug drawing of fullscreen exit iconJulian Eisel
Steps to recreate were: * Go into fullscreen mode (Alt+F10) * Open debug menu (Ctrl+Alt+D) * Set value to 1 * Confirming should crash (at least in debug builds)
2018-05-07Remove alternative action-zone drawing for collapsed regionsJulian Eisel
Was hidden behind debug values 1, 2 and 3. Also cleaned up logic in region_azone_edge_initialize. It was using a variable called is_hidden that actually should've been called is_visible.
2018-05-07UI: Hide & shrink scroll-bars based on cursor positionJulian Eisel
Scroll-bars are now hidden unless the cursor approaches them, in which case they smoothly grow and become more & more visible. Note that since 0d309144020168e55, scroll-bars are drawn on top of editor contents. There's no more jumping of buttons when scroll-bars appear. Technical notes: * AZones are used to adjust scrollbars based on mouse movements We may want to support screen level AZones if we want scrollbars to also smoothly appear when approaching them from a different area. I also plan to make further changes to AZones to clean up stuff a bit. * Had to move AZone handling to a post ARegion init stage, since we need the updated View2D data from there. * View2D masks and scroller rectangles are now updated on every redraw. It's cheap to do that though.
2018-05-07UI: Draw scroll-bars overlapping with editor contentJulian Eisel
Scroll-bars used to draw in a little extra space in the editor, causing buttons to jump a bit when they appeared/disappeared. Now they draw on top of the buttons, just small enough to avoid bigger overlaps. Followup commits will do further adjustments. With this we can get rid of a hack that was calling the (often Python defined) panel definition - the panel 'draw' callback - twice.
2018-05-06Fix wrong header alignment in user preferences, after recent commit.Brecht Van Lommel
2018-05-06UI: keep header top/bottom alignment the same when switching editor types.Brecht Van Lommel
2018-05-06Cleanup: deprecate area.headertype.Brecht Van Lommel
This was still used in a few places but not kept in sync with the actual header position. Always get alignment from the header region now.
2018-05-06Fix issue with hidden headers after previous commit.Brecht Van Lommel
2018-05-06UI: region overlap now works for headers as well.Brecht Van Lommel
This is for the 3D viewport and image editor. A remaining issue is that pulldown menu buttons only show text, which is not visible on all background colors, so making the header entirely transparent does not work well at the moment.
2018-05-02Fix T54864: Assert when changing interface display scaleDalai Felinto
The asserts were introduced on rB5f6c45498c92 (top-bar). Although the asserts are technically correct, they would fail even in master. And the commit simply added the asserts without fixing the situation itself (as you can see in the report, it is really simple to reproduce this issue). I propose we remove the asserts and bring them back only when the situation itself is fixed. It doesn't make sense to introduce asserts that would fail with the current state of the code.
2018-04-29UI: better support for dynamically sized regions in topbar.Brecht Van Lommel
Dynamically sized regions in the topbar were flickering due to only updating their size after redraws. Now there is an optional layout() callback for all regions in an area to do UI layout first, then refresh the region layout, and then do the actual drawing for each region. Task T54753
2018-04-28Cleanup: style, duplicate includesCampbell Barton
2018-04-27UI: Bring Embossing for the top-bar and quad-viewDalai Felinto
Note: Quad-View region overlay drawing is not working because of e01cadd657c7. However I tested this patch after reverting that commit locally and this patch's code seems fine. Partial revert of 3d62230ed673.
2018-04-27WM: new offscreen window draw method to replace all existing methods.Brecht Van Lommel
For Blender 2.8 we had to be compatible with very old OpenGL versions, and triple buffer was designed to work without offscreen rendering, by copying the the backbuffer to a texture right before swapping. This way we could avoid redrawing unchanged regions by copying them from this texture on the next redraws. Triple buffer used to suffer from poor performance and driver bugs on specific cards, so alternative draw methods remained available. Now that we require newer OpenGL, we can have just a single draw method that draw each region into an offscreen buffer, and then draws those to the screen. This has some advantages: * Poor 3D view performance when using Region Overlap should be solved now, since we can also cache overlapping regions in offscreen buffers. * Page flip, anaglyph and interlace stereo drawing can be a little faster by avoiding a copy to an intermediate texture. * The new 3D view drawing already writes to an offscreen buffer, which we can draw from directly instead of duplicating it to another buffer. * Eventually we will be able to remove depth and stencil buffers from the window and save memory, though at the moment there are still some tools using it so it's not possible yet. * This also fixes a bug with Eevee sampling not progressing with stereo drawing in the 3D viewport. Differential Revision: https://developer.blender.org/D3061
2018-04-26UI: toolbar single column size snappingCampbell Barton
Once a region is set to it's snapped size, zooming keeps the size.
2018-04-24Hide top-bar in fullscreenJulian Eisel
Fullscreen as in the Alt+F10 fullscreen.
2018-04-23Fix T54765: build error on macOS.Brecht Van Lommel
2018-04-23Cleanup: Get rid of ScrArea.butspacetype syncing with ScrArea.spacetypeJulian Eisel
The only real reason we need `butspacetype` is while switching areas, where we need to delay the actual switch to the RNA _update callback since only there we can access context. So instead of trying to sync it with `spacetype`, only set while needed and unset it afterwards (as in set to `SPACE_EMPTY`). This should also allow us to re-use `butspacetype` in versioning code when trying to read removed editors. It'll store the space type value of the removed editor which we can then use on versioning. For backwards compatibility, we store `butspacetype` with the value of `spacetype`.
2018-04-22UI: Remove EmbossingDalai Felinto
We are using a different visual system to tell the areas apart. There is no longer need for embossing.
2018-04-22Action Zone: No need for drawing (the triangles)Dalai Felinto
Now that we can easily tell the corners apart, there is no need to a specific action zone draw here (cursor still changes, naturally).
2018-04-22Action Zone: Enable them in the four cornersDalai Felinto
2018-04-22UI: Move ui_draw_anti_tria to UI_interface.hDalai Felinto
Using extern makes too easy to get a crash if the original function definition changed.
2018-04-21Fix crash when opening properties editorJulian Eisel
Opening as in activating one in an area that didn't contain a properties editor before.
2018-04-21Cleanup: styleCampbell Barton
2018-04-21Cleanup: Get rid of context in editor 'new' callbackJulian Eisel
Requiring context means we can't easily create new editors to replace deprecated ones in versioning code. Think it's reasonable to give editors access to scene and area data for their initial setup though. They mostly need it for setting "the view", as in, scrolling values. Also did minor cleanup in top-bar creation function.
2018-04-21Top-bar: Don't draw horizontal region separatorJulian Eisel
That way the tabs look nicely together with the lower sub-bar.
2018-04-21Topbar: visual tweaksBrecht Van Lommel
* Make bottom half of topbar a bit higher * Make tabs higher and put them closer together * Remove screen layouts dropdown, we'll have one layout per window * Hide action zones from topbar * Don't change topbar background color when activating
2018-04-20Dopesheet-Timeline: Removal of Timeline Editor!Joshua Leung
This commit removes all references to the old timeline editor. Unfortuantely, the removal of the Timeline spacetype defining functions has ended up breaking the version patching code I'd been working on earlier (as now, the editor gets marked as "unknown/info" before we get a chance to patch it!)
2018-04-20Add utility to make it easier to get editors/regions to redraw after ↵Joshua Leung
changing visibility of regions Previously, there was only an API method to toggle and update, but sometimes you want to explicitly hide instead of just toggling.
2018-04-20UI: New Global Top-Bar (WIP)Julian Eisel
== Main Features/Changes for Users * Add horizontal bar at top of all non-temp windows, consisting out of two horizontal sub-bars. * Upper sub-bar contains global menus (File, Render, etc.), tabs for workspaces and scene selector. * Lower sub-bar contains object mode selector, screen-layout and render-layer selector. Later operator and/or tool settings will be placed here. * Individual sections of the topbar are individually scrollable. * Workspace tabs can be double- or ctrl-clicked for renaming and contain 'x' icon for deleting. * Top-bar should scale nicely with DPI. * The lower half of the top-bar can be hided by dragging the lower top-bar edge up. Better hiding options are planned (e.g. hide in fullscreen modes). * Info editors at the top of the window and using the full window width with be replaced by the top-bar. * In fullscreen modes, no more info editor is added on top, the top-bar replaces it. == Technical Features/Changes * Adds initial support for global areas A global area is part of the window, not part of the regular screen-layout. I've added a macro iterator to iterate over both, global and screen-layout level areas. When iterating over areas, from now on developers should always consider if they have to include global areas. * Adds a TOPBAR editor type The editor type is hidden in the UI editor type menu. * Adds a variation of the ID template to display IDs as tab buttons (template_ID_tabs in BPY) * Does various changes to RNA button creation code to improve their appearance in the horizontal top-bar. * Adds support for dynamically sized regions. That is, regions that scale automatically to the layout bounds. The code for this is currently a big hack (it's based on drawing the UI multiple times). This should definitely be improved. * Adds a template for displaying operator properties optimized for the top-bar. This will probably change a lot still and is in fact disabled in code. Since the final top-bar design depends a lot on other 2.8 designs (mainly tool-system and workspaces), we decided to not show the operator or tool settings in the top-bar for now. That means most of the lower sub-bar is empty for the time being. NOTE: Top-bar or global area data is not written to files or SDNA. They are simply added to the window when opening Blender or reading a file. This allows us doing changes to the top-bar without having to care for compatibility. == ToDo's It's a bit hard to predict all the ToDo's here are the known main ones: * Add options for the new active-tool system and for operator redo to the topbar. * Automatically hide the top-bar in fullscreen modes. * General visual polish. * Top-bar drag & drop support (WIP in temp-tab_drag_drop). * Improve dynamic regions (should also fix some layout glitches). * Make internal terminology consistent. * Enable topbar file writing once design is more advanced. * Address TODO's and XXX's in code :) Thanks @brecht for the review! And @sergey for the complaining ;) Differential Revision: D2758
2018-04-10Merge branch 'master' into blender2.8Sergey Sharybin
2018-04-09UI: Clamp scrollbar offset to lower view boundariesJulian Eisel
Fixes the "emtpy scrolling" glitch by clamping the scroller offset to the boundary of the view when it's smaller than the previous. Fixes T45197. Patch by @januz. Differential Revision: D1580
2018-04-05Merge branch 'master' into blender2.8Sybren A. Stüvel
2018-04-05IMB_metadata improvementsSybren A. Stüvel
- Metadata handling is now separate from `ImBuf *`, allowing it to be used with a generic `IDProperty *`. - Merged `IMB_metadata_add_field()` and `IMB_metadata_change_field()` into a more robust `IMB_metadata_set_field()`. This new function doesn't return any status (it now always succeeds, and the previously existing return value was never checked anyway). - Removed `IMB_metadata_del_field()` as it was never actually used anywhere. - Use `IMB_metadata_ensure()` instead of having `IMB_metadata_set_field()` create the containing `IDProperty` for you. - Deduplicated function declarations, moved `intern/IMB_metadata.h` out of `intern/`. Note that this does mean that we have some extra `#include "IMB_metadata.h"` lines now, as the metadata functions are no longer declared in `IMB_imbuf.h`. - Deduplicated function declarations, all metadata-related declarations are now in imbuf/IMB_metadata.h. Part of: https://developer.blender.org/D2273 Reviewed by: @campbellbarton
2018-03-28UI: Perf: Don't use implicit Attrib.Clément Foucault
Implicit attrib is doing memcpy which seems to be slower compared to individual immAttrib*. Only fixed the ones who appeared in my profilling logs.
2018-02-28WorkSpace: UI filtering for add-onsCampbell Barton
Allows for each workspace to have it's own add-ons on display. Filtering for: Panels, Menus, Keymaps & Manipulators. Automatically applies to add-ons at the moment. Access from workspace, toggled off by default once enabled, add-ons can be white-listed. See D3076
2018-02-17Code cleanup: remove WM subwindows.Brecht Van Lommel
These no longer made much sense after regions were added, they just duplicated state that was already in the regions.
2018-02-14GPU: use alpha blend that works for drawing to transparent buffer.Brecht Van Lommel
It's unlikely to ever be intentional to square the source alpha, as happens with glBlendFunc, so this changes the blending throughout the code.
2018-02-14Code cleanup: simplify subwindow code.Brecht Van Lommel