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
2017-06-07WM: add wmManipulatorType, from wmManipulatorCampbell Barton
Having the type in mixed in with each instance made it hard to expose types to RNA/Python.
2017-06-07Minor manipulator API changesCampbell Barton
Sync up with custom-manipulator branch
2017-06-07WM: remove unused return valuesCampbell Barton
2017-06-06WM: manipulator callback arg orderCampbell Barton
Use same arg order for C & RNA
2017-06-06WM: functions for assigning all manipulator callbacksCampbell Barton
- Move callbacks into type struct. - Rename render_3d_intersection -> draw_select. - Add header for function signatures (needed for types and api headers). - Add WM_manipulatormaptype_find
2017-06-05WM: pass manipulator-map when creating wmManipulatorGroupCampbell Barton
Also store parent-pointer in wmManipulatorGroup's, since its not always possible to access the parent pointer.
2017-06-05WM: add WM_manipulatorgrouptype_append_ptrCampbell Barton
Needed for PyAPI registration.
2017-06-05WM: de-duplicate operator append codeCampbell Barton
WM_operatortype_append(_ptr) functions had diverged.
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-05-31Fix manipulator immediate mode useCampbell Barton
Needs 3D coords
2017-05-29Node Backdrop ManipulatorCampbell Barton
From custom-manipulator branch, usable when viewer node is selected. This might need some changes but works on basic level.
2017-05-26Rename: FILE_ACTIVELAY > FILE_ACTIVE_COLLECTIONDalai Felinto
2017-05-26Implement support for Append objects in Blender 2.8Dalai Felinto
Note for users ============== The active_layer option used for the filebrowser operators is now called active_collection. If there is no collections in the scenelayer or if this option is not selected we automatically create a new collection for the new objects. This is the same behaviour of trying to add a new object when there is no collection. Note for developers =================== For those cases I moved the object user count handling from readfile to the scene collection system. It's working fine for those, but we still need to re-visit this for Add objects, and Duplicate - In those cases the usercount is 2 when it should be 1. Reviewers: mont29, sergey Differential Revision: https://developer.blender.org/D2686
2017-05-21Cleanup: warningsCampbell Barton
2017-05-16Fix info header stats to iterator over layer instead of sceneDalai Felinto
Although this is working fine, there are two changes expected in the new future once depsgraph copy on write is implemented: 1) To call ED_info_stats_clear a callback from depsgraph, instead of the notifier system. (that would also allow us to clear only one SceneLayer). 2) To store/get stats from the evaluated SceneLayer, as well as iterate over the evaluated objects as well.
2017-05-10Merge remote-tracking branch 'origin/master' into blender2.8Dalai Felinto
2017-05-10Fix multi-view (single camera) manipulators selectionDalai Felinto
2017-05-08Cleanup: style & header guardsCampbell Barton
2017-05-04Remove cpackCampbell Barton
Places where it's removed are already replaced by newer logic.
2017-05-02Add scene argument for notifiersCampbell Barton
From workspaces branch
2017-05-01Reworked version of dashed line shader.Bastien Montagne
Using geometry shader allows us to get rid of the 'line origin' extra vertex attribute, which means dashed shader no longer requires fiddling with those vertex attributes definition, and, most importantly, does not require anymore special drawing code! As you can see, this makes code much simpler, and much less verbose, especially in complex cases. In addition, changed how dashes are handled, to have two 'modes', a simple one with single color (using default "color" uniform name), and a more advanced one allowing more complex and multi-color patterns. Note that since GLSL 1.2 does not support geometry shaders, a hack was added for now (which gives solid lines, but at least does not make Blender crash).
2017-04-262D dashed line shader: changed to use viewport side instead of scale.Bastien Montagne
The scale version was working(ish), but it was not really extendable to a 3D line version of the shader. Also note that sequencer view still keeps its 'UI scale' adaptation (dashes grow together with UI scale setting). Would be nice to do that everywhere ultimately imho, but nothing urgent here.
2017-04-26Move imm_draw_line_box_dashed to GPU_immediate_util.Bastien Montagne
2017-04-26Tweak 2D line dashed shader to take a scale parameter.Bastien Montagne
Even though in some cases this does not seems useful, in others (like zommed 2D views) we have to correct MVP matrix scaling to get fixed dashes size. Note that we could do that differently (commented about it in shader), would also have been cleaner to extract that MVP scale from within the shader, but there does not seem to be a way to initialize uniform values from within a shader, and would rather avoid recomputing the scale for every run (especially since 3DViewport does not need it e.g.). Part of D2647.
2017-04-25Merge branch 'master' into blender2.8Sybren A. Stüvel
2017-04-25WM: don't search for app-template when its emptyCampbell Barton
Changing from a loaded app-template back to Default (none set) would scan paths for a file with no name. Harmless but silly.
2017-04-20Merge branch 'master' into 28Campbell Barton
2017-04-20Fix T51248: user preferences window size not adapted to DPI.Brecht Van Lommel
2017-04-19Get rid of glMatrixMode callsSergey Sharybin
With the explicit calls we don't need to worry about current state outside of the GPU module now. In fact. we don't need to worry about current matrix mode in core profile at all. Legacy OpenGL now has some code which ensures current matrix mode when using explicit calls to push/pop matrix.
2017-04-19Fix node editor drawing when built with core profileSergey Sharybin
There are two major things in this commit. First one is to have proper stack for projection matrices. This is something what OpenGL specification grants to have at least 2 elements for and what is required to have for proper editor drawing without refactoring the way how we restore projection matrix. Supporting this stack have following advantages: - Our GPU stack is closer to OpenGL specs, making it easier to follow by other developers who are always familiar with OpenGL. - Makes it easier to port all editors to a new API. - Should help us getting rid of extra matrix push/pop added in various commits to 2.8 branch. The new API follows the following convention: - gpuPushMatrix/gpuPopMatrix ALWAYS deals with model view matrix and nothing more. While this name does not fully indicate that it's only model view matrix operator, it matches behavior of other matrix operations such as transform which also doesn't indicate what matrix type they are operating on. - Projection matrix has dedicated calls for push/pop which are gpuPushProjectionMatrix/gpuPopProjectionMatrix.
2017-04-18Remove deprecated GL_LIGHTING chunk from manipulator draw code.Bastien Montagne
This is new feature, will likely need own shader to get same result. Just commented it as TODO, though, this is not high priority. Part of T51164.
2017-04-16cleanup use of immUniformColorMike Erwin
- use best function for the job - don't specify alpha if 100% - 'f' for floating point literals
2017-04-16use immUniformColor instead of immUniform("color"Mike Erwin
The specialized color functions are better in every way: - faster lookup (don't have to match "color" string) - flexible inputs (RGB with separate alpha) - automatic alpha = 1.0 if not specified Sort of related to T49043
2017-04-15GPU Matrix API: clean up after 2D-3D unificationMike Erwin
See GPU_matrix.h & gpu_matrix.c for the important changes. Other files are mostly just updated to use the latest API. - remove unused functions, defines, enums, comments - remove "3D" from function names - init to Identity transform (otherwise empty stack) - gpuMatrixReset lets outside code return to initial state Part of T49450 Follow up to D2626 and 49fc9cff3b90
2017-04-14Revert "OpenGL core: add some missing gpuBegin to allow clay with no UI"Dalai Felinto
This reverts commit 1c01811cce00b799ee94aad24083ddf3954a5829. It broke everything.
2017-04-13OpenGL core: add some missing gpuBegin to allow clay with no UIDalai Felinto
2017-04-13Merge branch 'master' into blender2.8Alexander Romanov
2017-04-13Datablock ID PropertiesAlexander Romanov
The absence of datablock properties "will certainly be resolved soon as the need for them is becoming obvious" said the [[http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.67/Python_Nodes|Python Nodes release notes]]. So this patch allows Python scripts to create ID Properties which reference datablocks. This functionality is implemented for `PointerProperty` and now such properties can be created with Python. In addition to the standard update callback, `PointerProperty` can have a `poll` callback (standard RNA) which is useful for search menus. For details see the test included in this patch. Original author: @artfunkel Alexander (Blend4Web Team) Reviewers: brecht, artfunkel, mont29, campbellbarton Reviewed By: mont29, campbellbarton Subscribers: jta, sergey, campbellbarton, wisaac, poseidon4o, mont29, homyachetser, Evgeny_Rodygin, AlexKowel, yurikovelenov, fjuhec, sharlybg, cardboard, duarteframos, blueprintrandom, a.romanov, BYOB, disnel, aditiapratama, bliblubli, dfelinto, lukastoenne Maniphest Tasks: T37754 Differential Revision: https://developer.blender.org/D113
2017-04-11Make image drawing code working with core profileSergey Sharybin
The issue was caused here by usage of deprecated GL_CURRENT_PROGRAM which was returning rubbish value. Now we use imm API and create vertex format prior to immBindProgram. This made us required to have some sort of state passed from setup function to actual drawing.
2017-04-11Move cage_manipulator.c to new GL code.Bastien Montagne
Note: I’d assume gawain equivalent to glDrawArrays would be batches? But for two lines drawn twice this looks totally overkill anyway, so switched back to basic immediate-mode-like API. A bit frustrating to work on this code, since afaict you cannot check the results in Blender, being mostly unused currently...
2017-04-11FIx copy/paste mistake in own previous commit.Bastien Montagne
2017-04-11Get rid of last deprecated OpenGL calls in arrow_manipulator.cBastien Montagne
Hope that makes sense...
2017-04-11Move arrow2d_manipulator to new immediate mode GL.Bastien Montagne
2017-04-10GL: use imm* module for 2D cage manipulatorCampbell Barton
2017-04-10GL/playanim: use immediate mode wrapper, replace glDrawPixelsCampbell Barton
2017-04-08OpenGL: use PRIM instead of GL enum everywhere elseMike Erwin
Well, everywhere that uses Gawain for drawing. Places that call OpenGL directly still use GL enums. Part of T49043
2017-04-07OpenGL: use PRIM instead of GL enum for immBeginMike Erwin
Getting ready for a Gawain API change... Part of T49043
2017-04-07use COMP instead of GL enum to construct vertex formatMike Erwin
I converted all other files a day or two ago; this file was part of a recent merge.
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-07fix use of uninitialized variableMike Erwin
Bug crawled in via 2944438e9a276e48d7eabb5bb88ecec9b2f1e7dc as part of custom manipulators.