Hello Adrian, If you simply link all the files as one exe as I did in the VS 9 example please add VIEWDEPENDENTSHADOW_LIBRARY_STATIC macro to predefined C/C++ preprocessor symbols. Files in ViewDpendentShadow folder are designed to work as separate dynamic library. To link them directly with rest of shadow executable one has to force static linking. So if you define above macro it should solve inconsitent linkage warning.
As to "C2839: invalid return type ..." error I am bit puzzled. There is a slight chance that above macro will solve this issue as well. If not it probably means one will have to modify FaceDistances structure which contains stl vector of floats in such a way that this error disappears. Sorry I cant do this - don't have access to VS 7.3. Send me back your modifications if if you will be able to fix it I know I should probably prepare CMake project but I have never done this so I am afraid it would be flawed in some other way ;-( It should be possible to modify osgshadow cmake to work with it. But it wouldn't solve the problems you encountered - these compiler errors would be still there. Great thanks for testing. Wojtek Lewandowski -----Original Message----- From: Adrian Egli OpenSceneGraph (3D) [mailto:[EMAIL PROTECTED] Sent: Tuesday, August 19, 2008 9:04 AM To: [EMAIL PROTECTED]; OpenSceneGraph Submissions Subject: Re: [osg-submissions] Fw: View Dependent Shadow maps ( LispSM) Hi Wojciech, build fails under VS 2003, i don't know wether i have the wrong compiler settings or anythings else wrong done, but could you add it as cmake project? adrian i did new project C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ConvexPolyhedron.cpp(1250): error C2839: invalid return type 'std::vector<_Ty>::_Tptr' for overloaded 'operator ->' with [ _Ty=GLsizei ] C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ConvexPolyhedron.cpp(1251): error C2839: invalid return type 'std::vector<_Ty>::_Tptr' for overloaded 'operator ->' with [ _Ty=GLsizei ] C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ConvexPolyhedron.cpp(1274): error C2839: invalid return type 'std::vector<_Ty>::_Tptr' for overloaded 'operator ->' with [ _Ty=GLsizei ] C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ConvexPolyhedron.cpp(1279): error C2839: invalid return type 'std::vector<_Ty>::_Tptr' for overloaded 'operator ->' with [ _Ty=GLsizei ] C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ConvexPolyhedron.cpp(1279): error C2839: invalid return type 'std::vector<_Ty>::_Tptr' for overloaded 'operator ->' with [ _Ty=GLsizei ] C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ConvexPolyhedron.cpp(1281): error C2839: invalid return type 'std::vector<_Ty>::_Tptr' for overloaded 'operator ->' with [ _Ty=GLsizei ] C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ConvexPolyhedron.cpp(1288): error C2839: invalid return type 'std::vector<_Ty>::_Tptr' for overloaded 'operator ->' with [ _Ty=GLsizei ] C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ConvexPolyhedron.cpp(1290): error C2839: invalid return type 'std::vector<_Ty>::_Tptr' for overloaded 'operator ->' with [ _Ty=GLsizei ] C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ConvexPolyhedron.cpp(1423): error C2839: invalid return type 'std::vector<_Ty>::_Tptr' for overloaded 'operator ->' with [ _Ty=GLsizei ] C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ConvexPolyhedron.cpp(1212): error C2926: 'ViewDependentShadow::ConvexPolyhedron::cut::FaceDistances' : types with no linkage cannot be used as template arguments C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ConvexPolyhedron.cpp(301): error C2926: 'ViewDependentShadow::ConvexPolyhedron::transformClip::FaceDistances' : types with no linkage cannot be used as template arguments C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ConvexPolyhedron.cpp(1725): warning C4273: 'ViewDependentShadow::ConvexPolyhedron::buildGeometry' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ConvexPolyhedron.cpp(1024): warning C4273: 'ViewDependentShadow::ConvexPolyhedron::checkCoherency' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ConvexPolyhedron.cpp(1151): warning C4273: 'ViewDependentShadow::ConvexPolyhedron::computeBoundingBox' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ConvexPolyhedron.cpp(78): warning C4273: 'ViewDependentShadow::ConvexPolyhedron::ConvexPolyhedron' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ConvexPolyhedron.cpp(1172): warning C4273: 'ViewDependentShadow::ConvexPolyhedron::cut' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ConvexPolyhedron.cpp(1189): warning C4273: 'ViewDependentShadow::ConvexPolyhedron::cut' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ConvexPolyhedron.cpp(1201): warning C4273: 'ViewDependentShadow::ConvexPolyhedron::cut' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ConvexPolyhedron.cpp(1782): warning C4273: 'ViewDependentShadow::ConvexPolyhedron::dumpGeometry' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ConvexPolyhedron.cpp(1512): warning C4273: 'ViewDependentShadow::ConvexPolyhedron::extrude' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ConvexPolyhedron.cpp(1698): warning C4273: 'ViewDependentShadow::ConvexPolyhedron::getPoints' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ConvexPolyhedron.cpp(1688): warning C4273: 'ViewDependentShadow::ConvexPolyhedron::getPolytope' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ConvexPolyhedron.cpp(975): warning C4273: 'ViewDependentShadow::ConvexPolyhedron::isFacePolygonConvex' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ConvexPolyhedron.cpp(753): warning C4273: 'ViewDependentShadow::ConvexPolyhedron::mergeCoplanarFaces' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ConvexPolyhedron.cpp(631): warning C4273: 'ViewDependentShadow::ConvexPolyhedron::mergeFaces' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ConvexPolyhedron.cpp(958): warning C4273: 'ViewDependentShadow::ConvexPolyhedron::pointsColinear' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ConvexPolyhedron.cpp(796): warning C4273: 'ViewDependentShadow::ConvexPolyhedron::removeDuplicateVertices' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ConvexPolyhedron.cpp(166): warning C4273: 'ViewDependentShadow::ConvexPolyhedron::setToBoundingBox' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ConvexPolyhedron.cpp(90): warning C4273: 'ViewDependentShadow::ConvexPolyhedron::setToUnitFrustum' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ConvexPolyhedron.cpp(246): warning C4273: 'ViewDependentShadow::ConvexPolyhedron::transform' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ConvexPolyhedron.cpp(287): warning C4273: 'ViewDependentShadow::ConvexPolyhedron::transformClip' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ConvexPolyhedron.cpp(1673): warning C4273: 'ViewDependentShadow::ConvexPolyhedron::translate' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\DebugShadowMap.cpp(121): warning C4273: 'ViewDependentShadow::DebugShadowMap::~DebugShadowMap' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\DebugShadowMap.cpp(36): warning C4273: 'ViewDependentShadow::DebugShadowMap::DebugShadowMap' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\DebugShadowMap.cpp(104): warning C4273: 'ViewDependentShadow::DebugShadowMap::DebugShadowMap' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ConvexPolyhedron.cpp(68): warning C4273: 'ViewDependentShadow::defaultMatrix' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\LightSpacePerspectiveShadowMap.cpp(200): warning C4273: 'ViewDependentShadow::LightSpacePerspectiveShadowMapAlgorithm::operator`()'' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\MinimalCullBoundsShadowMap.cpp(36): warning C4273: 'ViewDependentShadow::MinimalCullBoundsShadowMap::~MinimalCullBoundsShadowMa p' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\MinimalCullBoundsShadowMap.cpp(25): warning C4273: 'ViewDependentShadow::MinimalCullBoundsShadowMap::MinimalCullBoundsShadowMap ' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\MinimalCullBoundsShadowMap.cpp(30): warning C4273: 'ViewDependentShadow::MinimalCullBoundsShadowMap::MinimalCullBoundsShadowMap ' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\MinimalDrawBoundsShadowMap.cpp(45): warning C4273: 'ViewDependentShadow::MinimalDrawBoundsShadowMap::~MinimalDrawBoundsShadowMa p' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\MinimalDrawBoundsShadowMap.cpp(34): warning C4273: 'ViewDependentShadow::MinimalDrawBoundsShadowMap::MinimalDrawBoundsShadowMap ' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\MinimalDrawBoundsShadowMap.cpp(39): warning C4273: 'ViewDependentShadow::MinimalDrawBoundsShadowMap::MinimalDrawBoundsShadowMap ' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\MinimalShadowMap.cpp(39): warning C4273: 'ViewDependentShadow::MinimalShadowMap::~MinimalShadowMap' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\MinimalShadowMap.cpp(25): warning C4273: 'ViewDependentShadow::MinimalShadowMap::MinimalShadowMap' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\MinimalShadowMap.cpp(31): warning C4273: 'ViewDependentShadow::MinimalShadowMap::MinimalShadowMap' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\StandardShadowMap.cpp(300): warning C4273: 'ViewDependentShadow::StandardShadowMap::~StandardShadowMap' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\StandardShadowMap.cpp(341): warning C4273: 'ViewDependentShadow::StandardShadowMap::searchAndReplaceShaderSource' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\StandardShadowMap.cpp(29): warning C4273: 'ViewDependentShadow::StandardShadowMap::StandardShadowMap' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\StandardShadowMap.cpp(274): warning C4273: 'ViewDependentShadow::StandardShadowMap::StandardShadowMap' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\StandardShadowMap.cpp(306): warning C4273: 'ViewDependentShadow::StandardShadowMap::updateTextureCoordIndices' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ViewDependentShadowTechnique.cpp(35): warning C4273: 'ViewDependentShadow::ViewDependentShadowTechnique::~ViewDependentShadowTech nique' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ViewDependentShadowTechnique.cpp(90): warning C4273: 'ViewDependentShadow::ViewDependentShadowTechnique::cleanSceneGraph' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ViewDependentShadowTechnique.cpp(71): warning C4273: 'ViewDependentShadow::ViewDependentShadowTechnique::cull' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ViewDependentShadowTechnique.cpp(45): warning C4273: 'ViewDependentShadow::ViewDependentShadowTechnique::dirty' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ViewDependentShadowTechnique.cpp(96): warning C4273: 'ViewDependentShadow::ViewDependentShadowTechnique::getViewDependentData' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ViewDependentShadowTechnique.cpp(59): warning C4273: 'ViewDependentShadow::ViewDependentShadowTechnique::init' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ViewDependentShadowTechnique.cpp(103): warning C4273: 'ViewDependentShadow::ViewDependentShadowTechnique::setViewDependentData' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ViewDependentShadowTechnique.cpp(40): warning C4273: 'ViewDependentShadow::ViewDependentShadowTechnique::traverse' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ViewDependentShadowTechnique.cpp(65): warning C4273: 'ViewDependentShadow::ViewDependentShadowTechnique::update' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ViewDependentShadowTechnique.cpp(23): warning C4273: 'ViewDependentShadow::ViewDependentShadowTechnique::ViewDependentShadowTechn ique' : inconsistent dll linkage C:\Dokumente und Einstellungen\adegli\Desktop\osgShadowViewDependent\osgShadowViewDependent\V iewDependentShadow\ViewDependentShadowTechnique.cpp(28): warning C4273: 'ViewDependentShadow::ViewDependentShadowTechnique::ViewDependentShadowTechn ique' : inconsistent dll linkage 2008/8/18 Wojciech Lewandowski <[EMAIL PROTECTED]> Thanks for testing and fixes, Tim I wrote this under windows. Pardon for my ignorance I am not sure how to apply .patch file here. Can you send me updated files as another zip ? Thanks, Wojtek -----Original Message----- From: Tim Moore [mailto:[EMAIL PROTECTED] Sent: Friday, August 15, 2008 12:09 AM To: OpenSceneGraph Submissions; [EMAIL PROTECTED] Subject: Re: [osg-submissions] Fw: View Dependent Shadow maps ( LispSM) Wojciech Lewandowski wrote: > Oops I have forgot to attach the release zip. Its attached here. > > Cheers, > Wojtek > Hi, Here are diffs to make view dependent shadows compile with gcc 4.3. I don't think any of the required changes are due to bugs in gcc, rather differing or stricter interpretations of the standard: strings.h and stdlib.h need to be included in a couple of places local classes can't be template arguments set::erase doesn't return a value itoa isn't standard on Linux nondependent name lookup doesn't look in dependent classes. Thanks, Tim > >> Hi Again, >> >> One more release. I have added methods to modify base and shadow >> texture sampler & TexCoord index. I have also modified shadow example >> to allow changing CastsShadowTraversalMask & >> ReceiveShadowTraversalMasks. Both this options are useful when trying >> to load external models which have nonstd masks set. >> >> I must admit I was not able to completely get rid of problems with >> omnidirectional lights. Directional lights are working great but >> omnidirectional lights continue to break shadows in certain >> light/camera angle combinations. I have found a workaround that fixes >> some of these issues when scene is larger than frustum but it brings >> problems in opposite case where frustum fully contains the scene. >> >> I am leaving for one week. I will continue my work on this after return. >> >> Cheers, >> Wojtek >> >>> Hi Guys, >>> >>> Attached is a new version of ViewDepdendentShadow code. I have also >>> included >>> modified osgShadow (osgShadowViewDependent) example with new (-4 option) >>> island scene and options to select one of LiSPSM variants. >>> >>> recommended use is >>> >>> osgshadow -4 --lispsm <--DrawBounds| --CullBounds | --ViewBounds> >>> <--debugHUD> --minFarDist 500 --minLightMargin 10 >>> >>> I am aware I have neglected few things. I will continue tweaking the >>> code. >>> Probably will send few more versions in incoming weeks. But I think its >>> pretty mature right now and really would like to get some feedback from >>> Robert and others. I will probably also try to add some comments: >>> licensing >>> info (OSGPL), thanks for my company, and maybe some doxygen comments >>> if time >>> allows. >>> >>> Cheers, >>> Wojtek Lewandowski _______________________________________________ osg-submissions mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegr aph.org -- ******************************************** Adrian Egli
_______________________________________________ osg-submissions mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
