diff options
author | Daniel Rakos <daniel.rakos@rastergrid.com> | 2019-05-08 17:20:42 +0200 |
---|---|---|
committer | Daniel Rakos <daniel.rakos@rastergrid.com> | 2019-05-08 17:22:40 +0200 |
commit | e34eb5c26caf4a0a68f8c84f0e02893e4be2eeb6 (patch) | |
tree | 645fcd489c569b4aeb3f4be5074ab646598c7852 /scene/2d/position_2d.cpp | |
parent | 0239d8bd9fa03965439aac2482d18746f807bd00 (diff) |
Fix texture resource reload bug
If a non-imported texture resource file (e.g. DDS) gets updated the editor
doesn't reload it. The cause of the problem is two-fold:
First, the code of ImageTexture assumes that textures are always imported
from an image, but that's not the case for e.g. DDS. This change thus adds
code to issue a resource reload in case an image reload is not possible
(which is the case for non-imported texture resources).
Second, the code is filled with bogus calls to Image::get_image_data_size()
to determine the mipmap offset when that should be done using
Image::get_image_mipmap_offset(). Previous code literally passed the integer
mip level value to Image::get_image_data_size() where that actually expects
a boolean. Thus this part of the change might actually solve some other
issues as well.
To be pedantic, the texture_get_data() funciton of the rasterizer drivers is
still quite a mess, as it only ever returns the whole mipchain when
GLES_OVER_GL is set (practically only on desktop builds) but this change does
not attempt to resolve that.
Diffstat (limited to 'scene/2d/position_2d.cpp')
0 files changed, 0 insertions, 0 deletions