diff --git a/VisualStudio/OpenSceneGraph.dsw b/VisualStudio/OpenSceneGraph.dsw index c4cc06273..a2366ff50 100644 --- a/VisualStudio/OpenSceneGraph.dsw +++ b/VisualStudio/OpenSceneGraph.dsw @@ -3519,6 +3519,30 @@ Package=<4> ############################################################################### +Project: "osgPlugin osgShadow"=.\osgPlugins\osgShadow\dot_osgShadow.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name Core osg + End Project Dependency + Begin Project Dependency + Project_Dep_Name Core osgDB + End Project Dependency + Begin Project Dependency + Project_Dep_Name Core osgShadow + End Project Dependency + Begin Project Dependency + Project_Dep_Name Core osgUtil + End Project Dependency +}}} + +############################################################################### + Project: "osgPlugin osgParticle"=.\osgPlugins\osgParticle\dot_osgParticle.dsp - Package Owner=<4> Package=<5> diff --git a/VisualStudio/osgPlugins/osgShadow/dot_osgShadow.dsp b/VisualStudio/osgPlugins/osgShadow/dot_osgShadow.dsp new file mode 100644 index 000000000..05b330c81 --- /dev/null +++ b/VisualStudio/osgPlugins/osgShadow/dot_osgShadow.dsp @@ -0,0 +1,194 @@ +# Microsoft Developer Studio Project File - Name="osgPlugin osgShadow" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=osgPlugin osgShadow - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "dot_osgShadow.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "dot_osgShadow.mak" CFG="osgPlugin osgShadow - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "osgPlugin osgShadow - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "osgPlugin osgShadow - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "osgPlugin osgShadow - Win32 Release Static" (based on "Win32 (x86) Static Library") +!MESSAGE "osgPlugin osgShadow - Win32 Debug Static" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "osgPlugin osgShadow - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "../../../bin/$(PlatformName)" +# PROP Intermediate_Dir "$(PlatformName)/$(ConfigurationName)" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +F90=df.exe +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GR /GX /O2 /I "../../../include" /I "../../../../OpenThreads/include" /I "../../../../3rdParty/include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_CRT_SECURE_NO_DEPRECATE" /YX /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x809 /d "NDEBUG" +# ADD RSC /l 0x809 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 OpenThreadsWin32.lib /nologo /dll /debug /machine:I386 /nodefaultlib:"LIBC" /opt:ref /opt:icf /out:"$(OutDir)/osgdb_osgShadow.dll" /implib:"../../../lib/$(PlatformName)/osgdb_osgShadow.lib" /libpath:"../../../lib/$(PlatformName)" /libpath:"../../../../OpenThreads/lib/$(PlatformName)" /libpath:"../../../../3rdParty/lib/$(PlatformName)" /libpath:"../../../../3rdParty/lib" +# SUBTRACT LINK32 /nodefaultlib + +!ELSEIF "$(CFG)" == "osgPlugin osgShadow - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "../../../bin/$(PlatformName)" +# PROP Intermediate_Dir "$(PlatformName)/$(ConfigurationName)" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +F90=df.exe +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /YX /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm /vmg /GR /GX /Zi /Od /I "../../../include" /I "../../../../OpenThreads/include" /I "../../../../3rdParty/include" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "WIN32" /D "_DEBUG" /D "_CRT_SECURE_NO_DEPRECATE" /YX /FD /GZ /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 OpenThreadsWin32d.lib /nologo /dll /debug /machine:I386 /nodefaultlib:"LIBC" /out:"$(OutDir)/osgdb_osgShadowd.dll" /pdbtype:sept /implib:"../../../lib/$(PlatformName)/osgdb_osgShadowd.lib" /libpath:"../../../lib/$(PlatformName)" /libpath:"../../../../OpenThreads/lib/$(PlatformName)" /libpath:"../../../../3rdParty/lib/$(PlatformName)" /libpath:"../../../../3rdParty/lib" +# SUBTRACT LINK32 /pdb:none /nodefaultlib + +!ELSEIF "$(CFG)" == "osgPlugin osgShadow - Win32 Release Static" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "../../../lib" +# PROP BASE Intermediate_Dir "Release_Static" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "../../../lib/$(PlatformName)" +# PROP Intermediate_Dir "$(PlatformName)/$(ConfigurationName)_Static" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +F90=df.exe +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "OSG_LIBRARY_STATIC" /D "OT_LIBRARY_STATIC" /D "_WINDOWS" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I "../../../include" /I "../../../../OpenThreads/include" /I "../../../../3rdParty/include" /D "WIN32" /D "OSG_LIBRARY_STATIC" /D "OT_LIBRARY_STATIC" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_CRT_SECURE_NO_DEPRECATE" /YX /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x809 /d "NDEBUG" +# ADD RSC /l 0x809 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nodefaultlib /nologo /out:"$(OutDir)/osgdb_osgShadow_s.lib" +# SUBTRACT LIB32 /nodefaultlib + +!ELSEIF "$(CFG)" == "osgPlugin osgShadow - Win32 Debug Static" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "../../../lib" +# PROP BASE Intermediate_Dir "Debug_Static" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "../../../lib/$(PlatformName)" +# PROP Intermediate_Dir "$(PlatformName)/$(ConfigurationName)_Static" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +F90=df.exe +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Z7 /Od /D "WIN32" /D "_DEBUG" /D "OSG_LIBRARY_STATIC" /D "OT_LIBRARY_STATIC" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /vmg /GR /GX /Z7 /Od /I "../../../include" /I "../../../../OpenThreads/include" /I "../../../../3rdParty/include" /D "_WINDOWS" /D "OSG_LIBRARY_STATIC" /D "OT_LIBRARY_STATIC" /D "_MBCS" /D "WIN32" /D "_DEBUG" /D "_CRT_SECURE_NO_DEPRECATE" /YX /FD /GZ /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nodefaultlib /nologo /out:"$(OutDir)/osgdb_osgShadowd_s.lib" +# SUBTRACT LIB32 /nodefaultlib + +!ENDIF + +# Begin Target + +# Name "osgPlugin osgShadow - Win32 Release" +# Name "osgPlugin osgShadow - Win32 Debug" +# Name "osgPlugin osgShadow - Win32 Release Static" +# Name "osgPlugin osgShadow - Win32 Debug Static" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" + +# Begin Source File + +SOURCE=..\..\..\src\osgPlugins\osgShadow\ParallelSplitShadowMap.cpp.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\src\osgPlugins\osgShadow\ShadowedScene.cpp.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\src\osgPlugins\osgShadow\ShadowMap.cpp.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\src\osgPlugins\osgShadow\ShadowTechnique.cpp.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\src\osgPlugins\osgShadow\ShadowTexture.cpp.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\src\osgPlugins\osgShadow\ShadowVolume.cpp.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# End Target +# End Project + diff --git a/src/osgPlugins/osgShadow/GNUmakefile b/src/osgPlugins/osgShadow/GNUmakefile new file mode 100644 index 000000000..2408ffa76 --- /dev/null +++ b/src/osgPlugins/osgShadow/GNUmakefile @@ -0,0 +1,18 @@ +TOPDIR = ../../.. +include $(TOPDIR)/Make/makedefs + +CXXFILES =\ + ParallelSplitShadowMap.cpp\ + ShadowMap.cpp\ + ShadowTechnique.cpp\ + ShadowTexture.cpp\ + ShadowVolume.cpp\ + ShadowedScene.cpp + +LIBS += -losgShadow -losgUtil -losg $(OTHER_LIBS) + +TARGET_BASENAME = osgShadow +include $(TOPDIR)/Make/cygwin_plugin_def +PLUGIN = $(PLUGIN_PREFIX)$(TARGET_BASENAME).$(PLUGIN_EXT) + +include $(TOPDIR)/Make/makerules diff --git a/src/osgPlugins/osgShadow/ParallelSplitShadowMap.cpp b/src/osgPlugins/osgShadow/ParallelSplitShadowMap.cpp new file mode 100644 index 000000000..9eb929cbd --- /dev/null +++ b/src/osgPlugins/osgShadow/ParallelSplitShadowMap.cpp @@ -0,0 +1,40 @@ +#include + +#include +#include + +#include +#include +#include + +#include +#include +#include +#include + +bool ParallelSplitShadowMap_readLocalData(osg::Object &obj, osgDB::Input &fr); +bool ParallelSplitShadowMap_writeLocalData(const osg::Object &obj, osgDB::Output &fw); + +osgDB::RegisterDotOsgWrapperProxy ParallelSplitShadowMap_Proxy +( + new osgShadow::ParallelSplitShadowMap, + "ParallelSplitShadowMap", + "Object ShadowTechnique ParallelSplitShadowMap", + ParallelSplitShadowMap_readLocalData, + ParallelSplitShadowMap_writeLocalData +); + +bool ParallelSplitShadowMap_readLocalData(osg::Object& obj, osgDB::Input &fr) +{ + osgShadow::ParallelSplitShadowMap& ss = static_cast(obj); + bool itAdvanced = false; + + return itAdvanced; +} + +bool ParallelSplitShadowMap_writeLocalData(const osg::Object& obj, osgDB::Output& fw) +{ + const osgShadow::ParallelSplitShadowMap& ss = static_cast(obj); + + return true; +} diff --git a/src/osgPlugins/osgShadow/ShadowMap.cpp b/src/osgPlugins/osgShadow/ShadowMap.cpp new file mode 100644 index 000000000..246861373 --- /dev/null +++ b/src/osgPlugins/osgShadow/ShadowMap.cpp @@ -0,0 +1,40 @@ +#include + +#include +#include + +#include +#include +#include + +#include +#include +#include +#include + +bool ShadowMap_readLocalData(osg::Object &obj, osgDB::Input &fr); +bool ShadowMap_writeLocalData(const osg::Object &obj, osgDB::Output &fw); + +osgDB::RegisterDotOsgWrapperProxy ShadowMap_Proxy +( + new osgShadow::ShadowMap, + "ShadowMap", + "Object ShadowTechnique ShadowMap", + ShadowMap_readLocalData, + ShadowMap_writeLocalData +); + +bool ShadowMap_readLocalData(osg::Object& obj, osgDB::Input &fr) +{ + osgShadow::ShadowMap& ss = static_cast(obj); + bool itAdvanced = false; + + return itAdvanced; +} + +bool ShadowMap_writeLocalData(const osg::Object& obj, osgDB::Output& fw) +{ + const osgShadow::ShadowMap& ss = static_cast(obj); + + return true; +} diff --git a/src/osgPlugins/osgShadow/ShadowTechnique.cpp b/src/osgPlugins/osgShadow/ShadowTechnique.cpp new file mode 100644 index 000000000..a94530b46 --- /dev/null +++ b/src/osgPlugins/osgShadow/ShadowTechnique.cpp @@ -0,0 +1,40 @@ +#include + +#include +#include + +#include +#include +#include + +#include +#include +#include +#include + +bool ShadowTechnique_readLocalData(osg::Object &obj, osgDB::Input &fr); +bool ShadowTechnique_writeLocalData(const osg::Object &obj, osgDB::Output &fw); + +osgDB::RegisterDotOsgWrapperProxy ShadowTechnique_Proxy +( + new osgShadow::ShadowTechnique, + "ShadowTechnique", + "Object ShadowTechnique ", + ShadowTechnique_readLocalData, + ShadowTechnique_writeLocalData +); + +bool ShadowTechnique_readLocalData(osg::Object& obj, osgDB::Input &fr) +{ + osgShadow::ShadowTechnique& ss = static_cast(obj); + bool itAdvanced = false; + + return itAdvanced; +} + +bool ShadowTechnique_writeLocalData(const osg::Object& obj, osgDB::Output& fw) +{ + const osgShadow::ShadowTechnique& ss = static_cast(obj); + + return true; +} diff --git a/src/osgPlugins/osgShadow/ShadowTexture.cpp b/src/osgPlugins/osgShadow/ShadowTexture.cpp new file mode 100644 index 000000000..d6bc4773c --- /dev/null +++ b/src/osgPlugins/osgShadow/ShadowTexture.cpp @@ -0,0 +1,40 @@ +#include + +#include +#include + +#include +#include +#include + +#include +#include +#include +#include + +bool ShadowTexture_readLocalData(osg::Object &obj, osgDB::Input &fr); +bool ShadowTexture_writeLocalData(const osg::Object &obj, osgDB::Output &fw); + +osgDB::RegisterDotOsgWrapperProxy ShadowTexture_Proxy +( + new osgShadow::ShadowTexture, + "ShadowTexture", + "Object ShadowTechnique ShadowTexture", + ShadowTexture_readLocalData, + ShadowTexture_writeLocalData +); + +bool ShadowTexture_readLocalData(osg::Object& obj, osgDB::Input &fr) +{ + osgShadow::ShadowTexture& ss = static_cast(obj); + bool itAdvanced = false; + + return itAdvanced; +} + +bool ShadowTexture_writeLocalData(const osg::Object& obj, osgDB::Output& fw) +{ + const osgShadow::ShadowTexture& ss = static_cast(obj); + + return true; +} diff --git a/src/osgPlugins/osgShadow/ShadowVolume.cpp b/src/osgPlugins/osgShadow/ShadowVolume.cpp new file mode 100644 index 000000000..f9ff0de1d --- /dev/null +++ b/src/osgPlugins/osgShadow/ShadowVolume.cpp @@ -0,0 +1,40 @@ +#include + +#include +#include + +#include +#include +#include + +#include +#include +#include +#include + +bool ShadowVolume_readLocalData(osg::Object &obj, osgDB::Input &fr); +bool ShadowVolume_writeLocalData(const osg::Object &obj, osgDB::Output &fw); + +osgDB::RegisterDotOsgWrapperProxy ShadowVolume_Proxy +( + new osgShadow::ShadowVolume, + "ShadowVolume", + "Object ShadowTechnique ShadowVolume", + ShadowVolume_readLocalData, + ShadowVolume_writeLocalData +); + +bool ShadowVolume_readLocalData(osg::Object& obj, osgDB::Input &fr) +{ + osgShadow::ShadowVolume& ss = static_cast(obj); + bool itAdvanced = false; + + return itAdvanced; +} + +bool ShadowVolume_writeLocalData(const osg::Object& obj, osgDB::Output& fw) +{ + const osgShadow::ShadowVolume& ss = static_cast(obj); + + return true; +} diff --git a/src/osgPlugins/osgShadow/ShadowedScene.cpp b/src/osgPlugins/osgShadow/ShadowedScene.cpp new file mode 100644 index 000000000..97f197785 --- /dev/null +++ b/src/osgPlugins/osgShadow/ShadowedScene.cpp @@ -0,0 +1,53 @@ +#include + +#include +#include + +#include +#include +#include + +#include +#include +#include +#include + +bool ShadowedScene_readLocalData(osg::Object &obj, osgDB::Input &fr); +bool ShadowedScene_writeLocalData(const osg::Object &obj, osgDB::Output &fw); + +osgDB::RegisterDotOsgWrapperProxy ShadowedScene_Proxy +( + new osgShadow::ShadowedScene, + "ShadowedScene", + "Object ShadowedScene Group ", + ShadowedScene_readLocalData, + ShadowedScene_writeLocalData +); + +bool ShadowedScene_readLocalData(osg::Object& obj, osgDB::Input &fr) +{ + osgShadow::ShadowedScene& ss = static_cast(obj); + bool iteratorAdvanced = false; + + osg::ref_ptr object=0; + while((object=fr.readObject())!=0) + { + osgShadow::ShadowTechnique* st = dynamic_cast(object.get()); + if (st) ss.setShadowTechnique(st); + iteratorAdvanced = true; + } + + return iteratorAdvanced; +} + +bool ShadowedScene_writeLocalData(const osg::Object& obj, osgDB::Output& fw) +{ + const osgShadow::ShadowedScene& ss = static_cast(obj); + + if (ss.getShadowTechnique()) + { + fw.writeObject(*ss.getShadowTechnique()); + } + + return true; +}