From 8544337aca0a7c927e82a7c714e78bf7aa149021 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Sat, 21 Oct 2006 21:06:27 +0000 Subject: [PATCH] Fixed OSX x86 endian issue in Quicktime movie plugin. --- src/osgPlugins/quicktime/MovieData.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/osgPlugins/quicktime/MovieData.cpp b/src/osgPlugins/quicktime/MovieData.cpp index b7c8280a9..5febe1253 100644 --- a/src/osgPlugins/quicktime/MovieData.cpp +++ b/src/osgPlugins/quicktime/MovieData.cpp @@ -9,9 +9,13 @@ #include #include +#include + #include "MovieData.h" #include "QTUtils.h" + + using namespace osgQuicktime; namespace osg { @@ -98,11 +102,15 @@ void MovieData::_initImage(osg::Image* image) } buffer = (void*)(((unsigned long)(pointer + 31) >> 5) << 5); - + + GLenum internalFormat = (getCpuByteOrder()==osg::BigEndian)? + GL_UNSIGNED_INT_8_8_8_8_REV : + GL_UNSIGNED_INT_8_8_8_8; + image->setImage(_textureWidth,_textureHeight,0, (GLint) GL_RGBA8, (GLenum)GL_BGRA_EXT, - (GLenum)GL_UNSIGNED_INT_8_8_8_8_REV, + internalFormat, (unsigned char*) buffer,osg::Image::USE_MALLOC_FREE,4); }