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-06-04Merge branch 'master' into blender2.8Campbell Barton
2018-06-04Cleanup: strip trailing space in editorsCampbell Barton
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-20D2607: Switch eye dropper to use linear color space internallyStefan Werner
This switches the internal color representation of the eye dropper from display space to linear. Any time a linear color is requested and the color is picked from a linear object, the result is now precise to the bit as the color gets patched through directly. Color space conversion now only happens when a color is picked from non-linear display space objects or when the color is requested to be returned in non-linear space. In addition, this patch changes the DifferenceMatte node to interpret a tolerance of 0.0 to accept colors that are identical bit by bit, as apposed to simply refusing all colors.
2016-07-16Cleanup: spellingCampbell Barton
2015-12-21Cleanup: warnings (msvc)Campbell Barton
Part of patch D1670 by @LazyDodo
2015-06-11Masking: Numpad-. now centers view to selected control pointsSergey Sharybin
Currently feather points are being ignored, it could be improved in the future.
2015-06-10Picky edits to previous commit.Bastien Montagne
2015-06-10Fix T45017: Crash when running 'track markers' operator with no clip loaded.Bastien Montagne
CLIP_OT_track_markers was missing a poll callback.
2015-05-18Fix T44752: Clip Editor doesn't respect ColorSpace setting when playback ↵Sergey Sharybin
after Prefetch
2015-05-08Cleanup: use r_* prefix for return argsCampbell Barton
2014-11-28Cleanup: unused headersCampbell Barton
2014-10-10Tracking: Switch prefetch to use generic task schedulerSergey Sharybin
Not as if it gives any huge benefit to end artists, but it's kinda silly to have like 3 different task/thread scheduling systems. The new one is what's recommended for use now i'd say. On the other hand it has unmeasurable memory save benefit :)
2014-04-30Code cleanup: remove unused includesCampbell Barton
Opted to keep includes if they are used indirectly (even if removing is possible).
2014-04-26Code cleanup: use 'const' for arrays (editors)Campbell Barton
2014-04-22BLI_open: check returned value for `-1` instead of `< 0`Campbell Barton
2014-04-21View2d: API Cleanup for view<->region conversionCampbell Barton
View2D had some inconsistencies making it error prone in some cases. - Inconstant checking for NULL x/y args. Disallow NULL args for x/y destination pointers, instead add: - UI_view2d_region_to_view_x/y - UI_view2d_view_to_region_x/y - '_no_clip' suffix wasn't always used for non-clipping conversion, switch it around and use a '_clip' suffix for all funcs that clip. - UI_view2d_text_cache_add now clips before adding cache. - '_clip' funcs return a bool to quickly check if its in the view. - add conversion for rectangles, since this is a common task: - UI_view2d_view_to_region_rcti - UI_view2d_region_to_view_rctf
2014-04-14Fix for the eyedropper fixes from todaySergey Sharybin
Missing color copy, noticed by @campbellbarton, thanks!
2014-04-14Fix the eyedropper not working properly with different scene linear spacesSergey Sharybin
Either was some residue from the past or somebody didn't implement this in the right way. Also fixed memory leak in ED_space_clip_color_sample() caused by missing image buffer release.
2014-04-01Code cleanup: remove TRUE/FALSE & WITH_BOOL_COMPAT defineCampbell Barton
2014-03-20Code cleanup: use bool/true/false in clip editorSergey Sharybin
2014-03-20Fix T39271: Crash in MCE with "p" shortcut without clipSergey Sharybin
Weird nobody noticed this before, issue exists in 2.69 as well..
2014-03-10Fix for proxy colorspace and prefetchingSergey Sharybin
2014-02-07Add Tabs for Movie Clip EditorSergey Sharybin
Based on the patch from Sebastian Koenig, discussed with Jonathan Williamson https://developer.blender.org/T38172 Also removed redundant modes from clip editor. Reviewers: brecht, carter2422 Reviewed By: carter2422 CC: sebastian_k, carter2422 Differential Revision: https://developer.blender.org/D293
2014-01-01Code cleanup: use bool flag for direction in clip prefetchSergey Sharybin
That was nothing really wrong with the old short used for direction, but that became kinda annoying because of compiler idiocy which considered direction might have been zero. Using explicit dual-state flag is more clear anyway.
2013-10-17Fix #37117: MCE prefetching fails with non-ascii characters in pathSergey Sharybin
2013-10-17Fix #37118: MCEr: Prefetch frames doesn't respect input color spaceSergey Sharybin
2013-10-17Fix #37119: MCE: Prefetching doesn't fetch last frame of an image-sequence.Sergey Sharybin
Silly mistake in final condition. Now it works fine. Would be nice to have this for the final release, simple oneliner.
2013-10-12Fix for prefetch not working correct if last frame was loadedSergey Sharybin
2013-09-05Code cleanup: use boolean instead of int for space_clipSergey Sharybin
2013-04-04Changes to cache invalidation policy for movie clipsSergey Sharybin
- When changing clip in clip editor, remove all frames from it's cache to free memory for new clip. - When changing proxy render settings, free cache as well.
2013-04-04Clip editor prefetch changesSergey Sharybin
Made it an operator instead of automatic prefetching. Filling the whole memory with frames is not always desired behavior. Now prefetching is available via P-key, or from Clip panel in toolbox or from Clip menu. Also enabled prefetching for non-proxied movies.
2013-03-29Implement GPU-side display transform for clip editorSergey Sharybin
Implemented using GLSL API from OpenColorIO library and some general functions were added to it's c-api: - OCIO_setupGLSLDraw prepares OpenGL context for GPU-based transformation for a giver processor. This function compiles and links shader, sets up it's argument. After this transformation would be applied on an image displaying as a 2D texture. So, glaDrawPixelsTex called after OCIO_setupGLSLDraw will do a proper color space transform. - OCIO_finishGLSLDraw restores OpenGL context after all color-managed display is over. - OCIO_freeOGLState frees allocated state structure used for cacheing some GLSL-related stuff. There're some utility functions in IMB_colormanagent which are basically proxies to lower level OCIO functions but which could be used from any place in blender. Chacheing of movie clip frame on GPU is also removed now, and either glaDrawPixelsTex or glaDrawPixelsAuto are used for display now. This is so no code duplication happens now and no large textures are lurking around in GPU memory. Known issues: - Texture buffer and GLSL are no longer checking for video card capabilities, possibly could lead to some artifacts on crappy drivers/cards. - Only float buffers are displaying using GLSL, byte buffers will still use fallback display method. This is to be addressed later. - If RGB curves are used as a part of display transform, GLSL display will also be disabled. This is also thing to be solved later. Additional changes: - glaDrawPixelsTexScaled will now use RGBA16F as an internal format of storing textures when it's used to draw float buffer. This is needed so LUT are applied without precision loss.
2013-03-26Correction to recent prefetch commitSergey Sharybin
When using movie as a clip no need to prefetch in cases no proxies are sued at this moment.
2013-03-25Clip editor prefetching changesSergey Sharybin
Now prefetching happens from cursor up to scene end frame and then from cursor down to scene start frame. Also disabled prefetching for non-unidistorted proxies because of issues with timecodes (seek horribly fails in some cases). This seek need to be fixed since it's actually happens for manual timeline scrubbing as well, but that's another story..
2013-03-21revert edit from r55461, causing build error on some systems.Campbell Barton
2013-03-21Tweaks to movie clip prefetching after discussion with SebastianSergey Sharybin
Don't use sequencer's Frames Prefetch option and rather fill the whole cache with frames. Since movie clip is not "classical" prefetcher (it doesn't do anything while playing back) and main purpose is to speed up reading for further tracking and so, such a change seems logical.
2013-03-20Prefetching for movie clipsSergey Sharybin
This commit basically implements frames prefetching for movie clip datablock. Number of frames to be prefetched is controlled in User Preferences, System tab, Prefetch Frames option. Currently prefetching is destructive-less for movie cache, meaning mo frames will be removed from the cache when while prefetching. This is because it's half of simplier to implement, but it also makes sense from tracking point of view -- we could want to playback in both directions and removing frames from behind time cursor is not always a good idea. Anyway, smarter prefetching strategy could be developed later. Some implementation notes: - Added MEM_CacheLimiter_get_memory_in_use function to get memory usage of specified memory limiter. - Fixed prototype of MEM_CacheLimiter_get_maximum which was simply wrong (used wrong data type for output). - Added some utility functions to movie clip and movie cache for direct cache interaction and obtaining cache statistics. - Prefetching is implemented using general jobs system. which is invoking from clip draw function. - Prefetcing will stop as soon other job or playback starts. This is done from performance point of view. Jobs will likely require lots of CPU power and better to provide whole CPU to it. Playback is a bit more complicated case. For jpeg sequence playback prefetching while paying back is nice. But trying to prefetch heavy exr images and doing color space conversion slows down both playback and prefetching. TODO: - Think of better policy of dealing with already cached frames (like when cached frames from other clips prevents frames from current clip to be prefetched) - Currently a bit funky redraw notification happens from prefetch job. Perhaps own ND_ is better to have here. - Hiding clip while prefetch is active in theory shall stop prefetching job. - Having multiple clips opened on file load will prefetch frames for only one of them.
2013-03-19Use checker backdrop for footage with alpha channel in clip editorSergey Sharybin
Also use glaDrawPixelsAuto as a fallback method. Hopefully it'll make using 2D textures for frames higher resolution than GL_MAX_TEXTURE_SIZE.
2013-02-19minor change to own recent commit with transform fcurve centers and some ↵Campbell Barton
style edits and typo corrections.
2013-01-25header cleanup, include BLI before BKE, also use bool for ntreeShaderExecTreeCampbell Barton
2013-01-06Solving nasty annoyance:Ton Roosendaal
Trackpad zoom (swipe + CTRL) direction was inverted compared to MMB-drag or scrollwheel usage. In the 3D viewport it was OK, in all others not. Now the same physical gesture maps identical to zooming everywhere. Or to recap (with blender factory settings) Zooming in: - MMB-drag, move mouse towards screen - Scroll wheel, move finger towards screen - Magic Mouse, move finger towards screen - Trackpad 2-finger swipe: move fingers toward screen. To make this extra confusing: this is only consistent if you set your system to inperpret trackpad swipes as "inverted" (pan view left = swipe to right). This is a typical default, although Apple wants you to call this "Unnatural" :) Next commit will be testing on laptop if all pinch gestures zoom consistent. And following to that, a sensible user preference to map trackpad use for Blender yourself, to invert system defaults again. :) Blame and thanks goes to Sebastian Koenig, for his perseverance on getting this solved :)
2012-12-18fix [#33580] Masking keyframes disappear from dope sheet when using undo.Campbell Barton
2012-11-16code cleanup: replace most DO_MINMAX2 -> minmax_v2v2_v2Campbell Barton
also add UNPACK macros's. handy for printing vectors for eg.
2012-10-23rename api functions...Campbell Barton
- minf, maxf, mini, maxi --> min_ff, max_ff, min_ii, max_ii
2012-10-14code cleanup: remove redundant casts. quiet some qualifier warnings.Campbell Barton
2012-09-30fix for crash drawing the clip view with a blend file that has lock to ↵Campbell Barton
selected, but no clip in the view.
2012-09-15code cleanup: replace macro for BLI_rect size/center with inline functions.Campbell Barton
2012-09-15Color Management, Stage 2: Switch color pipeline to use OpenColorIOSergey Sharybin
Replace old color pipeline which was supporting linear/sRGB color spaces only with OpenColorIO-based pipeline. This introduces two configurable color spaces: - Input color space for images and movie clips. This space is used to convert images/movies from color space in which file is saved to Blender's linear space (for float images, byte images are not internally converted, only input space is stored for such images and used later). This setting could be found in image/clip data block settings. - Display color space which defines space in which particular display is working. This settings could be found in scene's Color Management panel. When render result is being displayed on the screen, apart from converting image to display space, some additional conversions could happen. This conversions are: - View, which defines tone curve applying before display transformation. These are different ways to view the image on the same display device. For example it could be used to emulate film view on sRGB display. - Exposure affects on image exposure before tone map is applied. - Gamma is post-display gamma correction, could be used to match particular display gamma. - RGB curves are user-defined curves which are applying before display transformation, could be used for different purposes. All this settings by default are only applying on render result and does not affect on other images. If some particular image needs to be affected by this transformation, "View as Render" setting of image data block should be set to truth. Movie clips are always affected by all display transformations. This commit also introduces configurable color space in which sequencer is working. This setting could be found in scene's Color Management panel and it should be used if such stuff as grading needs to be done in color space different from sRGB (i.e. when Film view on sRGB display is use, using VD16 space as sequencer's internal space would make grading working in space which is close to the space using for display). Some technical notes: - Image buffer's float buffer is now always in linear space, even if it was created from 16bit byte images. - Space of byte buffer is stored in image buffer's rect_colorspace property. - Profile of image buffer was removed since it's not longer meaningful. - OpenGL and GLSL is supposed to always work in sRGB space. It is possible to support other spaces, but it's quite large project which isn't so much important. - Legacy Color Management option disabled is emulated by using None display. It could have some regressions, but there's no clear way to avoid them. - If OpenColorIO is disabled on build time, it should make blender behaving in the same way as previous release with color management enabled. More details could be found at this page (more details would be added soon): http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.64/Color_Management -- Thanks to Xavier Thomas, Lukas Toene for initial work on OpenColorIO integration and to Brecht van Lommel for some further development and code/ usecase review!
2012-09-13fix [#31946] Masking doesn't respect pixel ratioCampbell Barton