UI: Increase Size of Blend File Thumbnails

Increase effective resolution of blend preview images from 128x128 to
256x256 for versions saved in the file system thumbnail cache.

See D10491 for details and examples.

Differential Revision: https://developer.blender.org/D10491

Reviewed by Campbell Barton
This commit is contained in:
Harley Acheson 2021-09-05 19:55:50 -07:00
parent 4ddad5a7ee
commit bf0ac711fd
3 changed files with 14 additions and 7 deletions

View File

@ -52,6 +52,7 @@ typedef enum ThumbSource {
#define THUMB_SIZE_MAX (100 * 1024 * 1024)
#define PREVIEW_RENDER_DEFAULT_HEIGHT 128
#define PREVIEW_RENDER_LARGE_HEIGHT 256
/* Note this can also be used as versioning system,
* to force refreshing all thumbnails if e.g. we change some thumb generating code or so.

View File

@ -347,7 +347,7 @@ static ImBuf *thumb_create_ex(const char *file_path,
tsize = PREVIEW_RENDER_DEFAULT_HEIGHT;
break;
case THB_LARGE:
tsize = PREVIEW_RENDER_DEFAULT_HEIGHT * 2;
tsize = PREVIEW_RENDER_LARGE_HEIGHT;
break;
case THB_FAIL:
tsize = 1;

View File

@ -1573,8 +1573,8 @@ static ImBuf *blend_file_thumb(const bContext *C,
NULL,
OB_SOLID,
scene->camera,
BLEN_THUMB_SIZE * 2,
BLEN_THUMB_SIZE * 2,
PREVIEW_RENDER_LARGE_HEIGHT * 2,
PREVIEW_RENDER_LARGE_HEIGHT * 2,
IB_rect,
V3D_OFSDRAW_NONE,
R_ALPHAPREMUL,
@ -1588,8 +1588,8 @@ static ImBuf *blend_file_thumb(const bContext *C,
OB_SOLID,
v3d,
region,
BLEN_THUMB_SIZE * 2,
BLEN_THUMB_SIZE * 2,
PREVIEW_RENDER_LARGE_HEIGHT * 2,
PREVIEW_RENDER_LARGE_HEIGHT * 2,
IB_rect,
R_ALPHAPREMUL,
NULL,
@ -1610,8 +1610,14 @@ static ImBuf *blend_file_thumb(const bContext *C,
if (ibuf) {
/* dirty oversampling */
IMB_scaleImBuf(ibuf, BLEN_THUMB_SIZE, BLEN_THUMB_SIZE);
thumb = BKE_main_thumbnail_from_imbuf(NULL, ibuf);
ImBuf *thumb_ibuf;
thumb_ibuf = IMB_dupImBuf(ibuf);
/* BLEN_THUMB_SIZE is size of thumbnail inside blend file: 128x128. */
IMB_scaleImBuf(thumb_ibuf, BLEN_THUMB_SIZE, BLEN_THUMB_SIZE);
thumb = BKE_main_thumbnail_from_imbuf(NULL, thumb_ibuf);
IMB_freeImBuf(thumb_ibuf);
/* Thumbnail saved to filesystem should be 256x256. */
IMB_scaleImBuf(ibuf, PREVIEW_RENDER_LARGE_HEIGHT, PREVIEW_RENDER_LARGE_HEIGHT);
}
else {
/* '*thumb_pt' needs to stay NULL to prevent a bad thumbnail from being handled */