FaceCullingMode::Type faceCullingMode,
bool preMultipliedAlphaEnabled,
DepthWriteMode::Type depthWriteMode,
+ DepthTestMode::Type depthTestMode,
DepthFunction::Type depthFunction )
{
- return new Renderer( dataProvider, geometry, blendingBitmask, blendColor, faceCullingMode, preMultipliedAlphaEnabled, depthWriteMode, depthFunction );
+ return new Renderer( dataProvider, geometry, blendingBitmask, blendColor, faceCullingMode, preMultipliedAlphaEnabled, depthWriteMode, depthTestMode, depthFunction );
}
Renderer::Renderer( SceneGraph::RenderDataProvider* dataProvider,
FaceCullingMode::Type faceCullingMode,
bool preMultipliedAlphaEnabled,
DepthWriteMode::Type depthWriteMode,
+ DepthTestMode::Type depthTestMode,
DepthFunction::Type depthFunction )
: mRenderDataProvider( dataProvider ),
mContext(NULL),
mUniformIndexMap(),
mAttributesLocation(),
mBlendingOptions(),
- mFaceCullingMode( faceCullingMode ),
- mDepthWriteMode( depthWriteMode ),
+ mFaceCullingMode( faceCullingMode ),
mDepthFunction( depthFunction ),
mIndexedDrawFirstElement( 0 ),
mIndexedDrawElementsCount( 0 ),
+ mDepthWriteMode( depthWriteMode ),
+ mDepthTestMode( depthTestMode ),
mUpdateAttributesLocation( true ),
mPremultipledAlphaEnabled( preMultipliedAlphaEnabled )
{
std::vector<Render::Sampler*>& samplers( mRenderDataProvider->GetSamplers() );
std::vector<Render::Texture>& textures( mRenderDataProvider->GetTextures() );
+ GLint uniformLocation(-1);
for( size_t i(0); result && i<textures.size(); ++i )
{
ResourceId textureId = textures[i].GetTextureId();
{
GLint uniformLocation;
+ //TODO : This is a bug, result variable is being shadowed. Fix it!
bool result = program.GetSamplerUniformLocation( i, uniformLocation );
if( result && Program::UNIFORM_UNKNOWN != uniformLocation )
{
}
std::vector<Render::NewTexture*>& newTextures( mRenderDataProvider->GetNewTextures() );
- GLint uniformLocation(0);
for( size_t i(0); result && i<newTextures.size(); ++i )
{
if( newTextures[i] )
{
- bool result = program.GetSamplerUniformLocation( i, uniformLocation );
+ result = program.GetSamplerUniformLocation( i, uniformLocation ) &&
+ newTextures[i]->Bind(context, textureUnit, samplers[i] );
+
if( result )
{
- newTextures[i]->Bind(context, textureUnit, samplers[i] );
program.SetUniform1i( uniformLocation, textureUnit );
++textureUnit;
}
mDepthWriteMode = depthWriteMode;
}
+void Renderer::SetDepthTestMode( DepthTestMode::Type depthTestMode )
+{
+ mDepthTestMode = depthTestMode;
+}
+
DepthWriteMode::Type Renderer::GetDepthWriteMode() const
{
return mDepthWriteMode;
}
+DepthTestMode::Type Renderer::GetDepthTestMode() const
+{
+ return mDepthTestMode;
+}
+
void Renderer::SetDepthFunction( DepthFunction::Type depthFunction )
{
mDepthFunction = depthFunction;