Commit: f35474471364dc2d4995de9b8c61aa17d99186d6
Author: Lukas Stockner
Date: Wed Jun 20 02:25:48 2018 +0200
Branches: temp-udim-images
https://developer.blender.org/rBf35474471364dc2d4995de9b8c61aa17d99186d6
Merge remote-tracking branch 'origin/blender2.8' into udim
===================================================================
===================================================================
diff --cc intern/cycles/blender/blender_session.cpp
index af0e4814d23,eec13d04d7d..e5362568fc4
--- a/intern/cycles/blender/blender_session.cpp
+++ b/intern/cycles/blender/blender_session.cpp
@@@ -138,13 -138,9 +138,9 @@@ void BlenderSession::create_session(
/* setup callbacks for builtin image support */
scene->image_manager->builtin_image_info_cb =
function_bind(&BlenderSession::builtin_image_info, this, _1, _2, _3);
- scene->image_manager->builtin_image_pixels_cb =
function_bind(&BlenderSession::builtin_image_pixels, this, _1, _2, _3, _4, _5);
- scene->image_manager->builtin_image_float_pixels_cb =
function_bind(&BlenderSession::builtin_image_float_pixels, this, _1, _2, _3,
_4, _5);
+ scene->image_manager->builtin_image_pixels_cb =
function_bind(&BlenderSession::builtin_image_pixels, this, _1, _2, _3, _4, _5,
_6);
+ scene->image_manager->builtin_image_float_pixels_cb =
function_bind(&BlenderSession::builtin_image_float_pixels, this, _1, _2, _3,
_4, _5, _6);
- #ifdef WITH_OCIO
- scene->film->set_color_config(OCIO_getCurrentConfig());
- #endif
-
session->scene = scene;
/* There is no single depsgraph to use for the entire render.
diff --cc source/blender/blenkernel/intern/image.c
index e7ff7433f91,b5abdcae2d4..d7aed7c8121
--- a/source/blender/blenkernel/intern/image.c
+++ b/source/blender/blenkernel/intern/image.c
@@@ -3233,8 -3027,8 +3233,8 @@@ void BKE_image_release_renderresult(Sce
bool BKE_image_is_openexr(struct Image *ima)
{
#ifdef WITH_OPENEXR
- if (ELEM(ima->source, IMA_SRC_FILE, IMA_SRC_SEQUENCE)) {
+ if (ELEM(ima->source, IMA_SRC_FILE, IMA_SRC_SEQUENCE, IMA_SRC_TILED)) {
- return BLI_testextensie(ima->name, ".exr");
+ return BLI_path_extension_check(ima->name, ".exr");
}
#else
UNUSED_VARS(ima);
diff --cc source/blender/blenloader/intern/readfile.c
index ed69c52bcf6,7eb6dbcb292..b2ec7400766
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@@ -1634,9 -1634,10 +1634,9 @@@ void blo_make_image_pointer_map(FileDat
{
Image *ima = oldmain->image.first;
Scene *sce = oldmain->scene.first;
-
- int a;
+
fd->imamap = oldnewmap_new();
-
+
for (; ima; ima = ima->id.next) {
if (ima->cache)
oldnewmap_insert(fd->imamap, ima->cache, ima->cache, 0);
@@@ -1671,9 -1668,10 +1671,9 @@@ void blo_end_image_pointer_map(FileDat
OldNew *entry = fd->imamap->entries;
Image *ima = oldmain->image.first;
Scene *sce = oldmain->scene.first;
-
- int i;
+
/* used entries were restored, so we put them to zero */
- for (i = 0; i < fd->imamap->nentries; i++, entry++) {
+ for (int i = 0; i < fd->imamap->nentries; i++, entry++) {
if (entry->nr > 0)
entry->newp = NULL;
}
diff --cc source/blender/blenloader/intern/versioning_280.c
index 1207d6bdd16,74ff53a45d9..6a84fbfc227
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@@ -1608,5 -1602,5 +1602,14 @@@ void blo_do_versions_280(FileData *fd,
}
}
}
++
++ if (!DNA_struct_elem_find(fd->filesdna, "Image", "short",
"num_tiles")) {
++ for (Image *ima = bmain->image.first; ima; ima =
ima->id.next) {
++ ImageTile *tile =
MEM_callocN(sizeof(ImageTile), "Image Tiles");
++ tile->ok = 1;
++ BLI_addtail(&ima->tiles, tile);
++ }
++ }
}
++
}
diff --cc source/blender/blenloader/intern/writefile.c
index c0356612fca,9c55c949fcf..a2525d62c76
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@@ -2259,9 -2259,9 +2259,11 @@@ static void write_image(WriteData *wd,
}
writestruct(wd, DATA, Stereo3dFormat, 1, ima->stereo3d_format);
+ writelist(wd, DATA, ImageTile, &ima->tiles);
+
ima->packedfile = NULL;
+
+ writelist(wd, DATA, RenderSlot, &ima->renderslots);
}
}
diff --cc source/blender/editors/sculpt_paint/paint_image_proj.c
index d6770196f6e,62bc379241f..64f7b00579e
--- a/source/blender/editors/sculpt_paint/paint_image_proj.c
+++ b/source/blender/editors/sculpt_paint/paint_image_proj.c
@@@ -1069,11 -1049,9 +1071,11 @@@ static bool check_seam
/* Only need to check if 'i2_fidx' is valid because we
know i1_fidx is the same vert on both faces */
if (i2_fidx != -1) {
- const float *lt_tri_uv[3] = {
PS_LOOPTRI_AS_UV_3(ps->dm_mloopuv, lt) };
+ const float *lt_tri_uv[3] = {
PS_LOOPTRI_AS_UV_3(ps->poly_to_loop_uv, lt) };
Image *tpage =
project_paint_face_paint_image(ps, tri_index);
Image *orig_tpage =
project_paint_face_paint_image(ps, orig_face);
+ int tile = project_paint_face_paint_tile(tpage,
lt_tri_uv[0]);
+ int orig_tile =
project_paint_face_paint_tile(orig_tpage, orig_lt_tri_uv[0]);
BLI_assert(i1_fidx != -1);
@@@ -2961,20 -2937,14 +2963,20 @@@ static void project_bucket_init
for (node = ps->bucketFaces[bucket_index]; node; node =
node->next) {
tri_index = GET_INT_FROM_POINTER(node->link);
- const MLoopTri *lt = &ps->dm_mlooptri[tri_index];
- const float *lt_tri_uv[3] = {
PS_LOOPTRI_AS_UV_3(ps->dm_mloopuv, lt) };
++ const MLoopTri *lt = &ps->mlooptri_eval[tri_index];
++ const float *lt_tri_uv[3] = {
PS_LOOPTRI_AS_UV_3(ps->poly_to_loop_uv, lt) };
+
/* Image context switching */
tpage = project_paint_face_paint_image(ps, tri_index);
- if (tpage_last != tpage) {
+ int tile = project_paint_face_paint_tile(tpage,
lt_tri_uv[0]);
+ if (tpage_last != tpage || tile_last != tile) {
tpage_last = tpage;
+ tile_last = tile;
for (image_index = 0; image_index <
ps->image_tot; image_index++) {
- if (ps->projImages[image_index].ima ==
tpage_last) {
- ibuf =
ps->projImages[image_index].ibuf;
+ ProjPaintImage *projIma =
&ps->projImages[image_index];
+ if ((projIma->ima == tpage) &&
(projIma->tile == tile)) {
+ ibuf = projIma->ibuf;
break;
}
}
@@@ -3736,9 -3668,7 +3725,9 @@@ static void project_paint_prepare_all_f
int image_index = -1, tri_index;
int prev_poly = -1;
+ BLI_assert(ps->image_tot == 0);
+
- for (tri_index = 0, lt = ps->dm_mlooptri; tri_index <
ps->dm_totlooptri; tri_index++, lt++) {
+ for (tri_index = 0, lt = ps->mlooptri_eval; tri_index <
ps->totlooptri_eval; tri_index++, lt++) {
bool is_face_sel;
#ifndef PROJ_DEBUG_NOSEAMBLEED
@@@ -3776,10 -3706,8 +3765,10 @@@
tpage = ps->stencil_ima;
}
- ps->dm_mloopuv[lt->poly] = mloopuv_base;
+ ps->poly_to_loop_uv[lt->poly] = mloopuv_base;
+ tile = project_paint_face_paint_tile(tpage,
mloopuv_base[lt->tri[0]].uv);
+
if (project_paint_clone_face_skip(ps, layer_clone, slot,
tri_index)) {
continue;
}
diff --cc source/blender/makesdna/DNA_image_types.h
index b8327b11650,26d7f089f8b..b2f7f501129
--- a/source/blender/makesdna/DNA_image_types.h
+++ b/source/blender/makesdna/DNA_image_types.h
@@@ -113,11 -95,17 +113,11 @@@ typedef struct ImageTile
typedef struct Image {
ID id;
-
+
char name[1024]; /* file path, 1024 = FILE_MAX */
-
+
struct MovieCache *cache; /* not written in file */
-
- struct GPUTexture *gputexture[2]; /* not written in file 2 =
TEXTARGET_COUNT */
+
/* sources from: */
ListBase anims;
struct RenderResult *rr;
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs