root/OpenSceneGraph/trunk/src/osgWrappers/serializers/osg/Uniform.cpp @ 13041

Revision 13041, 4.2 kB (checked in by robert, 2 years ago)

Ran script to remove trailing spaces and tabs

  • Property svn:eol-style set to native
Line 
1#include <osg/Uniform>
2#include <osgDB/ObjectWrapper>
3#include <osgDB/InputStream>
4#include <osgDB/OutputStream>
5
6static bool checkElements( const osg::Uniform& uniform )
7{
8    return uniform.getNumElements()>0;
9}
10
11static bool readElements( osgDB::InputStream& is, osg::Uniform& uniform )
12{
13    bool hasArray; is >> hasArray;
14    if ( hasArray )
15    {
16        osg::Array* array = is.readArray();
17        switch ( array->getType() )
18        {
19        case osg::Array::FloatArrayType:
20            uniform.setArray( static_cast<osg::FloatArray*>(array) ); break;
21        case osg::Array::IntArrayType:
22            uniform.setArray( static_cast<osg::IntArray*>(array) ); break;
23        case osg::Array::UIntArrayType:
24            uniform.setArray( static_cast<osg::UIntArray*>(array) ); break;
25        default: break;
26        }
27    }
28    return true;
29}
30
31static bool writeElements( osgDB::OutputStream& os, const osg::Uniform& uniform )
32{
33    if ( uniform.getFloatArray()!=NULL )
34    {
35        os << (uniform.getFloatArray()!=NULL);
36        os.writeArray( uniform.getFloatArray() );
37    }
38    else if ( uniform.getIntArray()!=NULL )
39    {
40        os << (uniform.getIntArray()!=NULL);
41        os.writeArray( uniform.getIntArray() );
42    }
43    else
44    {
45        os << (uniform.getUIntArray()!=NULL);
46        os.writeArray( uniform.getUIntArray() );
47    }
48    return true;
49}
50
51REGISTER_OBJECT_WRAPPER( Uniform,
52                         new osg::Uniform,
53                         osg::Uniform,
54                         "osg::Object osg::Uniform" )
55{
56    BEGIN_ENUM_SERIALIZER3( Type, UNDEFINED );
57        ADD_ENUM_VALUE( FLOAT );
58        ADD_ENUM_VALUE( FLOAT_VEC2 );
59        ADD_ENUM_VALUE( FLOAT_VEC3 );
60        ADD_ENUM_VALUE( FLOAT_VEC4 );
61        ADD_ENUM_VALUE( INT );
62        ADD_ENUM_VALUE( INT_VEC2 );
63        ADD_ENUM_VALUE( INT_VEC3 );
64        ADD_ENUM_VALUE( INT_VEC4 );
65        ADD_ENUM_VALUE( BOOL );
66        ADD_ENUM_VALUE( BOOL_VEC2 );
67        ADD_ENUM_VALUE( BOOL_VEC3 );
68        ADD_ENUM_VALUE( BOOL_VEC4 );
69        ADD_ENUM_VALUE( FLOAT_MAT2 );
70        ADD_ENUM_VALUE( FLOAT_MAT3 );
71        ADD_ENUM_VALUE( FLOAT_MAT4 );
72        ADD_ENUM_VALUE( SAMPLER_1D );
73        ADD_ENUM_VALUE( SAMPLER_2D );
74        ADD_ENUM_VALUE( SAMPLER_3D );
75        ADD_ENUM_VALUE( SAMPLER_CUBE );
76        ADD_ENUM_VALUE( SAMPLER_1D_SHADOW );
77        ADD_ENUM_VALUE( SAMPLER_2D_SHADOW );
78        ADD_ENUM_VALUE( SAMPLER_1D_ARRAY );
79        ADD_ENUM_VALUE( SAMPLER_2D_ARRAY );
80        ADD_ENUM_VALUE( SAMPLER_1D_ARRAY_SHADOW );
81        ADD_ENUM_VALUE( SAMPLER_2D_ARRAY_SHADOW );
82        ADD_ENUM_VALUE( FLOAT_MAT2x3 );
83        ADD_ENUM_VALUE( FLOAT_MAT2x4 );
84        ADD_ENUM_VALUE( FLOAT_MAT3x2 );
85        ADD_ENUM_VALUE( FLOAT_MAT3x4 );
86        ADD_ENUM_VALUE( FLOAT_MAT4x2 );
87        ADD_ENUM_VALUE( FLOAT_MAT4x3 );
88        ADD_ENUM_VALUE( SAMPLER_BUFFER );
89        ADD_ENUM_VALUE( SAMPLER_CUBE_SHADOW );
90        ADD_ENUM_VALUE( UNSIGNED_INT );
91        ADD_ENUM_VALUE( UNSIGNED_INT_VEC2 );
92        ADD_ENUM_VALUE( UNSIGNED_INT_VEC3 );
93        ADD_ENUM_VALUE( UNSIGNED_INT_VEC4 );
94        ADD_ENUM_VALUE( INT_SAMPLER_1D );
95        ADD_ENUM_VALUE( INT_SAMPLER_2D );
96        ADD_ENUM_VALUE( INT_SAMPLER_3D );
97        ADD_ENUM_VALUE( INT_SAMPLER_CUBE );
98        ADD_ENUM_VALUE( INT_SAMPLER_2D_RECT );
99        ADD_ENUM_VALUE( INT_SAMPLER_1D_ARRAY );
100        ADD_ENUM_VALUE( INT_SAMPLER_2D_ARRAY );
101        ADD_ENUM_VALUE( INT_SAMPLER_BUFFER );
102        ADD_ENUM_VALUE( UNSIGNED_INT_SAMPLER_1D );
103        ADD_ENUM_VALUE( UNSIGNED_INT_SAMPLER_2D );
104        ADD_ENUM_VALUE( UNSIGNED_INT_SAMPLER_3D );
105        ADD_ENUM_VALUE( UNSIGNED_INT_SAMPLER_CUBE );
106        ADD_ENUM_VALUE( UNSIGNED_INT_SAMPLER_2D_RECT );
107        ADD_ENUM_VALUE( UNSIGNED_INT_SAMPLER_1D_ARRAY );
108        ADD_ENUM_VALUE( UNSIGNED_INT_SAMPLER_2D_ARRAY );
109        ADD_ENUM_VALUE( UNSIGNED_INT_SAMPLER_BUFFER );
110        ADD_ENUM_VALUE( UNDEFINED );
111    END_ENUM_SERIALIZER();  // _type
112
113    ADD_UINT_SERIALIZER( NumElements, 0 );  // _numElements
114    ADD_USER_SERIALIZER( Elements );  // _floatArray, _intArray, _uintArray
115    ADD_OBJECT_SERIALIZER( UpdateCallback, osg::Uniform::Callback, NULL );  // _updateCallback
116    ADD_OBJECT_SERIALIZER( EventCallback, osg::Uniform::Callback, NULL );  // _eventCallback
117}
Note: See TracBrowser for help on using the browser.