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(); }
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)); }