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
diff options
context:
space:
mode:
authorNicholas Bishop <nicholasbishop@gmail.com>2015-02-13 00:19:02 +0300
committerNicholas Bishop <nicholasbishop@gmail.com>2015-02-13 13:42:38 +0300
commit9691524970014032cd612b14fd468bfb0c402eb5 (patch)
tree53fd385faaadb7475778e27591be5cc9a3764502
parent60e8a8099df44e1fc18542102421cb444888498b (diff)
Better method for updating adjacent Ptex borders
-rw-r--r--intern/ptex/bpx_c_api.cpp4
-rw-r--r--source/blender/blenkernel/intern/bke_ptex.c26
2 files changed, 4 insertions, 26 deletions
diff --git a/intern/ptex/bpx_c_api.cpp b/intern/ptex/bpx_c_api.cpp
index 7e57371c830..1b1e095ce48 100644
--- a/intern/ptex/bpx_c_api.cpp
+++ b/intern/ptex/bpx_c_api.cpp
@@ -377,6 +377,10 @@ bool BPX_rect_borders_update(BPXImageBuf *bpx_buf, const BPXRect *dst_rect,
const ROI src_roi = bpx_rect_to_oiio_roi(*src_rect);
bpx_create_border(buf, dst_roi, dst_edge, src_roi, src_edge);
+
+ // Also update in the other direction. TODO(nicholasbishop):
+ // names are a bit confusing now
+ bpx_create_border(buf, src_roi, src_edge, dst_roi, dst_edge);
}
// Average adjacent borders to fill in
diff --git a/source/blender/blenkernel/intern/bke_ptex.c b/source/blender/blenkernel/intern/bke_ptex.c
index 2ce2efc96a6..fe2b71afaf9 100644
--- a/source/blender/blenkernel/intern/bke_ptex.c
+++ b/source/blender/blenkernel/intern/bke_ptex.c
@@ -585,21 +585,8 @@ static bool bke_ptex_imbuf_filter_borders_update(ImBuf *ibuf, GSet *rects)
rects_stride = sizeof(*ibuf->ptex_rects);
if (rects) {
- /* TODO(nicholasbishop): this is not a great
- * solution. Adjacent edges should probably just be updated
- * together or something... also need to consider corners */
- GSet *adj_rects = BLI_gset_ptr_new("GSet adj_rects");
-
GSET_ITER (iter, rects) {
const BPXRect *rect = BLI_gsetIterator_getKey(&iter);
- int side;
-
- for (side = 0; side < BPX_RECT_NUM_SIDES; side++) {
- const int adj_index = rect->adj[side].index;
- if (adj_index != BPX_RECT_SIDE_ADJ_NONE) {
- BLI_gset_add(adj_rects, &all_rects[adj_index]);
- }
- }
if (!BPX_rect_borders_update(bpx_buf, rect, all_rects,
rects_stride))
@@ -608,19 +595,6 @@ static bool bke_ptex_imbuf_filter_borders_update(ImBuf *ibuf, GSet *rects)
break;
}
}
-
- GSET_ITER (iter, adj_rects) {
- const BPXRect *rect = BLI_gsetIterator_getKey(&iter);
-
- if (!BPX_rect_borders_update(bpx_buf, rect, all_rects,
- rects_stride))
- {
- result = false;
- break;
- }
- }
-
- BLI_gset_free(adj_rects, NULL);
}
else {
int i;