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-08-07Refactor ID copying (and to some extent, ID freeing).Bastien Montagne
This will allow much finer controll over how we copy data-blocks, from full copy in Main database, to "lighter" ones (out of Main, inside an already allocated datablock, etc.). This commit also transfers a llot of what was previously handled by per-ID-type custom code to generic ID handling code in BKE_library. Hopefully will avoid in future inconsistencies and missing bits we had all over the codebase in the past. It also adds missing copying handling for a few types, most notably Scene (which where using a fully customized handling previously). Note that the type of allocation used during copying (regular in Main, allocated but outside of Main, or not allocated by ID handling code at all) is stored in ID's, which allows to handle them correctly when freeing. This needs to be taken care of with caution when doing 'weird' unusual things with ID copying and/or allocation! As a final note, while rather noisy, this commit will hopefully not break too much existing branches, old 'API' has been kept for the main part, as a wrapper around new code. Cleaning it up will happen later. Design task : T51804 Phab Diff: D2714
2017-07-31Correct last commit, for-loop included NULL checkCampbell Barton
2017-07-17Merge branch 'master' into blender2.8Campbell Barton
2017-07-16Fix T52058: Jumping to keyframe causes Blender to freeze indefinitelyJoshua Leung
Revise the logic here to be more robust when keyframes with similar-but-different frame numbers (e.g. 70.000000 vs 70.000008) would cause the search to go into an infinite loop, as the same keyframe was repeatedly found (and skipped).
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-08Merge branch 'master' into blender2.8Brecht Van Lommel
2017-07-08Fix T51889: new file or load factory settings results in broken UI.Brecht Van Lommel
Fix some cases that still assumed there to be a global DPI, instead of a per window DPI that needs to be set before reading U.dpi.
2017-06-26Merge branch 'master' into blender2.8Campbell Barton
2017-06-24Fix T51792: crash calling bpy.ops.screen.animation_cancel while scrubbing.Brecht Van Lommel
2017-06-21Manipulators: move settings to ID propertiesCampbell Barton
This makes manipulator access closer to operators, and allows Python access. This adds RNA for manipulators, but not Python registration yet. - Split draw style into 2x settings: `draw_style` (enum) & `draw_options` (enum-flag) - Rename wmManipulator.properties -> properties_edit, Use wmManipulator.properties for ID-properties. Note that this area of the API will need further work since manipulators now have 2 kinds of properties & API's to access them.
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-15Cleanup: remove useless call to `BKE_screen_free()` in screen deletion.Bastien Montagne
`BKE_libblock_free()` will call it itself.
2017-06-15Fix dangerous code when deleting Scene.Bastien Montagne
That one was probably not an actual issue, except maybe in some corner cases (like deleting a linked scene also used by some other linked scene). Again, better not try to do smart & complex freeing logic outside of BKE_library area, let's keep spaghetti nitghmare in a single place!
2017-06-13Woarkspace: Remove residue of hidden typeSergey Sharybin
There is no reason to be special for workspace and go against other design decision in Blender. If something like this is going to become a common practice in Blender it should be well thought and well tested, including tests of all supported compilers and configurations. This feature was relying on type re-definition, which is not only confusing but also available in C11 only.
2017-06-09Fix crash when deleting active workspace render-layerJulian Eisel
Also fixes some failing unit-tests for render-layers.
2017-06-08Replace all old DAG calls with direct calls to new DEG and remove ↵Luca Rood
BKE_depsgraph.h This removes BKE_depsgraph.h and depsgraph.c
2017-06-01Move custom transform orientations to workspaceJulian Eisel
This commit moves the list of transform orientations from scenes to workspaces. Main reasons for this are: * Transform orientations are UI data and should not be stored in the scene. * Introducion of workspaces caused some (expected) glitches with transform orientations. Mainly when removing one. * Improves code. More technically speaking, this commit does: * Move list of custom transform orientations from Scene to WorkSpace struct. * Store active transform orientation index separate from View3D.twmode (twmode can only be set to preprocessor defined values now). * Display custom transform orientation name in header when transforming in it (used to show "global" which isn't really correct).
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-22Merge branch 'master' into blender2.8Bastien Montagne
Conflicts: source/blender/blenloader/intern/versioning_270.c
2017-05-22Fix T51336: Crash on broken file opening.Bastien Montagne
`screen_findedge()` is not expected to return NULL in that case, but checking against that does not hurt (we do it in all its other call cases anyway), better than crashing.
2017-05-20Merge branch 'master' into blender2.8Campbell Barton
2017-05-19Cleanup: add braces for multi-line blocksCampbell Barton
2017-05-08Fix hardcoded attribute locations used in image drawSergey Sharybin
2017-05-08Fix OCIO shader being attmepted to be unbound twiceSergey Sharybin
2017-05-04Multiline support for ED_region_info_drawDalai Felinto
Many thanks for Campbell Barton for the help here and the idea to implement the multi-line as a new function with array as arguments.
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-04-20Merge branch 'master' into 28Campbell Barton
2017-04-20Fix T51248: user preferences window size not adapted to DPI.Brecht Van Lommel
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-14Fix T49429: incorrect Blender internal viewport border render with ↵Brecht Van Lommel
DrawPixels method.
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-13cleanup image drawing setupMike Erwin
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-07OpenGL: use PRIM instead of GL enum for immBeginMike Erwin
Getting ready for a Gawain API change... Part of T49043
2017-04-07OpenGL: refactor UI_draw_roundbox functionsMike Erwin
Each function takes a bool (filled vs outline) and a color. We already had multiple ways of passing color in; these are still here. Special variant for anti-aliasing. - took GLenum out of interface - removed UI_RB_ALPHA flag (only one place really used it) - use exact vertex count - removed redundant state changes (BLEND, LINE_SMOOTH)
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-04-05Depsgraph: Remove all layer bit flags related checksSergey Sharybin
These bits became obsolete with the new layer system, so we can simplify some code around them or avoid existing workarounds which were trying to keep things working for them. There are still work needed to be done for on_visible_change to avoid unnecessary updates, but that can also happen later.
2017-04-05GPU_immediate_util: missed last commitCampbell Barton
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-05Naming constancy for 'imm' utility functionsCampbell Barton
- use 'imm_draw_' prefix for functions that draw. - use '_3d' suffix for 3d functions, no suffix for 2d functions. - use terms fill/wire (shorter than filled / lined). Also add `imm_draw_circle_fill_3d` (only had wire version)
2017-04-04Immediate Mode: handle other cases of glPop/glPushClientAttribDalai Felinto
Those cases were not using ClientAttrib but they should :) Rather use a OpenGL3.3 alternative anyways.
2017-04-03Cleanup: styleCampbell Barton
2017-04-03Rename circle_partial -> disk_partialCampbell Barton
We may have a 'disk' function (not the partial version).
2017-04-03Add gluPartialDisk replacement (imm_draw_filled_circle_partial)Campbell Barton
Needed for custom-manipulators branch but generally useful.
2017-03-30fix screen layout thumbnails (T51078)Mike Erwin
GPU_framebuffer no longer handles transform matrices, which this code was relying on. Made screen_preview_draw responsible for its own ModelView matrix.
2017-03-27OpenGL: remove several glMatrixMode callsMike Erwin
A few of these were redundant, others could be converted to new matrix API. Part of T49450
2017-03-25Quiet warningsCampbell Barton