From 4738a2607b55e21dabdf3c3591834420c8a8996a Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Fri, 21 Jun 2013 08:37:47 +0000 Subject: [PATCH] From Farshid Lashkari, "I've updated the dds, png, and jpeg plugins to support writing images with the GL_DEPTH_COMPONENT pixel format. They will simply treat it the same as the GL_LUMINANCE pixel format." --- src/osgPlugins/dds/ReaderWriterDDS.cpp | 1 + src/osgPlugins/jpeg/ReaderWriterJPEG.cpp | 1 + src/osgPlugins/png/ReaderWriterPNG.cpp | 1 + 3 files changed, 3 insertions(+) diff --git a/src/osgPlugins/dds/ReaderWriterDDS.cpp b/src/osgPlugins/dds/ReaderWriterDDS.cpp index 3fb8d6b4b..f439b6cfe 100644 --- a/src/osgPlugins/dds/ReaderWriterDDS.cpp +++ b/src/osgPlugins/dds/ReaderWriterDDS.cpp @@ -1147,6 +1147,7 @@ bool WriteDDSFile(const osg::Image *img, std::ostream& fout, bool autoFlipDDSWri } break; case GL_LUMINANCE: + case GL_DEPTH_COMPONENT: { ddpf.dwRBitMask = 0x000000ff; PF_flags |= DDPF_LUMINANCE; diff --git a/src/osgPlugins/jpeg/ReaderWriterJPEG.cpp b/src/osgPlugins/jpeg/ReaderWriterJPEG.cpp index b15d92f07..c07e7b969 100644 --- a/src/osgPlugins/jpeg/ReaderWriterJPEG.cpp +++ b/src/osgPlugins/jpeg/ReaderWriterJPEG.cpp @@ -665,6 +665,7 @@ class ReaderWriterJPEG : public osgDB::ReaderWriter int image_components = 3; // Only cater for gray, alpha and RGB for now switch(img.getPixelFormat()) { + case(GL_DEPTH_COMPONENT): case(GL_LUMINANCE): case(GL_ALPHA): { image_color_space = JCS_GRAYSCALE; diff --git a/src/osgPlugins/png/ReaderWriterPNG.cpp b/src/osgPlugins/png/ReaderWriterPNG.cpp index f007a9751..1ff68cec7 100644 --- a/src/osgPlugins/png/ReaderWriterPNG.cpp +++ b/src/osgPlugins/png/ReaderWriterPNG.cpp @@ -114,6 +114,7 @@ class ReaderWriterPNG : public osgDB::ReaderWriter int bit_depth = img.getPixelSizeInBits(); switch(img.getPixelFormat()) { + case(GL_DEPTH_COMPONENT): color = PNG_COLOR_TYPE_GRAY; break; case(GL_LUMINANCE): color = PNG_COLOR_TYPE_GRAY; break; case(GL_ALPHA): color = PNG_COLOR_TYPE_GRAY; break; //Couldn't find a color type for pure alpha, using gray instead case(GL_LUMINANCE_ALPHA): color = PNG_COLOR_TYPE_GRAY_ALPHA ; bit_depth /= 2; break;