Changeset 172 for experimental
- Timestamp:
- Dec 7, 2010, 10:55:17 AM (14 years ago)
- Location:
- experimental/TerrainTest
- Files:
-
- 1 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
experimental/TerrainTest/myTerrainTechnique.cpp
r171 r172 34 34 ImageLayer* il = dynamic_cast<ImageLayer*>( getTerrainTile()->getColorLayer(0) ); 35 35 osg::Image* img = il->getImage(); 36 img->setInternalTextureFormat( GL_RGBA );36 //img->setInternalTextureFormat( GL_RGBA ); 37 37 38 osg::ref_ptr<osg::Image> img2 = new osg::Image(); 39 img2->setInternalTextureFormat( GL_RGBA ); 40 img2->alloc 38 if( img->getPixelFormat() == GL_RGBA ) 39 OSG_ALWAYS << "Format ist RGBA" << std::endl; 40 if( img->getPixelFormat() == GL_RGB ) 41 OSG_ALWAYS << "Format ist RGB" << std::endl; 42 if( img->getPixelFormat() == GL_COMPRESSED_RGB_S3TC_DXT1_EXT ) 43 OSG_ALWAYS << "Format ist GL_COMPRESSED_RGB_S3TC_DXT1_EXT" << std::endl; 44 45 46 47 //osg::ref_ptr<osg::Image> img2 = new osg::Image(); 48 //img2->setInternalTextureFormat( GL_RGBA ); 49 //OSG_ALWAYS << "test: " << std::hex << img->getPixelFormat() << std::endl; 41 50 42 51 GeometryTechnique::init(dirtyMask, assumeMultiThreaded); 43 52 } 53 54 void myTerrainTechnique::ConvertImage(osg::ref_ptr<osg::Image> a_toImage, osg::ref_ptr<osg::Image> a_fromImage, GLenum a_pixelFormat, GLenum a_dataType) 55 { 56 GLenum dataType = a_fromImage -> getDataType(); 57 58 //setInternalTextureFormat( 0); // tmp 59 a_toImage -> allocateImage( 60 a_fromImage -> s(), 61 a_fromImage -> t(), 62 a_fromImage -> r(), 63 a_pixelFormat, a_dataType, a_fromImage -> getPacking()); 64 65 //// Wenn Quelle und Ziel RGBA sind 66 //if( a_toImage -> getPixelFormat() == GL_RGBA && a_fromImage -> getPixelFormat() == GL_RGBA) 67 //{ 68 // unsigned nr = a_fromImage->t(); 69 // unsigned nc = a_fromImage->s(); 70 // for (unsigned r = 0; r < nr; ++r) 71 // { 72 // for (unsigned c = 0; c < nc; ++c) 73 // { 74 // unsigned char * fromPixelData = a_fromImage -> data(c, nr-r-1); 75 // unsigned char * toPixelData = a_toImage -> data(c, nr-r-1); 76 77 // // Copy r, g, b, a. 78 // for( int component = 0; component < 4; ++ component) 79 // { 80 // My_OSG_Library::OSG_PixelComponent pixelComponent( a_fromImage -> getDataType(), fromPixelData, component /* r, g, b, a */); 81 // pixelComponent.Store( a_toImage -> getDataType(), toPixelData, component); 82 // } 83 // } 84 // } 85 //} 86 //else 87 // Wenn Quelle RGB ist und Ziel RGBA 88 //if( a_toImage -> getPixelFormat() == GL_RGBA && a_fromImage -> getPixelFormat() == GL_RGB) 89 //{ 90 // unsigned nr = a_fromImage -> t(); 91 // unsigned nc = a_fromImage -> s(); 92 // for (unsigned r = 0; r < nr; ++r) 93 // { 94 // for (unsigned c = 0; c < nc; ++c) 95 // { 96 // unsigned char * fromPixelData = a_fromImage -> data(c, nr-r-1); 97 // unsigned char * toPixelData = a_toImage -> data(c, nr-r-1); 98 99 // // Copy r, g, b. 100 // for( int component = 0; component < 3; ++ component) 101 // { 102 // My_OSG_Library::OSG_PixelComponent pixelComponent( a_fromImage -> getDataType(), fromPixelData, component /* r, g, b */); 103 // pixelComponent.Store( a_toImage -> getDataType(), toPixelData, component); 104 // } 105 106 // // Initialize alpha to opaque. 107 // My_OSG_Library::OSG_PixelComponent::One().Store( a_toImage -> getDataType(), toPixelData, 3); 108 // } 109 // } 110 //} 111 } -
experimental/TerrainTest/myTerrainTechnique.h
r171 r172 3 3 #include <osgTerrain/GeometryTechnique> 4 4 #include <osg/Image> 5 5 6 6 7 namespace osgTerrain { … … 19 20 20 21 virtual void init(int dirtyMask, bool assumeMultiThreaded); 22 23 void ConvertImage(osg::ref_ptr<osg::Image> a_toImage, osg::ref_ptr<osg::Image> a_fromImage, GLenum a_pixelFormat, GLenum a_dataType); 21 24 }; 22 25
Note: See TracChangeset
for help on using the changeset viewer.