forked from bartvdbraak/blender
UI: Remove Blend Thumb Passepartout
Removal of 'camera frame' around blend file thumbnail images. Differential Revision: https://developer.blender.org/D10490 Reviewed by Brecht Van Lommel
This commit is contained in:
parent
be9842f65b
commit
9c395d6275
@ -80,7 +80,6 @@ void IMB_thumb_makedirs(void);
|
||||
struct ImBuf *IMB_thumb_load_blend(const char *blen_path,
|
||||
const char *blen_group,
|
||||
const char *blen_id);
|
||||
void IMB_thumb_overlay_blend(unsigned int *thumb, int width, int height, float aspect);
|
||||
|
||||
/* special function for previewing fonts */
|
||||
struct ImBuf *IMB_thumb_load_font(const char *filename, unsigned int x, unsigned int y);
|
||||
|
@ -100,61 +100,3 @@ ImBuf *IMB_thumb_load_blend(const char *blen_path, const char *blen_group, const
|
||||
|
||||
return ima;
|
||||
}
|
||||
|
||||
/* add a fake passepartout overlay to a byte buffer, use for blend file thumbnails */
|
||||
#define MARGIN 2
|
||||
|
||||
void IMB_thumb_overlay_blend(unsigned int *thumb, int width, int height, float aspect)
|
||||
{
|
||||
unsigned char *px = (unsigned char *)thumb;
|
||||
int margin_l = MARGIN;
|
||||
int margin_b = MARGIN;
|
||||
int margin_r = width - MARGIN;
|
||||
int margin_t = height - MARGIN;
|
||||
|
||||
if (aspect < 1.0f) {
|
||||
margin_l = (int)((width - ((float)width * aspect)) / 2.0f);
|
||||
margin_l += MARGIN;
|
||||
CLAMP(margin_l, MARGIN, (width / 2));
|
||||
margin_r = width - margin_l;
|
||||
}
|
||||
else if (aspect > 1.0f) {
|
||||
margin_b = (int)((height - ((float)height / aspect)) / 2.0f);
|
||||
margin_b += MARGIN;
|
||||
CLAMP(margin_b, MARGIN, (height / 2));
|
||||
margin_t = height - margin_b;
|
||||
}
|
||||
|
||||
{
|
||||
int x, y;
|
||||
int stride_x = (margin_r - margin_l) - 2;
|
||||
|
||||
for (y = 0; y < height; y++) {
|
||||
for (x = 0; x < width; x++, px += 4) {
|
||||
int hline = 0, vline = 0;
|
||||
if ((x > margin_l && x < margin_r) && (y > margin_b && y < margin_t)) {
|
||||
/* interior. skip */
|
||||
x += stride_x;
|
||||
px += stride_x * 4;
|
||||
}
|
||||
else if ((hline = (((x == margin_l || x == margin_r)) && y >= margin_b &&
|
||||
y <= margin_t)) ||
|
||||
(vline = (((y == margin_b || y == margin_t)) && x >= margin_l &&
|
||||
x <= margin_r))) {
|
||||
/* dashed line */
|
||||
if ((hline && y % 2) || (vline && x % 2)) {
|
||||
px[0] = px[1] = px[2] = 0;
|
||||
px[3] = 255;
|
||||
}
|
||||
}
|
||||
else {
|
||||
/* outside, fill in alpha, like passepartout */
|
||||
px[0] *= 0.5f;
|
||||
px[1] *= 0.5f;
|
||||
px[2] *= 0.5f;
|
||||
px[3] = (px[3] * 0.5f) + 96;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1398,14 +1398,8 @@ static ImBuf *blend_file_thumb(const bContext *C,
|
||||
}
|
||||
|
||||
if (ibuf) {
|
||||
float aspect = (scene->r.xsch * scene->r.xasp) / (scene->r.ysch * scene->r.yasp);
|
||||
|
||||
/* dirty oversampling */
|
||||
IMB_scaleImBuf(ibuf, BLEN_THUMB_SIZE, BLEN_THUMB_SIZE);
|
||||
|
||||
/* add pretty overlay */
|
||||
IMB_thumb_overlay_blend(ibuf->rect, ibuf->x, ibuf->y, aspect);
|
||||
|
||||
thumb = BKE_main_thumbnail_from_imbuf(NULL, ibuf);
|
||||
}
|
||||
else {
|
||||
|
Loading…
Reference in New Issue
Block a user