Removed one more reference to global function, renamed functions

Bind and BindLayer to bind and bindLayer.
This commit is contained in:
hiker 2015-05-22 09:29:42 +10:00
parent 3a64d2c70e
commit cc9163ca77
7 changed files with 67 additions and 59 deletions

View File

@ -244,7 +244,7 @@ FrameBuffer::~FrameBuffer()
glDeleteFramebuffers(1, &fbolayer);
}
void FrameBuffer::Bind()
void FrameBuffer::bind() const
{
glBindFramebuffer(GL_FRAMEBUFFER, fbo);
glViewport(0, 0, (int)width, (int)height);
@ -252,7 +252,7 @@ void FrameBuffer::Bind()
glDrawBuffers((int)RenderTargets.size(), bufs);
}
void FrameBuffer::BindLayer(unsigned i)
void FrameBuffer::bindLayer(unsigned i)
{
glBindFramebuffer(GL_FRAMEBUFFER, fbolayer);
glFramebufferTextureLayer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, RenderTargets[0], 0, i);

View File

@ -69,8 +69,8 @@ public:
FrameBuffer(const std::vector <GLuint> &RTTs, size_t w, size_t h, bool layered = false);
FrameBuffer(const std::vector <GLuint> &RTTs, GLuint DS, size_t w, size_t h, bool layered = false);
~FrameBuffer();
void Bind();
void BindLayer(unsigned);
void bind() const;
void bindLayer(unsigned);
const std::vector<GLuint> &getRTT() const { return RenderTargets; }
GLuint &getDepthTexture() { assert(DepthTexture); return DepthTexture; }
size_t getWidth() const { return width; }

View File

