00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include <string>
00026
00027 #include "../WGETextureHud.h"
00028
00029 #include "WGEOffscreenFinalPass.h"
00030
00031 WGEOffscreenFinalPass::WGEOffscreenFinalPass( size_t textureWidth, size_t textureHeight, int num ):
00032 WGEOffscreenTexturePass( textureWidth, textureHeight, num )
00033 {
00034
00035 setRenderTargetImplementation( osg::Camera::FRAME_BUFFER );
00036 setRenderOrder( osg::Camera::NESTED_RENDER, 0 );
00037
00038
00039 if( m_hud )
00040 {
00041 getOrCreateStateSet()->setRenderBinDetails( m_hud->getRenderBin() - 1, "RenderBin" );
00042 }
00043 else
00044 {
00045 getOrCreateStateSet()->setRenderBinDetails( 10000, "RenderBin" );
00046 }
00047
00048 osg::StateSet* state = this->getOrCreateStateSet();
00049 state->setMode( GL_DEPTH_TEST, osg::StateAttribute::ON );
00050
00051
00052 getOrCreateStateSet()->setMode( GL_BLEND, osg::StateAttribute::ON );
00053 }
00054
00055 WGEOffscreenFinalPass::WGEOffscreenFinalPass( size_t textureWidth, size_t textureHeight, osg::ref_ptr< WGETextureHud > hud, std::string name,
00056 int num ):
00057 WGEOffscreenTexturePass( textureWidth, textureHeight, hud, name, num )
00058 {
00059
00060 setRenderTargetImplementation( osg::Camera::FRAME_BUFFER );
00061 setRenderOrder( osg::Camera::NESTED_RENDER, 0 );
00062
00063
00064 if( m_hud )
00065 {
00066 getOrCreateStateSet()->setRenderBinDetails( m_hud->getRenderBin() - 1, "RenderBin" );
00067 }
00068 else
00069 {
00070 getOrCreateStateSet()->setRenderBinDetails( 10000, "RenderBin" );
00071 }
00072
00073 osg::StateSet* state = this->getOrCreateStateSet();
00074 state->setMode( GL_DEPTH_TEST, osg::StateAttribute::ON );
00075
00076
00077 getOrCreateStateSet()->setMode( GL_BLEND, osg::StateAttribute::ON );
00078 }
00079
00080 WGEOffscreenFinalPass::~WGEOffscreenFinalPass()
00081 {
00082
00083 }
00084