Commit Graph

1361 Commits

Author SHA1 Message Date
5c490d4377 Fix T74221 Crash when changing Image Source in UV editor 2020-02-26 15:33:44 +01:00
4e9fffc289 GPU: Add Image property to allow high bitdepth support on a per image basis
This adds the `Half Float Precision` option in the image property panel.
This option is only available on float textures and is enabled by default.

Adding a flag inside the imbuf (IB_halffloat) on load is done for EXR and PSD formats that can store half floating point (16bits/channels).
The option is then not displayed in this case and forced.

Related task T73086

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D6891
2020-02-25 15:14:32 +01:00
bd03fe1ab0 Cleanup: avoid Operator.customdata cast which could lead to errors
Both save and save-as share utility functions which
cast from customdata in an error prone way.

Avoid this by passing image format data directly.
2020-02-25 20:32:20 +11:00
d94a3996a4 Fix memory leak saving images 2020-02-25 18:29:31 +11:00
9e45468835 Image: support saving images in non-image spaces
Alternate fix for T74182, making changes to the save-as operator.
2020-02-25 17:19:32 +11:00
096936fe1d Fix T74182: Crash saving images from non-image spaces 2020-02-25 17:02:41 +11:00
727d430811 Cleanup: move deprecated enum into versioning code 2020-02-25 16:50:06 +11:00
3afe218a7d Cleanup: assign Main, use existing assignments
Avoid accessing inline since it's often used multiple times.

In some cases it was already defined.
2020-02-19 15:07:32 +11:00
e64166652b Fix T68749: BPY: Deprecate height of popup
`invoke_props_dialog` and `invoke_popup` had a width and a height field. The height field was ignored as the height is determined based on the content. This change removes the field from the BPY + WM_api

Reviewed By: Campbell Barton, Jacques Lucke

Differential Revision: https://developer.blender.org/D6694
2020-02-17 15:03:11 +01:00
804e90b42d DRW: Color Management improvement
Reviewed By: brecht sergey jbakker

Differential Revision: http://developer.blender.org/D6729
2020-02-11 15:19:04 +01:00
810088bf9b Merge branch 'blender-v2.82-release' 2020-02-10 16:26:44 +01:00
d08ccd526f Fix unreported: Packing/unpacking errors don't mention tiled images
Thanks to @dfelinto for spotting this!
2020-02-10 16:25:22 +01:00
36b7f5d27e Fix T73713: Tiled textures (UDIM) getting lost when saving the .blend but not the textures
The issue here is simple, IMA_SRC_TILED was missing from a check for whether the image should
be saved.

Note that tiled images won't be automatically saved if they have never been saved before.
For single images this is handled by packing them, but packing of tiled images isn't
supported yet.

However, in that case the file closing dialog will at least show a warning now instead of
completely ignoring tiled images.
2020-02-10 16:12:45 +01:00
56116bbdf4 Cleanup/refactor: Rename BKE_library files to BKE_lib.
Note that `BKE_library.h`/`library.c` were renamed to
`BKE_lib_id.h`/`lib_id.c` to avoid having a too generic name here.

Part of T72604.
2020-02-10 13:00:42 +01:00
6f3e498e7d Cleanup: use of 'unsigned'
- Replace 'unsigned' used on it's own with 'uint'.
- Replace 'unsigned const char' with 'const uchar'.
2020-02-08 01:02:18 +11:00
3caefc89ee Fix unreported: View All in the Image Editor ignores UDIM tiles
Thanks to @dfelinto for spotting this!
2020-02-06 03:29:44 +01:00
462d566485 Fix unreported: Trying to create invalid UDIM tiles failed without error
Thanks to @dfelinto for spotting this!
2020-02-06 03:29:44 +01:00
42360e64da Fix T73233: Image Editor Color Picker Crash
When using the color picker on a image editor it tries to read the color
from the original image. When there is no original image the code
crashes during the determination of the UDIM tile number.

There are 2 approaches to solve this.
1. Modify `BKE_image_get_tile_from_pos` to support NULL pointers.
2. Modify `ED_space_image_color_sample` with an early exit.