@ -379,7 +379,7 @@ public:
// ----------------------------------------------------------------------------
void render(FrameBuffer &fbo, GLuint rtt, float vignette_weight)
{
fbo.Bind();
fbo.bind();
setTextureUnits(rtt);
drawFullScreenEffect(vignette_weight);
} // render
@ -398,6 +398,14 @@ public:
assignSamplerNames(0, "tex", ST_BILINEAR_FILTERED,
1, "dtex", ST_NEAREST_FILTERED);
} // DepthOfFieldShader
// ------------------------------------------------------------------------
void render(const FrameBuffer &fb, GLuint rtt)
{
fb.bind();
setTextureUnits(rtt, irr_driver->getDepthStencilTexture());
drawFullScreenEffect();
} // render
}; // DepthOfFieldShader
// ============================================================================
@ -1039,12 +1047,12 @@ void PostProcessing::renderGaussian3Blur(FrameBuffer &in_fbo,
float inv_width = 1.0f / in_fbo.getWidth();
float inv_height = 1.0f / in_fbo.getHeight();
{
auxiliary.Bind();
auxiliary.bind();
Gaussian3VBlurShader::getInstance()->render(in_fbo, inv_width,
inv_height);
}
{
in_fbo.Bind();
in_fbo.bind();
Gaussian3HBlurShader::getInstance()->render(auxiliary, inv_width,
inv_height);
}
@ -1062,12 +1070,12 @@ void PostProcessing::renderGaussian6BlurLayer(FrameBuffer &in_fbo,
if (!CVS->supportsComputeShadersFiltering())
{
// Used as temp
irr_driver->getFBO(FBO_SCALAR_1024).Bind();
irr_driver->getFBO(FBO_SCALAR_1024).bind();
Gaussian6VBlurShader::getInstance()
->render(layer_tex, UserConfigParams::m_shadows_resolution,
UserConfigParams::m_shadows_resolution, sigma_v);
in_fbo.BindLayer(layer);
in_fbo.bindLayer(layer);
Gaussian6HBlurShader::getInstance()
->render(irr_driver->getFBO(FBO_SCALAR_1024),
UserConfigParams::m_shadows_resolution,
@ -1122,12 +1130,12 @@ void PostProcessing::renderGaussian6Blur(FrameBuffer &in_fbo,
if (!CVS->supportsComputeShadersFiltering())
{
auxiliary.Bind();
auxiliary.bind();
Gaussian6VBlurShader::getInstance()
->render(in_fbo.getRTT()[0], in_fbo.getWidth(), in_fbo.getWidth(),
sigma_v);
in_fbo.Bind();
in_fbo.bind();
Gaussian6HBlurShader::getInstance()->setTextureUnits(auxiliary.getRTT()[0]);
Gaussian6HBlurShader::getInstance()->render(auxiliary, in_fbo.getWidth(),
in_fbo.getHeight(), sigma_h);
@ -1176,10 +1184,10 @@ void PostProcessing::renderHorizontalBlur(FrameBuffer &in_fbo,
float inv_width = 1.0f / in_fbo.getWidth();
float inv_height = 1.0f / in_fbo.getHeight();
auxiliary.Bind();
auxiliary.bind();
Gaussian6HBlurShader::getInstance()->render(in_fbo, in_fbo.getWidth(),
in_fbo.getHeight(), 2.0f );
in_fbo.Bind();
in_fbo.bind();
Gaussian6HBlurShader::getInstance()->render(auxiliary, in_fbo.getWidth(),
in_fbo.getHeight(), 2.0f);
} // renderHorizontalBlur
@ -1198,7 +1206,7 @@ void PostProcessing::renderGaussian17TapBlur(FrameBuffer &in_fbo,
{
if (!CVS->supportsComputeShadersFiltering())
{
auxiliary.Bind();
auxiliary.bind();
Gaussian17TapHShader::getInstance()->render(in_fbo,
in_fbo.getWidth(),
in_fbo.getHeight());
@ -1216,7 +1224,7 @@ void PostProcessing::renderGaussian17TapBlur(FrameBuffer &in_fbo,
{
if (!CVS->supportsComputeShadersFiltering())
{
in_fbo.Bind();
in_fbo.bind();
Gaussian17TapVShader::getInstance()->render(auxiliary,
in_fbo.getWidth(),
in_fbo.getHeight());
@ -1267,9 +1275,9 @@ void PostProcessing::renderSSAO()
glDisable(GL_BLEND);
// Generate linear depth buffer
irr_driver->getFBO(FBO_LINEAR_DEPTH).Bind();
irr_driver->getFBO(FBO_LINEAR_DEPTH).bind();
LinearizeDepthShader::getInstance()->render();
irr_driver->getFBO(FBO_SSAO).Bind();
irr_driver->getFBO(FBO_SSAO).bind();
SSAOShader::getInstance()->render();
} // renderSSAO
@ -1299,7 +1307,7 @@ void PostProcessing::renderMotionBlur(unsigned , FrameBuffer &in_fbo,
else
setMotionBlurCenterY(camID, 0.5f);
out_fbo.Bind();
out_fbo.bind();
glClear(GL_COLOR_BUFFER_BIT);
float boost_time = cb->getBoostTime(cam->getIndex()) * 10;
@ -1308,12 +1316,9 @@ void PostProcessing::renderMotionBlur(unsigned , FrameBuffer &in_fbo,
// ----------------------------------------------------------------------------
static void renderDoF(FrameBuffer &fbo, GLuint rtt)
static void renderDoF(const FrameBuffer &fbo, GLuint rtt)
{
fbo.Bind();
DepthOfFieldShader::getInstance()
->setTextureUnits(rtt, irr_driver->getDepthStencilTexture());
DrawFullScreenEffect<DepthOfFieldShader>();
DepthOfFieldShader::getInstance()->render(fbo, rtt);
} // renderDoF
// ----------------------------------------------------------------------------
@ -1323,7 +1328,7 @@ void PostProcessing::applyMLAA()
core::vector2df(1.0f / UserConfigParams::m_width,
1.0f / UserConfigParams::m_height);
irr_driver->getFBO(FBO_MLAA_TMP).Bind();
irr_driver->getFBO(FBO_MLAA_TMP).bind();
glEnable(GL_STENCIL_TEST);
glClearColor(0.0, 0.0, 0.0, 1.0);
glClear(GL_STENCIL_BUFFER_BIT | GL_COLOR_BUFFER_BIT);
@ -1340,7 +1345,7 @@ void PostProcessing::applyMLAA()
glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP);
// Pass 2: blend weights
irr_driver->getFBO(FBO_MLAA_BLEND).Bind();
irr_driver->getFBO(FBO_MLAA_BLEND).bind();
glClear(GL_COLOR_BUFFER_BIT);
MLAABlendWeightSHader::getInstance()->use();
@ -1354,7 +1359,7 @@ void PostProcessing::applyMLAA()
irr_driver->getFBO(FBO_MLAA_TMP));
// Pass 3: gather
irr_driver->getFBO(FBO_MLAA_COLORS).Bind();
irr_driver->getFBO(FBO_MLAA_COLORS).bind();
MLAAGatherSHader::getInstance()->use();
MLAAGatherSHader::getInstance()
@ -1403,7 +1408,7 @@ FrameBuffer *PostProcessing::render(scene::ICameraSceneNode * const camnode,
glEnable(GL_DEPTH_TEST);
// Grab the sky
out_fbo->Bind();
out_fbo->bind();
glClear(GL_COLOR_BUFFER_BIT);
// irr_driver->renderSkybox(camnode);
@ -1420,7 +1425,7 @@ FrameBuffer *PostProcessing::render(scene::ICameraSceneNode * const camnode,
glDisable(GL_DEPTH_TEST);
// Fade to quarter
irr_driver->getFBO(FBO_QUARTER1).Bind();
irr_driver->getFBO(FBO_QUARTER1).bind();
glViewport(0, 0, irr_driver->getActualScreenSize().Width / 4,
irr_driver->getActualScreenSize().Height / 4);
GodFadeShader::getInstance()->render(out_fbo->getRTT()[0], col);
@ -1446,7 +1451,7 @@ FrameBuffer *PostProcessing::render(scene::ICameraSceneNode * const camnode,
const float suny = ((ndc[1] / ndc[3]) * 0.5f + 0.5f) * texh;
// Rays please
irr_driver->getFBO(FBO_QUARTER2).Bind();
irr_driver->getFBO(FBO_QUARTER2).bind();
GodRayShader::getInstance()
->render(irr_driver->getRenderTargetTexture(RTT_QUARTER1),
core::vector2df(sunx, suny) );
@ -1461,7 +1466,7 @@ FrameBuffer *PostProcessing::render(scene::ICameraSceneNode * const camnode,
glBlendFunc(GL_CONSTANT_ALPHA, GL_ONE);
glBlendEquation(GL_FUNC_ADD);
in_fbo->Bind();
in_fbo->bind();
renderPassThrough(irr_driver->getRenderTargetTexture(RTT_QUARTER2),
in_fbo->getWidth(), in_fbo->getHeight());
glDisable(GL_BLEND);
@ -1482,7 +1487,7 @@ FrameBuffer *PostProcessing::render(scene::ICameraSceneNode * const camnode,
FrameBuffer::Blit(*in_fbo, irr_driver->getFBO(FBO_BLOOM_1024),
GL_COLOR_BUFFER_BIT, GL_LINEAR);
irr_driver->getFBO(FBO_BLOOM_512).Bind();
irr_driver->getFBO(FBO_BLOOM_512).bind();
renderBloom(irr_driver->getRenderTargetTexture(RTT_BLOOM_1024));
// Downsample
@ -1522,7 +1527,7 @@ FrameBuffer *PostProcessing::render(scene::ICameraSceneNode * const camnode,
// Additively blend on top of tmp1
in_fbo->Bind();
in_fbo->bind();
glEnable(GL_BLEND);
glBlendFunc(GL_ONE, GL_ONE);
glBlendEquation(GL_FUNC_ADD);
@ -1577,7 +1582,7 @@ FrameBuffer *PostProcessing::render(scene::ICameraSceneNode * const camnode,
return in_fbo;
glEnable(GL_FRAMEBUFFER_SRGB);
irr_driver->getFBO(FBO_MLAA_COLORS).Bind();
irr_driver->getFBO(FBO_MLAA_COLORS).bind();
renderPassThrough(in_fbo->getRTT()[0],
irr_driver->getFBO(FBO_MLAA_COLORS).getWidth(),
irr_driver->getFBO(FBO_MLAA_COLORS).getHeight());

View File

@ -427,7 +427,7 @@ void IrrDriver::renderScene(scene::ICameraSceneNode * const camnode, unsigned po
glEnable(GL_CULL_FACE);
if (CVS->isDefferedEnabled() || forceRTT)
{
m_rtts->getFBO(FBO_NORMAL_AND_DEPTHS).Bind();
m_rtts->getFBO(FBO_NORMAL_AND_DEPTHS).bind();
glClearColor(0., 0., 0., 0.);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
renderSolidFirstPass();
@ -437,7 +437,7 @@ void IrrDriver::renderScene(scene::ICameraSceneNode * const camnode, unsigned po
// We need a cleared depth buffer for some effect (eg particles depth blending)
if (GraphicsRestrictions::isDisabled(GraphicsRestrictions::GR_FRAMEBUFFER_SRGB_WORKING))
glDisable(GL_FRAMEBUFFER_SRGB);
m_rtts->getFBO(FBO_NORMAL_AND_DEPTHS).Bind();
m_rtts->getFBO(FBO_NORMAL_AND_DEPTHS).bind();
// Bind() modifies the viewport. In order not to affect anything else,
// the viewport is just reset here and not removed in Bind().
const core::recti &vp = Camera::getActiveCamera()->getViewport();
@ -474,7 +474,7 @@ void IrrDriver::renderScene(scene::ICameraSceneNode * const camnode, unsigned po
PROFILER_PUSH_CPU_MARKER("- Solid Pass 2", 0x00, 0x00, 0xFF);
if (CVS->isDefferedEnabled() || forceRTT)
{
m_rtts->getFBO(FBO_COLORS).Bind();
m_rtts->getFBO(FBO_COLORS).bind();
SColor clearColor(0, 150, 150, 150);
if (World::getWorld() != NULL)
clearColor = World::getWorld()->getClearColor();
@ -489,9 +489,9 @@ void IrrDriver::renderScene(scene::ICameraSceneNode * const camnode, unsigned po
if (getNormals())
{
m_rtts->getFBO(FBO_NORMAL_AND_DEPTHS).Bind();
m_rtts->getFBO(FBO_NORMAL_AND_DEPTHS).bind();
renderNormalsVisualisation();
m_rtts->getFBO(FBO_COLORS).Bind();
m_rtts->getFBO(FBO_COLORS).bind();
}
// Render ambient scattering
@ -524,14 +524,17 @@ void IrrDriver::renderScene(scene::ICameraSceneNode * const camnode, unsigned po
if (getRH())
{
glDisable(GL_BLEND);
m_rtts->getFBO(FBO_COLORS).Bind();
m_post_processing->renderRHDebug(m_rtts->getRH().getRTT()[0], m_rtts->getRH().getRTT()[1], m_rtts->getRH().getRTT()[2], rh_matrix, rh_extend);
m_rtts->getFBO(FBO_COLORS).bind();
m_post_processing->renderRHDebug(m_rtts->getRH().getRTT()[0],
m_rtts->getRH().getRTT()[1],
m_rtts->getRH().getRTT()[2],
rh_matrix, rh_extend);
}
if (getGI())
{
glDisable(GL_BLEND);
m_rtts->getFBO(FBO_COLORS).Bind();
m_rtts->getFBO(FBO_COLORS).bind();
m_post_processing->renderGI(rh_matrix, rh_extend, m_rtts->getRH());
}
@ -709,7 +712,7 @@ void IrrDriver::renderShadowsDebug()
void IrrDriver::renderGlow(std::vector<GlowData>& glows)
{
m_scene_manager->setCurrentRendertime(scene::ESNRP_SOLID);
m_rtts->getFBO(FBO_TMP1_WITH_DS).Bind();
m_rtts->getFBO(FBO_TMP1_WITH_DS).bind();
glClearStencil(0);
glClearColor(0, 0, 0, 0);
glClear(GL_STENCIL_BUFFER_BIT | GL_COLOR_BUFFER_BIT);
@ -776,7 +779,7 @@ void IrrDriver::renderGlow(std::vector<GlowData>& glows)
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glStencilFunc(GL_EQUAL, 0, ~0);
glEnable(GL_STENCIL_TEST);
m_rtts->getFBO(FBO_COLORS).Bind();
m_rtts->getFBO(FBO_COLORS).bind();
m_post_processing->renderGlow(m_rtts->getRenderTarget(RTT_QUARTER1));
glDisable(GL_STENCIL_TEST);
}

View File

@ -1560,9 +1560,9 @@ void IrrDriver::renderTransparent()
return;
// Render displacement nodes
irr_driver->getFBO(FBO_TMP1_WITH_DS).Bind();
irr_driver->getFBO(FBO_TMP1_WITH_DS).bind();
glClear(GL_COLOR_BUFFER_BIT);
irr_driver->getFBO(FBO_DISPLACE).Bind();
irr_driver->getFBO(FBO_DISPLACE).bind();
glClear(GL_COLOR_BUFFER_BIT);
DisplaceProvider * const cb =
@ -1581,7 +1581,7 @@ void IrrDriver::renderTransparent()
glBindVertexArray(VAOManager::getInstance()->getVAO(video::EVT_2TCOORDS));
// Generate displace mask
// Use RTT_TMP4 as displace mask
irr_driver->getFBO(FBO_TMP1_WITH_DS).Bind();
irr_driver->getFBO(FBO_TMP1_WITH_DS).bind();
for (unsigned i = 0; i < ListDisplacement::getInstance()->size(); i++)
{
const GLMesh &mesh =
@ -1608,7 +1608,7 @@ void IrrDriver::renderTransparent()
(GLvoid *)mesh.vaoOffset, (int)mesh.vaoBaseVertex);
}
irr_driver->getFBO(FBO_DISPLACE).Bind();
irr_driver->getFBO(FBO_DISPLACE).bind();
if (!displaceTex)
displaceTex = irr_driver->getTexture(FileManager::TEXTURE, "displace.png");
for (unsigned i = 0; i < ListDisplacement::getInstance()->size(); i++)
@ -1640,7 +1640,7 @@ void IrrDriver::renderTransparent()
(int)mesh.vaoBaseVertex);
}
irr_driver->getFBO(FBO_COLORS).Bind();
irr_driver->getFBO(FBO_COLORS).bind();
glStencilFunc(GL_EQUAL, 1, 0xFF);
m_post_processing->renderPassThrough(m_rtts->getRenderTarget(RTT_DISPLACE),
irr_driver->getFBO(FBO_COLORS).getWidth(),
@ -1757,7 +1757,7 @@ void IrrDriver::renderShadows()
glDepthMask(GL_TRUE);
glEnable(GL_DEPTH_TEST);
glDisable(GL_BLEND);
m_rtts->getShadowFBO().Bind();
m_rtts->getShadowFBO().bind();
if (!CVS->isESMEnabled())
{
glDrawBuffer(GL_NONE);
@ -1923,7 +1923,7 @@ void IrrDriver::renderRSM()
if (m_rsm_map_available)
return;
ScopedGPUTimer Timer(getGPUTimer(Q_RSM));
m_rtts->getRSM().Bind();
m_rtts->getRSM().bind();
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
drawRSM<DefaultMaterial, 3, 1>(rsm_matrix);

View File

@ -405,7 +405,7 @@ void IrrDriver::renderLights(unsigned pointlightcount, bool hasShadow)
{
ScopedGPUTimer timer(irr_driver->getGPUTimer(Q_RH));
glDisable(GL_BLEND);
m_rtts->getRH().Bind();
m_rtts->getRH().bind();
glBindVertexArray(SharedGPUObjects::getFullScreenQuadVAO());
if (CVS->needRHWorkaround())
{
@ -442,17 +442,17 @@ void IrrDriver::renderLights(unsigned pointlightcount, bool hasShadow)
for (unsigned i = 0; i < sun_ortho_matrix.size(); i++)
sun_ortho_matrix[i] *= getInvViewMatrix();
m_rtts->getFBO(FBO_COMBINED_DIFFUSE_SPECULAR).Bind();
m_rtts->getFBO(FBO_COMBINED_DIFFUSE_SPECULAR).bind();
glClear(GL_COLOR_BUFFER_BIT);
m_rtts->getFBO(FBO_DIFFUSE).Bind();
m_rtts->getFBO(FBO_DIFFUSE).bind();
if (CVS->isGlobalIlluminationEnabled() && hasShadow)
{
ScopedGPUTimer timer(irr_driver->getGPUTimer(Q_GI));
m_post_processing->renderGI(rh_matrix, rh_extend, m_rtts->getRH());
}
m_rtts->getFBO(FBO_COMBINED_DIFFUSE_SPECULAR).Bind();
m_rtts->getFBO(FBO_COMBINED_DIFFUSE_SPECULAR).bind();
{
ScopedGPUTimer timer(irr_driver->getGPUTimer(Q_ENVMAP));
@ -508,7 +508,7 @@ void IrrDriver::renderLights(unsigned pointlightcount, bool hasShadow)
// ----------------------------------------------------------------------------
void IrrDriver::renderSSAO()
{
m_rtts->getFBO(FBO_SSAO).Bind();
m_rtts->getFBO(FBO_SSAO).bind();
glClearColor(1., 1., 1., 1.);
glClear(GL_COLOR_BUFFER_BIT);
m_post_processing->renderSSAO();
@ -548,7 +548,7 @@ void IrrDriver::renderAmbientScatter()
// ----------------------------------------------------------------------------
void IrrDriver::renderLightsScatter(unsigned pointlightcount)
{
getFBO(FBO_HALF1).Bind();
getFBO(FBO_HALF1).bind();
glClearColor(0., 0., 0., 0.);
glClear(GL_COLOR_BUFFER_BIT);
@ -588,7 +588,7 @@ void IrrDriver::renderLightsScatter(unsigned pointlightcount)
glDisable(GL_DEPTH_TEST);
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
getFBO(FBO_COLORS).Bind();
getFBO(FBO_COLORS).bind();
m_post_processing->renderPassThrough(getRenderTargetTexture(RTT_HALF1),
getFBO(FBO_COLORS).getWidth(),
getFBO(FBO_COLORS).getHeight());

View File

@ -257,11 +257,11 @@ RTT::RTT(size_t width, size_t height)
}
// Clear this FBO to 1s so that if no SSAO is computed we can still use it.
getFBO(FBO_HALF1_R).Bind();
getFBO(FBO_HALF1_R).bind();
glClearColor(1., 1., 1., 1.);
glClear(GL_COLOR_BUFFER_BIT);
getFBO(FBO_COMBINED_DIFFUSE_SPECULAR).Bind();
getFBO(FBO_COMBINED_DIFFUSE_SPECULAR).bind();
glClearColor(.5, .5, .5, .5);
glClear(GL_COLOR_BUFFER_BIT);
glBindFramebuffer(GL_FRAMEBUFFER, 0);