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-07-18GWN: Port to GPU module: Replace GWN prefix by GPUClément Foucault
2018-07-08Cleanup: abbreviate unsigned types (editors, wm)Campbell Barton
2018-07-04Workspaces: add main and child windows.Brecht Van Lommel
* 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-04-28Cleanup: style, duplicate includesCampbell Barton
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-03-25GPUTexture: Small refactor.Clément Foucault
This includes a few modification: - The biggest one is call glActiveTexture before doing any call to glBindTexture for rendering purpose (uniform value depends on it). This is also better to know what's going on when rendering UI. So if there is missing UI elements because of this commit look for this first. This allows us to have "less calls" to glActiveTexture (I did not measure the final count) and less checks inside GPU_texture. - Remove use of GL_TEXTURE0 as a uniform value in a few places. - Be more strict and use BLI_assert for bad usage of GPU_texture functions. - Disable filtering for integer and stencil textures (not supported by OGL specs). - Replace bools inside GPUTexture by a bitflag supporting more options to identify texture types.
2018-02-13Code cleanup: stop using rectangle textures in window draw, simplify code.Brecht Van Lommel
2018-01-10Merge branch 'master' into blender2.8Campbell Barton
2018-01-10Cleanup: comment block alignmentCampbell Barton
2017-10-07Cleanup: style, duplicate includesCampbell Barton
2017-06-19Gawain API naming refactorCampbell Barton
Use consistent prefix for gawain API names as well as some abbreviations to avoid over-long names, see: D2678
2017-06-01Main Workspace IntegrationJulian Eisel
This commit does the main integration of workspaces, which is a design we agreed on during the 2.8 UI workshop (see https://wiki.blender.org/index.php/Dev:2.8/UI/Workshop_Writeup) Workspaces should generally be stable, I'm not aware of any remaining bugs (or I've forgotten them :) ). If you find any, let me know! (Exception: mode switching button might get out of sync with actual mode in some cases, would consider that a limitation/ToDo. Needs to be resolved at some point.) == Main Changes/Features * Introduces the new Workspaces as data-blocks. * Allow storing a number of custom workspaces as part of the user configuration. Needs further work to allow adding and deleting individual workspaces. * Bundle a default workspace configuration with Blender (current screen-layouts converted to workspaces). * Pressing button to add a workspace spawns a menu to select between "Duplicate Current" and the workspaces from the user configuration. If no workspaces are stored in the user configuration, the default workspaces are listed instead. * Store screen-layouts (`bScreen`) per workspace. * Store an active screen-layout per workspace. Changing the workspace will enable this layout. * Store active mode in workspace. Changing the workspace will also enter the mode of the new workspace. (Note that we still store the active mode in the object, moving this completely to workspaces is a separate project.) * Store an active render layer per workspace. * Moved mode switch from 3D View header to Info Editor header. * Store active scene in window (not directly workspace related, but overlaps quite a bit). * Removed 'Use Global Scene' User Preference option. * Compatibility with old files - a new workspace is created for every screen-layout of old files. Old Blender versions should be able to read files saved with workspace support as well. * Default .blend only contains one workspace ("General"). * Support appending workspaces. Opening files without UI and commandline rendering should work fine. Note that the UI is temporary! We plan to introduce a new global topbar that contains the workspace options and tabs for switching workspaces. == Technical Notes * Workspaces are data-blocks. * Adding and removing `bScreen`s should be done through `ED_workspace_layout` API now. * A workspace can be active in multiple windows at the same time. * The mode menu (which is now in the Info Editor header) doesn't display "Grease Pencil Edit" mode anymore since its availability depends on the active editor. Will be fixed by making Grease Pencil an own object type (as planned). * The button to change the active workspace object mode may get out of sync with the mode of the active object. Will either be resolved by moving mode out of object data, or we'll disable workspace modes again (there's a `#define USE_WORKSPACE_MODE` for that). * Screen-layouts (`bScreen`) are IDs and thus stored in a main list-base. Had to add a wrapper `WorkSpaceLayout` so we can store them in a list-base within workspaces, too. On the long run we could completely replace `bScreen` by workspace structs. * `WorkSpace` types use some special compiler trickery to allow marking structs and struct members as private. BKE_workspace API should be used for accessing those. * Added scene operators `SCENE_OT_`. Was previously done through screen operators. == BPY API Changes * Removed `Screen.scene`, added `Window.scene` * Removed `UserPreferencesView.use_global_scene` * Added `Context.workspace`, `Window.workspace` and `BlendData.workspaces` * Added `bpy.types.WorkSpace` containing `screens`, `object_mode` and `render_layer` * Added Screen.layout_name for the layout name that'll be displayed in the UI (may differ from internal name) == What's left? * There are a few open design questions (T50521). We should find the needed answers and implement them. * Allow adding and removing individual workspaces from workspace configuration (needs UI design). * Get the override system ready and support overrides per workspace. * Support custom UI setups as part of workspaces (hidden panels, hidden buttons, customizable toolbars, etc). * Allow enabling add-ons per workspace. * Support custom workspace keymaps. * Remove special exception for workspaces in linking code (so they're always appended, never linked). Depends on a few things, so best to solve later. * Get the topbar done. * Workspaces need a proper icon, current one is just a placeholder :) Reviewed By: campbellbarton, mont29 Tags: #user_interface, #bf_blender_2.8 Maniphest Tasks: T50521 Differential Revision: https://developer.blender.org/D2451
2017-04-07OpenGL: transition away from GL_QUADSMike Erwin
Single quads are drawn as a TRIANGLE_FAN, with 4 verts in the same order. Multiple quads now use PRIM_QUADS_XXX and will need further work. Only 8 places still use this. Part of T49043
2017-04-06Gawain: VertexFormat_add_attrib (function name change)Mike Erwin
See intern/gawain for the API change. Other files are updated to use the new name. Also updated every call site to the recommended style: unsigned int foo = VertexFormat_add_attrib(format, "foo", COMP_ ... )
2017-03-06Merge branch 'master' into blender2.8Julian Eisel
Conflicts: source/blender/editors/space_nla/nla_draw.c source/blender/editors/space_view3d/view3d_draw.c
2017-03-06Multi-View: Map cursor coordinates to visual coordinatesJulian Eisel
When rendering multi-view in side-by-side or top-bottom mode, we squash the UI to half of its size and draw it twice on screen. That means the cursor coordinates used for UI interaction don't match what's visible on screen. This commit is a little event system hack (tm) to fix this. It has some small glitches with cursor grabbing, but nothing to bad. We'll also use it for viewport HMD support. D1350, thanks for the feedback @dfelinto!
2017-02-28clean up GL / GPU #includesMike Erwin
2017-01-09Fix T49861: Interlace stereo drawingDalai Felinto
This does not address stapling shader in 2.8, though the solution can be similar (own shader, not polutting interlace shader). part of T49043 Reviewers: merwin Differential Revision: https://developer.blender.org/D2440
2017-01-02Merge remote-tracking branch 'origin/master' into blender2.8Dalai Felinto
I'm deliberately ignoring/reverting rB070f22c4 which in turns means T49861 is happening on 2.8
2017-01-02Fix T49861: Interlace stereo is broken in 2.78Dalai Felinto
This is a regression introduced in rB5bd9e832 It looks more like a hack than a proper fix, but the shader logic changed a lot for blender2.8, so I would rather do the elegant fix there, while leaving master working. If we ever do a 2.78b (or 2.79) this should get in.
2016-10-25OpenGL: clean up glActiveTexture usageMike Erwin
Removed some of my earlier glActiveTexture calls. After reviewing the code I now trust that GL_TEXTURE0 is active by default. Fewer GL calls, same results. Fixed some misuse of glActiveTexture & glUniformi, mostly my fault. Caught by --debug-gpu on Windows. Don't know why this appeared to be working previously! Plus some easy cleanup nearby.
2016-10-21Viewport: add missing alpha for stereoDalai Felinto
2016-10-18OpenGL: tweak image shaders & code that uses themMike Erwin
- rename image shaders to describe exactly what they do - rename inputs to match other built-in shaders - set & use active texture unit - no need to enable/disable textures with GLSL - pull vertex format setup out of loops
2016-09-28Fix animation transition in region overlay not working since 4a1feaa5Dalai Felinto
We still have stills with the User Preference window, though.
2016-09-26immediate mode: using texture shader for stereo drawingDalai Felinto
(for side-by-side and top-bottom stereo modes)
2016-09-26Cleanup: stereo windowmanager codeDalai Felinto
This will make the changes in blender2.8 branch simpler
2015-12-27OpenGL: stipple support added to basic GLSL shaderAlexander Romanov
The is intended to replace the deprecated glPolygonStipple() calls with a shader based alternative, once we switch over to GLSL shaders. Reviewers: brecht Differential Revision: https://developer.blender.org/D1688
2015-12-08OpenGL: remove non-power-of-two texture check, where even ES 2.0 does not ↵Brecht Van Lommel
need it.
2015-08-23Cleanup: spelling/styleCampbell Barton
2015-07-14Cleanup: headers (wm)Campbell Barton
2015-06-13Multi-View: Some Stereo 3D modes require a special drawing all the timeDalai Felinto
some 3d methods change the window arrangment, thus they shouldn't toggle on/off just because there is no 3d elements being drawn The optimized solution would be to draw only the left eye in those cases, but there is some issue going on with that, so this commit will do for now.
2015-06-09Multiview: fix Time Sequential crash when screen is fullscreen T44688Dalai Felinto
ED_screen_duplicate() was never written to support non-fullscreen modes. This is prior to the hidden ui fullscreen commit, and it's quite ancient in Blender's code (since Jan/08 - 1363134d) That's why duplicate window, and new screen operators are disabled when screen is full.
2015-06-08WM: refactor window code for stereo3dCampbell Barton
Window copy code made it hard to test fixes.
2015-05-28Fix T44688: Stereo3D time-sequential crashesCampbell Barton
2015-04-27Usual UI messages fixes...Bastien Montagne
2015-04-24Multi-View: Set Stereo 3D operator support for EXEC callsDalai Felinto
2015-04-24Multi-View: rolls back to a non quadbuffer friendly window if displaymode ↵Dalai Felinto
changes from pageflip to something else In some cases the graphic card supports quadbuffer, but not the display. In this case it is nice to go back to a window that does not have quadbuffer if you change back to anaglyph, interlace, ... Otherwise you may be stuck with a flickering window
2015-04-24Multiview: Quadbuffer (time sequential) working [debug builds only]Dalai Felinto
I'll enable this mode in Release builds once I figure out how to best handle opening files that are saved with the quadbuffer mode. In fact I think no display mode should be saved/read from a file. Tested in Linux with NVidia 3D Vision and NVidia 3D Vision Pro with NVidia Quadro FX 580 and Quadro FX 4600. (kudos for the Visgraf Lab at IMPA, for having me around with all those gadgets ;) Thanks for Cédric Paille (cedricp) for the code snippets and tests - T44327
2015-04-13Cleanup: do not use _reportf() when not doing any string formating!Bastien Montagne
Also usual minor i18n messages stuff...
2015-04-10rename _ipo -> _fcurveCampbell Barton
2015-04-10Multiview: remove option to preview the selected stereo 3d mode and error ↵Dalai Felinto
when quadbuffer not supported This was causing glitches when switching from/to fullscreen modes (e.g., side by side to anaglyph). As for the quadbuffer errors this is part of a more complete solution to be committed later.
2015-04-09Multiview: fix crashes with pageflip mode - by Cédric Paille (cedricp)Dalai Felinto
2015-04-08Multiview: Fullscreen modes (sidebyside/topbottom) were not workingDalai Felinto
* WM_window_is_fullscreen() is not the correct test. * Also, we no longer change window to fullscreen automatically.
2015-04-07Multiview: update Set Stereo 3D menu when the selected stereo mode changesDalai Felinto
2015-04-06Multi-View and Stereo 3DDalai Felinto
Official Documentation: http://www.blender.org/manual/render/workflows/multiview.html Implemented Features ==================== Builtin Stereo Camera * Convergence Mode * Interocular Distance * Convergence Distance * Pivot Mode Viewport * Cameras * Plane * Volume Compositor * View Switch Node * Image Node Multi-View OpenEXR support Sequencer * Image/Movie Strips 'Use Multiview' UV/Image Editor * Option to see Multi-View images in Stereo-3D or its individual images * Save/Open Multi-View (OpenEXR, Stereo3D, individual views) images I/O * Save/Open Multi-View (OpenEXR, Stereo3D, individual views) images Scene Render Views * Ability to have an arbitrary number of views in the scene Missing Bits ============ First rule of Multi-View bug report: If something is not working as it should *when Views is off* this is a severe bug, do mention this in the report. Second rule is, if something works *when Views is off* but doesn't (or crashes) when *Views is on*, this is a important bug. Do mention this in the report. Everything else is likely small todos, and may wait until we are sure none of the above is happening. Apart from that there are those known issues: * Compositor Image Node poorly working for Multi-View OpenEXR (this was working prefectly before the 'Use Multi-View' functionality) * Selecting camera from Multi-View when looking from camera is problematic * Animation Playback (ctrl+F11) doesn't support stereo formats * Wrong filepath when trying to play back animated scene * Viewport Rendering doesn't support Multi-View * Overscan Rendering * Fullscreen display modes need to warn the user * Object copy should be aware of views suffix Acknowledgments =============== * Francesco Siddi for the help with the original feature specs and design * Brecht Van Lommel for the original review of the code and design early on * Blender Foundation for the Development Fund to support the project wrap up Final patch reviewers: * Antony Riakiotakis (psy-fi) * Campbell Barton (ideasman42) * Julian Eisel (Severin) * Sergey Sharybin (nazgul) * Thomas Dinged (dingto) Code contributors of the original branch in github: * Alexey Akishin * Gabriel Caraballo