SampleViewportFilter/SampleViewportFilter.h


//**************************************************************************/

// Copyright (c) 2008 Autodesk, Inc.

// All rights reserved.

//

// Use of this software is subject to the terms of the Autodesk license

// agreement provided at the time of installation or download, or which

// otherwise accompanies this software in either electronic or hard copy form.

//

//**************************************************************************/

// DESCRIPTION:

// CREATED: October 2008

//**************************************************************************/



#if defined(JAMBUILD)

#include <Mudbox/mudbox.h>

#else

#include "../../include/Mudbox/mudbox.h"

#endif



#include <Cg/cg.h>

#include <Cg/cgGL.h>



#include <vector>



using namespace mudbox;



class SampleViewPortFilter : public ViewPortFilter 

{

public:



    DECLARE_CLASS;






    SampleViewPortFilter();






    ~SampleViewPortFilter();









    void SetVisible( bool bVisible );











    RequirementValue Requirement( void ) const { return eHDR | ePosition32 | eNormal16; };














    void Process( ViewPortState & );








    virtual QString Name( const ClassDesc * ) const { return "Sample Filter"; };

    






    void OnNodeEvent(const Attribute &cAttribute, NodeEventType eType);



private:

    CGcontext m_CGContext;



    Texture* m_pResultTexture;



    CGprogram m_BlurProgram;



    CGprofile m_FragmentProfile;



    CGparameter m_BlurColorTextureParam;

    CGparameter m_BlurWidthParam;

    CGparameter m_GaussianBlurParam;



    abool m_aGaussianBlur;

    afloatr m_aBlurWidth;

};