This patch modifies `ED_space_image_color_sample` with an early exit.

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D6629
2020-01-21 16:32:26 +01:00
661d363e13 Fix T73162: Modal tools cant be mapped to MMB
Also rename struct members to 'launch_event', since it's more
descriptive and was called this in some places.
2020-01-21 03:09:56 +11:00
ac4057b95a Gizmo: use pivot center for UV gizmos 2020-01-09 16:42:24 +11:00
56ef761381 Image Editor: Initialize Add Tile options from current tile
Previously, non-default alpha or float settings had be set manually.

With this change, the Add Tile and Fill Tile operators initialize
width, height, alpha and float from the currently selected tile
if it has a vaild ImBuf, otherwise from the first tile.
2019-12-30 19:20:54 +01:00
6657fcc783 Cleanup: Remove BLI_stringenc_path 2019-12-25 20:16:43 +01:00
d591c8a350 Gizmo: add the ability to postpone refreshing while tweaking
This resolves a logical problem using tweak as a fallback tool.
See: T66304#828742

The select action would immediately show the gizmo underneath it,
then the tweak would be handled by the gizmo instead of moving the item
under the cursor.

Currently this works by hiding the gizmo until the tweak event ends.
While it's simpler to check if the gizmo received a mouse-down event,
it causes flickering before each drag event which feels like a glitch.

This is optional for each gizmo type because there are cases where this
can be useful to activate the gizmo immediately (mesh rip for example).
2019-12-19 01:53:15 +11:00
bdbcb0df10 Image Editor: Load UDIMs even if secondary tile is selected
Previously the user had to select the 1001 tile for this to work,
now any tile will work as long as the 1001 tile still exists on disk.
2019-12-18 01:51:47 +01:00
850aa3a6cf Image Editor: Disable tile operators if tile 1001 is missing 2019-12-18 01:05:02 +01:00
e0cd5b980f Image Editor: Add option to create multiple tiles at once
Any existing tiles will be skipped.
2019-12-18 00:52:06 +01:00
11d9271804 Image Editor: Add option to fill UDIM tiles during creation 2019-12-18 00:15:19 +01:00
7e15638cce Cleanup: style, always use braces 2019-12-17 09:53:25 +11:00
Dalai Felinto
01608f5348 Fix typo in UDIM operator (always capitalize UI labels) 2019-12-16 10:44:36 +01:00
38ad1c4d33 Image Editor: Increase size of Add Tile popup 2019-12-13 15:31:11 +01:00
82755f5137 Gizmo: add gizmos for UV transform translate/rotate/scale 2019-12-13 22:43:48 +11:00
c30d6571bb Add support for tiled images and the UDIM naming scheme
This patch contains the work that I did during my week at the Code Quest - adding support for tiled images to Blender.

With this patch, images now contain a list of tiles. By default, this just contains one tile, but if the source type is set to Tiled, the user can add additional tiles. When acquiring an ImBuf, the tile to be loaded is specified in the ImageUser.
Therefore, code that is not yet aware of tiles will just access the default tile as usual.

The filenames of the additional tiles are derived from the original filename according to the UDIM naming scheme - the filename contains an index that is calculated as (1001 + 10*<y coordinate of the tile> + <x coordinate of the tile>), where the x coordinate never goes above 9.
Internally, the various tiles are stored in a cache just like sequences. When acquired for the first time, the code will try to load the corresponding file from disk. Alternatively, a new operator can be used to initialize the tile similar to the New Image operator.

The following features are supported so far:
- Automatic detection and loading of all tiles when opening the first tile (1001)
- Saving all tiles
- Adding and removing tiles
- Filling tiles with generated images
- Drawing all tiles in the Image Editor
- Viewing a tiled grid even if no image is selected
- Rendering tiled images in Eevee
- Rendering tiled images in Cycles (in SVM mode)
- Automatically skipping loading of unused tiles in Cycles
- 2D texture painting (also across tiles)
- 3D texture painting (also across tiles, only limitation: individual faces can not cross tile borders)
- Assigning custom labels to individual tiles (drawn in the Image Editor instead of the ID)
- Different resolutions between tiles

There still are some missing features that will be added later (see T72390):
- Workbench engine support
- Packing/Unpacking support
- Baking support
- Cycles OSL support
- many other Blender features that rely on images

