~ubuntu-branches/ubuntu/precise/openwalnut/precise

« back to all changes in this revision

Viewing changes to src/core/graphicsEngine/offscreen/WGEOffscreenFinalPass.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Sebastian Eichelbaum
  • Date: 2011-06-21 10:26:54 UTC
  • Revision ID: james.westby@ubuntu.com-20110621102654-rq0zf436q949biih
Tags: upstream-1.2.5
ImportĀ upstreamĀ versionĀ 1.2.5

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
//---------------------------------------------------------------------------
 
2
//
 
3
// Project: OpenWalnut ( http://www.openwalnut.org )
 
4
//
 
5
// Copyright 2009 OpenWalnut Community, BSV@Uni-Leipzig and CNCF@MPI-CBS
 
6
// For more information see http://www.openwalnut.org/copying
 
7
//
 
8
// This file is part of OpenWalnut.
 
9
//
 
10
// OpenWalnut is free software: you can redistribute it and/or modify
 
11
// it under the terms of the GNU Lesser General Public License as published by
 
12
// the Free Software Foundation, either version 3 of the License, or
 
13
// (at your option) any later version.
 
14
//
 
15
// OpenWalnut is distributed in the hope that it will be useful,
 
16
// but WITHOUT ANY WARRANTY; without even the implied warranty of
 
17
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
18
// GNU Lesser General Public License for more details.
 
19
//
 
20
// You should have received a copy of the GNU Lesser General Public License
 
21
// along with OpenWalnut. If not, see <http://www.gnu.org/licenses/>.
 
22
//
 
23
//---------------------------------------------------------------------------
 
24
 
 
25
#include <string>
 
26
 
 
27
#include "../WGETextureHud.h"
 
28
 
 
29
#include "WGEOffscreenFinalPass.h"
 
30
 
 
31
WGEOffscreenFinalPass::WGEOffscreenFinalPass( size_t textureWidth, size_t textureHeight, int num ):
 
32
    WGEOffscreenTexturePass( textureWidth, textureHeight, num )
 
33
{
 
34
    // initialize members
 
35
    setRenderTargetImplementation( osg::Camera::FRAME_BUFFER );
 
36
    setRenderOrder( osg::Camera::NESTED_RENDER, 0 );
 
37
 
 
38
    // render before the hud
 
39
    if( m_hud )
 
40
    {
 
41
        getOrCreateStateSet()->setRenderBinDetails( m_hud->getRenderBin() - 1, "RenderBin" );
 
42
    }
 
43
    else
 
44
    {
 
45
        getOrCreateStateSet()->setRenderBinDetails( 10000, "RenderBin" );
 
46
    }
 
47
 
 
48
    osg::StateSet* state = this->getOrCreateStateSet();
 
49
    state->setMode( GL_DEPTH_TEST, osg::StateAttribute::ON );
 
50
 
 
51
    // allow the user to use blending
 
52
    getOrCreateStateSet()->setMode( GL_BLEND, osg::StateAttribute::ON );
 
53
}
 
54
 
 
55
WGEOffscreenFinalPass::WGEOffscreenFinalPass( size_t textureWidth, size_t textureHeight, osg::ref_ptr< WGETextureHud > hud, std::string name,
 
56
                                                  int num ):
 
57
    WGEOffscreenTexturePass( textureWidth, textureHeight, hud, name, num )
 
58
{
 
59
    // initialize members
 
60
    setRenderTargetImplementation( osg::Camera::FRAME_BUFFER );
 
61
    setRenderOrder( osg::Camera::NESTED_RENDER, 0 );
 
62
 
 
63
    // render before the hud
 
64
    if( m_hud )
 
65
    {
 
66
        getOrCreateStateSet()->setRenderBinDetails( m_hud->getRenderBin() - 1, "RenderBin" );
 
67
    }
 
68
    else
 
69
    {
 
70
        getOrCreateStateSet()->setRenderBinDetails( 10000, "RenderBin" );
 
71
    }
 
72
 
 
73
    osg::StateSet* state = this->getOrCreateStateSet();
 
74
    state->setMode( GL_DEPTH_TEST, osg::StateAttribute::ON );
 
75
 
 
76
    // allow the user to use blending
 
77
    getOrCreateStateSet()->setMode( GL_BLEND, osg::StateAttribute::ON );
 
78
}
 
79
 
 
80
WGEOffscreenFinalPass::~WGEOffscreenFinalPass()
 
81
{
 
82
    // cleanup
 
83
}
 
84