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:
authorKarl Semich <>2018-01-15 14:53:17 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2018-01-15 14:57:12 +0300
commit75e2ae72c7771a89f3fe4e988d4deb30c9367313 (patch)
treeb2b87c7daa1ee17fa4efd0cf671ab7e08ce976e0 /source/blender
parent2c2203d82afa3e521d9fa34215c572227bc1e3a3 (diff)
Allow for multi-gigapixel renders
This patch fixes a 32-bit overflow that occurs on 64-bit systems due to a numeric literal being treated as 32-bit. This patch allows for the generation of images that occupy more than 4GB of RAM, which previously caused a crash. Reviewers: sergey Reviewed By: sergey Differential Revision: https://developer.blender.org/D2975
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/imbuf/intern/openexr/openexr_api.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/source/blender/imbuf/intern/openexr/openexr_api.cpp b/source/blender/imbuf/intern/openexr/openexr_api.cpp
index 2fa830dc42a..539b9fa45b4 100644
--- a/source/blender/imbuf/intern/openexr/openexr_api.cpp
+++ b/source/blender/imbuf/intern/openexr/openexr_api.cpp
@@ -1028,13 +1028,13 @@ void IMB_exr_write_channels(void *handle)
for (size_t i = 0; i < num_pixels; ++i, ++cur) {
*cur = rect[i * echan->xstride];
}
- half *rect_to_write = current_rect_half + (data->height - 1) * data->width;
+ half *rect_to_write = current_rect_half + (data->height - 1L) * data->width;
frameBuffer.insert(echan->name, Slice(Imf::HALF, (char *)rect_to_write,
sizeof(half), -data->width * sizeof(half)));
current_rect_half += num_pixels;
}
else {
- float *rect = echan->rect + echan->xstride * (data->height - 1) * data->width;
+ float *rect = echan->rect + echan->xstride * (data->height - 1L) * data->width;
frameBuffer.insert(echan->name, Slice(Imf::FLOAT, (char *)rect,
echan->xstride * sizeof(float), -echan->ystride * sizeof(float)));
}