diff --git a/include/osg/Image b/include/osg/Image index b8c4f5f33..df2de3b18 100644 --- a/include/osg/Image +++ b/include/osg/Image @@ -99,7 +99,7 @@ class OSG_EXPORT Image : public Object void setImage(int s,int t,int r, GLint internalTextureformat, GLenum pixelFormat,GLenum type, - unsigned char *data, + unsigned char* data, AllocationMode mode, int packing=1); @@ -169,10 +169,10 @@ class OSG_EXPORT Image : public Object bool valid() const { return _s!=0 && _t!=0 && _r!=0 && _data!=0 && _dataType!=0; } /** Raw image data. */ - inline unsigned char *data() { return _data; } + inline unsigned char* data() { return _data; } /** Raw const image data. */ - inline const unsigned char *data() const { return _data; } + inline const unsigned char* data() const { return _data; } inline unsigned char* data(int column, int row=0,int image=0) @@ -279,11 +279,11 @@ class OSG_EXPORT Image : public Object unsigned int _packing; AllocationMode _allocationMode; - unsigned char *_data; + unsigned char* _data; void deallocateData(); - void setData(unsigned char *data,AllocationMode allocationMode); + void setData(unsigned char* data,AllocationMode allocationMode); unsigned int _modifiedCount; diff --git a/src/osg/Texture.cpp b/src/osg/Texture.cpp index 84e71495a..eea955756 100644 --- a/src/osg/Texture.cpp +++ b/src/osg/Texture.cpp @@ -842,17 +842,16 @@ void Texture::applyTexImage2D_load(State& state, GLenum target, const Image* ima } - unsigned int dataMinusOffset=0; - unsigned int dataPlusOffset=0; - + unsigned char* dataMinusOffset = 0; + unsigned char* dataPlusOffset = 0; const PixelBufferObject* pbo = image->getPixelBufferObject(); if (pbo && pbo->isBufferObjectSupported(contextID) && !needImageRescale) { pbo->compileBuffer(state); pbo->bindBuffer(contextID); - dataMinusOffset = (unsigned int) data; - dataPlusOffset=pbo->offset(); // -dataMinusOffset+dataPlusOffset + dataMinusOffset = data; + dataPlusOffset = reinterpret_cast(pbo->offset()); #ifdef DO_TIMING osg::notify(osg::NOTICE)<<"after PBO "<delta_m(start_tick,osg::Timer::instance()->tick())<<"ms"<isMipmap() && _useHardwareMipMapGeneration && generateMipMapSupported; - unsigned int dataMinusOffset=0; - unsigned int dataPlusOffset=0; + unsigned char* dataMinusOffset=0; + unsigned char* dataPlusOffset=0; const PixelBufferObject* pbo = image->getPixelBufferObject(); if (pbo && pbo->isBufferObjectSupported(contextID) && !needImageRescale) { pbo->compileBuffer(state); pbo->bindBuffer(contextID); - dataMinusOffset = (unsigned int) data; - dataPlusOffset=pbo->offset(); // -dataMinusOffset+dataPlusOffset + dataMinusOffset = data; + dataPlusOffset = reinterpret_cast(pbo->offset()); #ifdef DO_TIMING osg::notify(osg::NOTICE)<<"after PBO "<delta_m(start_tick,osg::Timer::instance()->tick())<<"ms"<getPixelBufferObject(); if (pbo && pbo->isBufferObjectSupported(contextID)) { pbo->compileBuffer(state); pbo->bindBuffer(contextID); - dataMinusOffset=(unsigned int)image->data(); - dataPlusOffset=pbo->offset(); // -dataMinusOffset+dataPlusOffset + dataMinusOffset = image->data(); + dataPlusOffset = reinterpret_cast(pbo->offset()); } else { @@ -265,7 +265,7 @@ void TextureRectangle::applyTexImage_load(GLenum target, Image* image, State& st image->s(), image->t(), 0, (GLenum)image->getPixelFormat(), (GLenum)image->getDataType(), - image->data() + dataPlusOffset-dataMinusOffset); + image->data() - dataMinusOffset + dataPlusOffset ); if (pbo) @@ -311,16 +311,16 @@ void TextureRectangle::applyTexImage_subload(GLenum target, Image* image, State& osg::Timer_t start_tick = osg::Timer::instance()->tick(); osg::notify(osg::NOTICE)<<"glTexSubImage2D pixelFormat = "<getPixelFormat()<getPixelBufferObject(); if (pbo && pbo->isBufferObjectSupported(contextID)) { pbo->compileBuffer(state); pbo->bindBuffer(contextID); - dataMinusOffset=(unsigned int)image->data(); - dataPlusOffset=pbo->offset(); // -dataMinusOffset+dataPlusOffset + dataMinusOffset = image->data(); + dataPlusOffset = reinterpret_cast(pbo->offset()); // -dataMinusOffset+dataPlusOffset #ifdef DO_TIMING osg::notify(osg::NOTICE)<<"after PBO "<delta_m(start_tick,osg::Timer::instance()->tick())<<"ms"<s(), image->t(), (GLenum)image->getPixelFormat(), (GLenum)image->getDataType(), - image->data() + dataPlusOffset-dataMinusOffset); + image->data() - dataMinusOffset + dataPlusOffset ); if (pbo) {