Thanks to Brecht for the review and to all who tested the intermediate versions!

Differential Revision: https://developer.blender.org/D3509
2019-12-12 18:40:37 +01:00
Julian Eisel
5bcb0c9935 UI: Allow label for Template-ID (respecting property split layout)
Adds a `text` parameter to `bpy.types.uiLayout.template_ID()` which
causes a label to be added, as usual. Adding the label also makes the
template respect the `bpy.types.uiLayout.use_property_split` option.

Also fixes wrong layout being used in the template-ID, although I think
that didn't cause issues in practice.

Sergey requested this for usage in the Movie Clip Editor.
2019-11-25 19:50:34 +01:00
effe047318 Cleanup: rename undo tile x/y members
Avoid mixing up pixel/tile location.
2019-11-02 12:29:46 +11:00
5b18997543 T71094: anchored & drag-dot brushes paint continuously
Error from 151cc02b6f
2019-11-02 12:22:51 +11:00
87ac3d14b2 Fix T70905: Image Editor header hides mask, cache and keyframe info if
flipped to bottom

While flipping the header to bottom works in the MCE (because MCE doesnt
allow overlapping UI) we need to take the regions visible rect into
account for the Image Editor.

Also correct clickable scubbing area (poll for frame_change) in the
Image Editor and the MovieClip Editor not taking UI_DPI_FAC into
account.

Maniphest Tasks: T70905

Differential Revision: https://developer.blender.org/D6090
2019-10-29 16:51:55 +01:00
a9fbd05e7d Fix image undo restoring float/byte tiles into the wrong buffer type
This also resolves the (unlikely) issue of undo having uninitialized
zbuf data, now it's cleared instead.
2019-10-15 12:24:26 +11:00
dc2cd2d0dc Cleanup: clang-format, spelling 2019-10-10 10:29:50 +11:00
01c824ac88 Revert "UI: use correct singular and plural nouns in report messages"
Convention is to use (s) postfix for cases where there can be one or multiple,
so stay consistent with that.

This reverts commit 3e8276311e.
2019-10-02 12:54:56 +02:00
Yevgeny Makarov
3e8276311e UI: use correct singular and plural nouns in report messages
Differential Revision: https://developer.blender.org/D5729
2019-10-01 20:18:48 +02:00
a513586cd2 Cleanup: remove ED_image_paint_tile_remove_masks_all
Masks are now temporary, not part of the persistent undo tiles.
Now they're always freed after the stroke.
2019-10-02 02:13:50 +10:00
8ce14aa21f Cleanup: rename image undo_tile to paint_tile
Clearer because they're no longer the same as undo tiles.
2019-10-02 02:04:37 +10:00
7aff48add0 Cleanup: move image undo into space_image/
This isn't just used for painting.
2019-10-02 01:45:37 +10:00
cc092e9ab0 Cleanup: name of image poll function 2019-10-02 01:45:37 +10:00
b155ece0c0 Image: add resize operator
Now possible with new image undo,
was added for testing but seems generally useful.
2019-10-02 00:44:17 +10:00
151cc02b6f Image: support storing full image buffers for each undo step
Update image undo to store buffers for each step:

- Undo buffers share tiles to avoid using too much memory.
- Undo support for different sized buffers
  allowing operations such as crop or resize.
- Paint tiles have been split into separate API/storage.
- Painting speed wont be impacted significantly
  since storing the extra tiles is done after the stroke & only
  for the first undo step.

Resolves T61263, see D5939 for details.
2019-10-02 00:44:17 +10:00
ba798e0412 Image/Clip Space: Add view center to cursor operators
D5932 by @a.monti with edits
2019-10-01 20:20:53 +10:00
02c4410a37 Cleanup: use doxy sections for image_ops.c 2019-09-30 03:47:54 +10:00
b29ad7c91a WM: clean up cursors constants and code
There was a mix of old and new constants. Now have one list of WM_CURSOR_*
cursor types, using GHOST standard cursors when available and otherwise falling
back to our custom cursors.

Ref D5197
2019-09-26 14:31:48 +02:00
Julian Eisel
28ee0f97c3 UI: Open file options region for more operations
Open the file options region for image saving, linking and appending.
2019-09-16 18:35:27 +02:00