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-11-22SceneRenderLayer > SceneLayer: Convert LayDalai Felinto
There are parts of the old (Blender Internal) rendering pipeline that is still using lay, e.g., in shi->lay. Honestly it will be easier to purge the entire Blender Internal code away instead of taking things from it bit by bit.
2017-11-22SceneRenderLayer > SceneLayer: Remove light_overrideDalai Felinto
2017-11-09Farewell BaseLegacyDalai Felinto
Finally, bases are all using the latest, newest SceneLayer bases.
2017-11-09Rename Scene macros back to their original _NEW less namesDalai Felinto
2017-11-09Farewell Scene->basactDalai Felinto
2017-10-26Move background images into the cameraCampbell Barton
This moves background images out of the 3D viewport, to be used only as camera reference images. For 3D viewport references, background images can be used, see: D2827 Some work is still needed (background option isn't working at the moment).
2017-10-16Workspace: Move engines to workspace and Properties Editor cleanupDalai Felinto
Engine is not stored in WorkSpaces. That defines the "context" engine, which is used for the entire UI. The engine used for the poll of nodes (add node menu, new nodes when "Use Nodes") is obtained from context. Introduce a ViewRender struct for viewport settings that are defined for workspaces and scene. This struct will be populated with the hand-picked settings that can be defined per workspace as per the 2.8 design. * use_scene_settings * properties editor: workshop + organize context path Use Scene Settings ================== For viewport drawing, Workspaces have an option to use the Scene render settings (F12) instead of the viewport settings. This way users can quickly preview the final render settings, engine and View Layer. This will affect all the editors in that workspace, and it will be clearly indicated in the top-bar. Properties Editor: Add Workspace and organize context path ========================================================== We now have the properties of: Scene, Scene > Layer, Scene > World, Workspace [Scene | Workspace] > Render Layer > Object [Scene | Workspace] > Render Layer > Object > Data (...) Reviewers: Campbell Barton, Julian Eisel Differential Revision: https://developer.blender.org/D2842
2017-10-07Cleanup: style, duplicate includesCampbell Barton
2017-09-26Cleanup: naming (GPU immediate util)Campbell Barton
2017-09-13Cleanup: use explicit 2d suffix for imm utilsCampbell Barton
Avoid ambiguity between 2d/3d (which were already named).
2017-08-25Merge branch 'master' into blender2.8Campbell Barton
2017-08-16Pass EvaluationContext instead of bContextCampbell Barton
2.8x branch added bContext arg in many places, pass eval-context instead since its not simple to reason about what what nested functions do when they can access and change almost anything. Also use const to prevent unexpected modifications. This fixes crash loading files with shadows, since off-screen buffers use a NULL context for rendering.
2017-08-15Cleanup/refactor: no new general arg-less macros enforcing var names please!Bastien Montagne
We do have an history of those pieces of evil in our code, would be nice to get fully rid of it, but at the very least let's not add more of them in new code. :)
2017-08-12Merge branch 'master' into blender2.8Brecht Van Lommel
2017-08-04Manipulator: fix 2d overlay w/ Blender RenderCampbell Barton
2017-07-21Pass EvaluationContext argument everywhereLuca Rood
Note that some little parts of code have been dissabled because eval_ctx was not available there. This should be resolved once DerivedMesh is replaced.
2017-07-14Workspace: Fix crash on preview, and sanitize placeholder functionsDalai Felinto
This commit effectively makes workspace switching useless as far as the active scene layer goes. The functions from the scene layer API to get the correct scene layer from "context" were a placeholder to be addressed by the workspace commit. When workspace was merged, however G.main was used as a replacement to pass the correct argument for the functions. As it turned out (surprise!) this leads to crash on render preview. We need to get rid of: * BKE_scene_layer_context_active_ex_PLACEHOLDER * BKE_scene_layer_context_active_PLACEHOLDER And either use SceneLayer explicitly or replace it by: * BKE_scene_layer_from_workspace_get
2017-07-13Depsgraph: Begin work on making depsgraph per-scene-layerSergey Sharybin
This is a first step towards proper depsgraph "ownership", where we would allow scene to be in multiple states dependent on active workspace or scene layer. This commit introduces a basic API to get proper dependency graph for a given scene layer. It also renames scene->depsgraph to depsgraph_legacy, so it's easier to search0-n-replace in the future.
2017-06-08Remove selection color from the baseSergey Sharybin
Use indirect access to it via object. It was already flushing from base to object, now we can avoid such flushing. Still weird to have selection color filled in by dependency graph, but now there is no synchronization going on at least.
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-25TexFace removal part 3Campbell Barton
- MTexPoly structure & layer type. - The 'Mesh.uv_textures' layers. - DerivedMesh TexFace drawing. - Scripts & UI.
2017-05-10Fix multi-view (single camera) manipulators selectionDalai Felinto
2017-05-10Merge remote-tracking branch 'origin/master' into blender2.8Dalai Felinto
Note: Depth placement was working already for BI, and althugh this commit breaks it for it, it makes it work for the draw manager engines.
2017-05-03Cleanup: move off-screen drawing to view3d_draw.cCampbell Barton
Since offscreen drawing now uses draw engine, this doesn't need to be considered legacy. Note that there are some calls into view3d_draw_legacy.c from view3d_draw.c this is generally not accepted, so its only dont where there are checks for new/old engine. Functions exposed to do this use a VP_deprecated prefix.
2017-05-02Cleanup: consistent arg orderCampbell Barton
2017-05-02Draw Manager: OpenGL render supportCampbell Barton
Works for clay-engine but doesn't draw objects with eevee.
2017-04-26View3D: move depth drawing into own functionCampbell Barton
No functional changes
2017-04-25Render API: Rename render > render_to_image; view_draw > render_to_viewDalai Felinto
This is part of the new draw manager design. Any engine (even clay, eevee, ...) should be able to draw to the viewport, as well as render to an image directly. Changing the API names to conform to that.
2017-04-19Fix mistake in previous commitSergey Sharybin
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-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-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-11Renaming: sl > scene_layerDalai Felinto
2017-04-073D View: manipulator from custom-manipulators branchCampbell Barton
Original code from @Severin with changes from @dfelinto & @hypersomniac. This doesn't cause many functional changes besides using new transform manipulators. Submitted as D2604
2017-04-05Cleanup: Move imm_draw utils into own fileCampbell Barton
These were in BIF_glutil which is documented to be removed, so best not define new API's there.
2017-04-03GPULamp: Separate GPULamp from GPUMaterialClément Foucault
Since we need GPULamps for draw engines, it makes sense to separate them.
2017-03-30fix OpenGL Render to image (T51082)Mike Erwin
This restores the feature for legacy viewport only. Modern viewport, Clay, Eevee, etc. will need further work. Eventually we should rename this something other than "OpenGL".
2017-03-23OpenGL: viewport background & depth buffer fixesMike Erwin
Untangling some of the logic in view3d_draw.
2017-03-22OpenGL: load projection matrix with new APIMike Erwin
New API does not share legacy OpenGL's concept of matrix modes. Part of T49450
2017-03-21OpenGL: convert to new matrix API (part 3)Mike Erwin
Part of T49450
2017-03-21OpenGL: remove 'circ' helper functionMike Erwin
This was no longer being used. Part of T49043
2017-03-14OpenGL: remove deprecated callsMike Erwin
glMaterial glColorMaterial glPixelTransfer and glEnable/Disable for GL_FOG, GL_LIGHTING, GL_COLOR_MATERIAL All of these were just setting default values, so I don't expect any visible change. Part of T49165 (general OpenGL upgrade)
2017-03-09Merge branch 'master' into blender2.8Campbell Barton
Manually merged viewport xray changes
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-04OpenGL: remove fdrawcheckerboardMike Erwin
This helper function was marked DEPRECATED since it uses old OpenGL calls. Switched last 2 uses to imm_draw_checker_box, which does the same thing, only awesome. Part of T49043
2017-03-02Remove all instances of OBACT from drawobject.c and related changesDalai Felinto
2017-03-02Remove tons of OBACTDalai Felinto
There are now only referenced in: * drawobject.c * particle_edit.c * space_image.c (a single case to be handled on workspace branch) * rigidbody_constraint.c (to be handled in the following commit)
2017-03-01Cleanup: warningsCampbell Barton
2017-02-28OpenGL: no more display listsMike Erwin
Part of the OpenGL core profile upgrade (T49165) Use the Batch drawing API (GPU_batch.h) when you want do draw something multiple times.