Changeset 10600 for OpenSceneGraph/trunk/src/osg/Texture.cpp
- Timestamp:
- 10/01/09 22:19:42 (4 years ago)
- Files:
-
- 1 modified
-
OpenSceneGraph/trunk/src/osg/Texture.cpp (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
OpenSceneGraph/trunk/src/osg/Texture.cpp
r10598 r10600 47 47 #endif 48 48 49 // #define DO_TIMING49 // #define DO_TIMING 50 50 51 51 namespace osg { … … 1778 1778 bool useGluBuildMipMaps = mipmappingRequired && (!useHardwareMipMapGeneration && !image->isMipmap()); 1779 1779 1780 unsigned char* dataMinusOffset = 0; 1781 unsigned char* dataPlusOffset = 0; 1782 1783 const PixelBufferObject* pbo = image->getPixelBufferObject(); 1784 if (pbo && pbo->isPBOSupported(contextID) && !needImageRescale && !useGluBuildMipMaps) 1780 const unsigned char* dataPtr = image->data(); 1781 GLBufferObject* pbo = image->getOrCreateGLBufferObject(contextID); 1782 if (pbo && !needImageRescale && !useGluBuildMipMaps) 1785 1783 { 1786 1784 state.bindPixelBufferObject(pbo); 1787 dataMinusOffset = data; 1788 dataPlusOffset = reinterpret_cast<unsigned char*>(pbo->offset()); 1785 dataPtr = reinterpret_cast<const unsigned char*>(pbo->getOffset(image->getBufferIndex())); 1789 1786 #ifdef DO_TIMING 1790 1787 osg::notify(osg::NOTICE)<<"after PBO "<<osg::Timer::instance()->delta_m(start_tick,osg::Timer::instance()->tick())<<"ms"<<std::endl; … … 1809 1806 (GLenum)image->getPixelFormat(), 1810 1807 (GLenum)image->getDataType(), 1811 data -dataMinusOffset+dataPlusOffset);1808 dataPtr); 1812 1809 1813 1810 } … … 1822 1819 inwidth, inheight,0, 1823 1820 size, 1824 data -dataMinusOffset+dataPlusOffset);1821 dataPtr); 1825 1822 } 1826 1823 … … 1854 1851 (GLenum)image->getPixelFormat(), 1855 1852 (GLenum)image->getDataType(), 1856 image->getMipmapData(k)-dataMinusOffset+dataPlusOffset);1853 dataPtr + image->getMipmapOffset(k)); 1857 1854 1858 1855 width >>= 1; … … 1875 1872 extensions->glCompressedTexImage2D(target, k, _internalFormat, 1876 1873 width, height, _borderWidth, 1877 size, image->getMipmapData(k)-dataMinusOffset+dataPlusOffset);1874 size, dataPtr + image->getMipmapOffset(k)); 1878 1875 1879 1876 width >>= 1; … … 2028 2025 unsigned char* dataPlusOffset = 0; 2029 2026 2030 const PixelBufferObject* pbo = image->getPixelBufferObject(); 2031 if (pbo && pbo->isPBOSupported(contextID) && !needImageRescale && !useGluBuildMipMaps) 2027 const unsigned char* dataPtr = image->data(); 2028 GLBufferObject* pbo = image->getOrCreateGLBufferObject(contextID); 2029 if (pbo && !needImageRescale && !useGluBuildMipMaps) 2032 2030 { 2033 2031 state.bindPixelBufferObject(pbo); 2034 dataMinusOffset = data; 2035 dataPlusOffset = reinterpret_cast<unsigned char*>(pbo->offset()); 2032 dataPtr = reinterpret_cast<unsigned char*>(pbo->getOffset(image->getBufferIndex())); 2036 2033 #ifdef DO_TIMING 2037 2034 osg::notify(osg::NOTICE)<<"after PBO "<<osg::Timer::instance()->delta_m(start_tick,osg::Timer::instance()->tick())<<"ms"<<std::endl;
