From fa58672f095b81b0b1b4e92effaca6de35bbf742 Mon Sep 17 00:00:00 2001 From: Stuart Buchanan Date: Fri, 6 Jul 2012 21:38:15 +0100 Subject: [PATCH] Fix bug where two references to a png object mask used against a dds terrain texture resulted in the object mask being flipped twice, having no overall effect! --- simgear/scene/material/mat.cxx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/simgear/scene/material/mat.cxx b/simgear/scene/material/mat.cxx index cc22600a..6152cc55 100644 --- a/simgear/scene/material/mat.cxx +++ b/simgear/scene/material/mat.cxx @@ -238,8 +238,11 @@ SGMaterial::read_properties(const SGReaderWriterOptions* options, if (dds[i] != dds_mask) { // Texture format does not match mask format. This is relevant for // the object mask, as DDS textures have an origin at the bottom - // left rather than top left, therefore we flip the object mask - // vertically. + // left rather than top left. Therefore we flip a copy of the image + // (otherwise a second reference to the object mask would flip it + // back!). + SG_LOG(SG_GENERAL, SG_DEBUG, "Flipping object mask" << omname); + image = (osg::Image* ) image->clone(osg::CopyOp::SHALLOW_COPY); image->flipVertical(); } -- 2.39.5