瀏覽代碼

Merge pull request #881 from Azaezel/alpha41/PostfxPad

uniform float targetRatio; var by request
Brian Roberts 3 年之前
父節點
當前提交
1c35151bfc
共有 2 個文件被更改,包括 7 次插入2 次删除
  1. 6 2
      Engine/source/postFx/postEffect.cpp
  2. 1 0
      Engine/source/postFx/postEffect.h

+ 6 - 2
Engine/source/postFx/postEffect.cpp

@@ -751,7 +751,7 @@ void PostEffect::_setupConstants( const SceneRenderState *state )
 
       mRTSizeSC = mShader->getShaderConstHandle( "$targetSize" );
       mOneOverRTSizeSC = mShader->getShaderConstHandle( "$oneOverTargetSize" );
-
+      mRTRatioSC = mShader->getShaderConstHandle("$targetRatio");
       for (U32 i = 0; i < NumTextures; i++)
       {
          mTexSizeSC[i] = mShader->getShaderConstHandle(String::ToString("$texSize%d", i));
@@ -815,7 +815,11 @@ void PostEffect::_setupConstants( const SceneRenderState *state )
 
       mShaderConsts->set( mOneOverRTSizeSC, oneOverTargetSize );
    }
-
+   if (mRTRatioSC->isValid())
+   {
+      const Point2I& resolution = GFX->getActiveRenderTarget()->getSize();
+      mShaderConsts->set(mRTRatioSC, (F32)resolution.x/ (F32)resolution.y);
+   }
    // Set up additional textures
    Point2F texSizeConst;
    for( U32 i = 0; i < NumTextures; i++ )

+ 1 - 0
Engine/source/postFx/postEffect.h

@@ -128,6 +128,7 @@ protected:
 
    GFXShaderConstHandle *mRTSizeSC;
    GFXShaderConstHandle *mOneOverRTSizeSC;
+   GFXShaderConstHandle* mRTRatioSC;
 
    GFXShaderConstHandle *mTexSizeSC[NumTextures];
    GFXShaderConstHandle *mRenderTargetParamsSC[NumTextures];