void DepthPeelingStage::resizeStageData(DepthPeelingStageData *pData,
                                        Int32                  iPixelWidth,
                                        Int32                  iPixelHeight)
{
    FrameBufferObject *pSceneFBO = pData->getBlendFBO();

    pSceneFBO->resizeAll(iPixelWidth, iPixelHeight);


    FrameBufferObject *pPeelPingFBO = pData->getPeelPingFBO();

    pPeelPingFBO->resizeAll(iPixelWidth, iPixelHeight);

    FrameBufferObject *pPeelPongFBO = pData->getPeelPongFBO();

    pPeelPongFBO->resizeAll(iPixelWidth, iPixelHeight);

    commitChanges();
}
Ejemplo n.º 2
0
void HDRStage::resizeStageData(HDRStageData *pData,
                               Int32         iPixelWidth,
                               Int32         iPixelHeight)
{
    FrameBufferObject *pSceneFBO = this->getRenderTarget();

    pSceneFBO->resizeAll(iPixelWidth, iPixelHeight);


    FrameBufferObject *pShrinkFBO = pData->getShrinkRenderTarget();

    pShrinkFBO->resizeAll(iPixelWidth / 2, iPixelHeight / 2);


    FrameBufferObject *pBlurFBO = pData->getBlurRenderTarget();

    pBlurFBO->resizeAll(iPixelWidth  / 4,
                        iPixelHeight / 4);


    SimpleSHLChunk *pHBlurShader = pData->getHBlurShader();

    std::string szNewFragProg =         
        generate1DConvolutionFilterFPString(getBlurWidth(), 
                                            false, 
                                            true, 
                                            iPixelWidth  / 2, 
                                            iPixelHeight / 2);

    pHBlurShader->setFragmentProgram(szNewFragProg);

    szNewFragProg = generate1DConvolutionFilterFPString(getBlurWidth(),  
                                                        true, 
                                                        true, 
                                                        iPixelWidth  / 2, 
                                                        iPixelHeight / 2);

    SimpleSHLChunkUnrecPtr pVBlurShader = pData->getVBlurShader();

    pVBlurShader->setFragmentProgram(szNewFragProg);

    commitChanges();
}