#pragma once #include "SmartPtr.h" #include "EtPostProcessFilter.h" class CEtOutlineObject; typedef CSmartPtr< CEtOutlineObject > EtOutlineHandle; class CEtOutlineObject : public CSmartPtrBase< CEtOutlineObject > { private: EtObjectHandle m_hObject; float m_fIntensity; float m_fIntensitySpeed; EtColor m_vColor; float m_fWidth; bool m_bShow; public: CEtOutlineObject( EtObjectHandle object ); public: bool ProcessIntensity( float fElapsedTime ); // ¿©·¯°¡Áö ¾×¼Ç¿¡ ¾Æ¿ô¶óÀÎÇÊÅͰ¡ ¸Ô¿©Á®Àִ°æ¿ì¿¡ ¾×¼ÇÀÌ ¹Ù²ð¶§¸¶´Ù ProcessIntensity°¡ µ¹¸é¼­ ±ô¹ÚÀÌ°Ô µÇ¹Ç·Î ¹Ù·Î ¸Æ½ºÄ¡ ¼³Á¤ÇØÁÜ void SkipProcessIntensity(){m_fIntensity = 1.0f;} void ClassifyChild( int nIndex, std::vector< std::pair > &vecObjects ); void SetColor( EtColor color ) { m_vColor = color;} void SetWidth( float width ) { m_fWidth = width; } void Show(bool bShow, float fSpeed = 1.0f); bool IsShow() { return m_bShow; } float GetIntensity() { return m_fIntensity; } float GetIntensitySpeed() { return m_fIntensitySpeed; } float GetBorderWidth() { return m_fWidth; } EtColor GetColor() { return m_vColor; } EtObjectHandle GetObject() { return m_hObject; } void SetObject( EtObjectHandle hObject ) { m_hObject = hObject; } static EtOutlineHandle Create( EtObjectHandle hObject ); }; class CEtOutlineFilter : public CEtPostProcessFilter, public CLostDeviceProcess { public: CEtOutlineFilter(); virtual ~CEtOutlineFilter(); virtual void Clear(); protected: float m_fIntensityParam; float m_fBorderWidthParam; EtColor m_BorderColorParam; EtVector4 m_PixelSize; EtTextureHandle m_hOutlineSource; EtTextureHandle m_hBlurTarget; EtVector3 m_Bounds[ 8 ]; public: virtual void Initialize(); void Render( float fElapsedTime ); void DrawOutline( EtObjectHandle hObject, EtOutlineHandle hOutline, SAABox &Box ); virtual void OnResetDevice(); }; /* #pragma once #include "SmartPtr.h" #include "EtPostProcessFilter.h" class CEtOutlineObject; typedef CSmartPtr< CEtOutlineObject > EtOutlineHandle; class CEtOutlineObject : public CSmartPtrBase< CEtOutlineObject > { public: enum OutlineTypeEnum { NORMAL = 0, SOLID = 5, DEPTH_CHECK = 7, }; private: EtObjectHandle m_hObject; float m_fIntensity; float m_fIntensitySpeed; EtColor m_vColor; float m_fWidth; bool m_bSolid; bool m_bSkipStaticObject; bool m_bShow; OutlineTypeEnum m_Type; public: CEtOutlineObject( EtObjectHandle object ); public: bool ProcessIntensity( float fElapsedTime ); void ClassifyChild( int nIndex, std::vector< std::pair > &vecObjects ); void SetColor( EtColor color ) { m_vColor = color;} void SetWidth( float width ) { m_fWidth = width; } void Show(bool bShow, float fSpeed = 1.0f); bool IsShow() { return m_bShow; } void SetSolid( bool solid ) {m_bSolid = solid; } bool IsSolid() { return m_bSolid;} void SkipStaticObject( bool bSkip ) { m_bSkipStaticObject = bSkip; } bool IsSkipStaticObject() { return m_bSkipStaticObject; } float GetIntensity() { return m_fIntensity; } float GetIntensitySpeed() { return m_fIntensitySpeed; } float GetBorderWidth() { return m_fWidth; } EtColor GetColor() { return m_vColor; } EtObjectHandle GetObject() { return m_hObject; } void SetType( OutlineTypeEnum Type ) { m_Type = Type; } int GetType() { return (int)m_Type;} static EtOutlineHandle Create( EtObjectHandle hObject ); }; class CEtOutlineFilter : public CEtPostProcessFilter, public CLostDeviceProcess { public: CEtOutlineFilter(); virtual ~CEtOutlineFilter(); virtual void Clear(); protected: float m_fBloomScale; float m_fIntensityParam; float m_fBorderWidthParam; EtColor m_BorderColorParam; EtTextureHandle m_hBrightTarget; EtTextureHandle m_hHoriBlurTarget; EtTextureHandle m_hVertBlurTarget; EtDepthHandle m_hDepth; EtVector3 m_Bounds[ 8 ]; public: virtual void Initialize(); void Render( float fElapsedTime ); void DrawOutline( EtObjectHandle hObject, EtOutlineHandle hOutline, SAABox &Box ); // Global void SetBloomScale( float fScale ) { m_fBloomScale = fScale; } float GetBloomScale() { return m_fBloomScale; } virtual void OnResetDevice(); }; */