void eDeferredRenderer::_renderRefractionPass(const eCamera &cam, const eRect &area, eITexture2d *target)
{
    eStateManager::push();

    // Copy scene to texture.
    eStateManager::bindRenderTarget(0, m_refractionTex);
    renderTexturedQuad(area, target->getSize(), target);
    eStateManager::bindRenderTarget(0, target);

    // Render refractive objects.
    eStateManager::bindTexture(7, m_refractionTex);
    eStateManager::setTextureAddressMode(7, eTEXADDRMODE_MIRROR);
    eStateManager::bindVertexShader(m_vsInstGeo);
    eStateManager::bindPixelShader(m_psRefraction);

    _renderRenderJobs(m_allJobs, cam, eRenderJob::RENDER_ALL & ~eRenderJob::REFRACTED_OFF);

    eStateManager::pop();
}
Example #2
0
void renderTexturedQuad(float tBound) {
    renderTexturedQuad(tBound,tBound);
}
void eDeferredRenderer::renderTexturedQuad(const eRect &r, const eSize &size, eITexture2d *tex) const
{
    renderTexturedQuad(r, size, tex, eVector2(1.0f, 1.0f), eVector2(0.0f, 0.0f));
}