25 #include "../common/exceptions/WPreconditionNotMet.h"
27 #include "WGETexture.h"
29 #include "WGETextureUtils.h"
33 for(
size_t i = unit; i < unit + count; ++i )
35 node->getOrCreateStateSet()->removeTextureAttribute( i, osg::StateAttribute::TEXTURE );
36 node->getOrCreateStateSet()->removeTextureAttribute( i, osg::StateAttribute::TEXMAT );
53 randTexture->setTextureWidth( sizeX );
54 randTexture->setFilter( osg::Texture1D::MIN_FILTER, osg::Texture1D::NEAREST );
55 randTexture->setFilter( osg::Texture1D::MAG_FILTER, osg::Texture1D::NEAREST );
56 randTexture->setWrap( osg::Texture1D::WRAP_S, osg::Texture1D::REPEAT );
64 randTexture->setTextureWidth( sizeX );
65 randTexture->setTextureHeight( sizeY );
66 randTexture->setFilter( osg::Texture2D::MIN_FILTER, osg::Texture2D::NEAREST );
67 randTexture->setFilter( osg::Texture2D::MAG_FILTER, osg::Texture2D::NEAREST );
68 randTexture->setWrap( osg::Texture2D::WRAP_S, osg::Texture2D::REPEAT );
69 randTexture->setWrap( osg::Texture2D::WRAP_T, osg::Texture2D::REPEAT );
77 randTexture->setTextureWidth( sizeX );
78 randTexture->setTextureHeight( sizeY );
79 randTexture->setTextureDepth( sizeZ );
80 randTexture->setFilter( osg::Texture2D::MIN_FILTER, osg::Texture2D::NEAREST );
81 randTexture->setFilter( osg::Texture2D::MAG_FILTER, osg::Texture2D::NEAREST );
82 randTexture->setWrap( osg::Texture2D::WRAP_S, osg::Texture2D::REPEAT );
83 randTexture->setWrap( osg::Texture2D::WRAP_T, osg::Texture2D::REPEAT );
84 randTexture->setWrap( osg::Texture2D::WRAP_R, osg::Texture2D::REPEAT );
91 WPrecond( ( channels == 1 ) || ( channels == 3 ) || ( channels == 4 ),
"Invalid number of channels. Valid are: 1, 3 and 4." );
94 std::srand( time( 0 ) );
95 osg::ref_ptr< osg::Image > randImage =
new osg::Image();
96 GLenum type = GL_LUMINANCE;
101 else if( channels == 4 )
105 randImage->allocateImage( sizeX, sizeY, sizeZ, type, GL_UNSIGNED_BYTE );
106 unsigned char *randomLuminance = randImage->data();
107 for(
size_t i = 0; i < channels * sizeX * sizeY * sizeZ; ++i )
110 unsigned char r =
static_cast< unsigned char >( std::rand() % 255 );
111 randomLuminance[ i ] = r;