From ef5357cfd908303f109e1e0b0648e8997efe1a2f Mon Sep 17 00:00:00 2001 From: Ferran Sole Date: Wed, 27 Apr 2016 08:20:48 +0100 Subject: [PATCH] Changes following "Remove API to set if a geometry requires writing to the depth buffer" Change-Id: I5b7e52b898c28ba39a9e8813fd6ed3bff1afbd3b --- .../internal/controls/model3d-view/model3d-view-impl.cpp | 13 +++++++------ dali-toolkit/internal/controls/model3d-view/obj-loader.cpp | 2 -- .../controls/page-turn-view/page-turn-view-impl.cpp | 2 +- .../controls/renderers/control-renderer-data-impl.cpp | 10 ---------- plugins/dali-script-v8/src/constants/constants-wrapper.cpp | 12 ++++++++---- plugins/dali-script-v8/src/rendering/shader-api.cpp | 2 -- 6 files changed, 16 insertions(+), 25 deletions(-) diff --git a/dali-toolkit/internal/controls/model3d-view/model3d-view-impl.cpp b/dali-toolkit/internal/controls/model3d-view/model3d-view-impl.cpp index 6d05a50..5e6340f 100644 --- a/dali-toolkit/internal/controls/model3d-view/model3d-view-impl.cpp +++ b/dali-toolkit/internal/controls/model3d-view/model3d-view-impl.cpp @@ -448,7 +448,7 @@ void Model3dView::OnInitialize() { //Create empty versions of the geometry and material so we always have a Renderer Geometry mesh = Geometry::New(); - Shader shader = Shader::New( SIMPLE_VERTEX_SHADER, SIMPLE_FRAGMENT_SHADER, (Shader::ShaderHints)(Shader::HINT_REQUIRES_SELF_DEPTH_TEST | Shader::HINT_MODIFIES_GEOMETRY) ); + Shader shader = Shader::New( SIMPLE_VERTEX_SHADER, SIMPLE_FRAGMENT_SHADER ); mRenderer = Renderer::New( mesh, shader ); } @@ -525,6 +525,7 @@ void Model3dView::CreateGeometry() if( mRenderer ) { mRenderer.SetGeometry( mMesh ); + mRenderer.SetProperty( Renderer::Property::DEPTH_WRITE_MODE, Renderer::DEPTH_WRITE_ON ); } } } @@ -557,20 +558,20 @@ void Model3dView::CreateMaterial() { if( (mTexture2Url != "") && (mTexture1Url != "") && (mIlluminationType == Toolkit::Model3dView::DIFFUSE_WITH_NORMAL_MAP) && mObjLoader.IsNormalMapPresent() ) { - mShader = Shader::New( NRMMAP_VERTEX_SHADER, NRMMAP_FRAGMENT_SHADER, (Shader::ShaderHints)(Shader::HINT_REQUIRES_SELF_DEPTH_TEST | Shader::HINT_MODIFIES_GEOMETRY) ); + mShader = Shader::New( NRMMAP_VERTEX_SHADER, NRMMAP_FRAGMENT_SHADER ); } else if( mIlluminationType == Toolkit::Model3dView::DIFFUSE_WITH_TEXTURE ) { - mShader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER, (Shader::ShaderHints)(Shader::HINT_REQUIRES_SELF_DEPTH_TEST | Shader::HINT_MODIFIES_GEOMETRY) ); + mShader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER ); } else { - mShader = Shader::New( SIMPLE_VERTEX_SHADER, SIMPLE_FRAGMENT_SHADER, (Shader::ShaderHints)(Shader::HINT_REQUIRES_SELF_DEPTH_TEST | Shader::HINT_MODIFIES_GEOMETRY) ); + mShader = Shader::New( SIMPLE_VERTEX_SHADER, SIMPLE_FRAGMENT_SHADER ); } } else { - mShader = Shader::New( SIMPLE_VERTEX_SHADER, SIMPLE_FRAGMENT_SHADER, (Shader::ShaderHints)(Shader::HINT_REQUIRES_SELF_DEPTH_TEST | Shader::HINT_MODIFIES_GEOMETRY) ); + mShader = Shader::New( SIMPLE_VERTEX_SHADER, SIMPLE_FRAGMENT_SHADER ); } mTextureSet = TextureSet::New(); @@ -579,7 +580,7 @@ void Model3dView::CreateMaterial() { mRenderer.SetTextures( mTextureSet ); mRenderer.SetShader( mShader ); - mRenderer.SetProperty( Renderer::Property::FACE_CULLING_MODE, Renderer::NONE); + mRenderer.SetProperty( Renderer::Property::FACE_CULLING_MODE, Renderer::CULL_NONE); } UpdateShaderUniforms(); diff --git a/dali-toolkit/internal/controls/model3d-view/obj-loader.cpp b/dali-toolkit/internal/controls/model3d-view/obj-loader.cpp index dd9c25d..857032a 100644 --- a/dali-toolkit/internal/controls/model3d-view/obj-loader.cpp +++ b/dali-toolkit/internal/controls/model3d-view/obj-loader.cpp @@ -589,8 +589,6 @@ Geometry ObjLoader::CreateGeometry( Toolkit::Model3dView::IlluminationType illum surface.SetIndexBuffer ( &indices[0], indices.Size() ); } - surface.SetRequiresDepthTesting( true ); - vertices.Clear(); verticesExt.Clear(); indices.Clear(); diff --git a/dali-toolkit/internal/controls/page-turn-view/page-turn-view-impl.cpp b/dali-toolkit/internal/controls/page-turn-view/page-turn-view-impl.cpp index 2fea479..a0d5d9f 100644 --- a/dali-toolkit/internal/controls/page-turn-view/page-turn-view-impl.cpp +++ b/dali-toolkit/internal/controls/page-turn-view/page-turn-view-impl.cpp @@ -320,6 +320,7 @@ void PageTurnView::Page::UseEffect(Shader newShader, Geometry geometry) } renderer.SetTextures( textureSet ); + renderer.SetProperty( Renderer::Property::DEPTH_WRITE_MODE, Renderer::DEPTH_WRITE_ON ); actor.AddRenderer( renderer ); } } @@ -393,7 +394,6 @@ void PageTurnView::OnInitialize() uint16_t width = static_cast(mPageSize.width / DEFAULT_GRID_DENSITY + 0.5f); uint16_t height = static_cast(mPageSize.height / DEFAULT_GRID_DENSITY + 0.5f); mGeometry = RendererFactoryCache::CreateGridGeometry( Uint16Pair( width, height ) ); - mGeometry.SetRequiresDepthTesting( true ); mPages.reserve( NUMBER_OF_CACHED_PAGES ); for( int i = 0; i < NUMBER_OF_CACHED_PAGES; i++ ) diff --git a/dali-toolkit/internal/controls/renderers/control-renderer-data-impl.cpp b/dali-toolkit/internal/controls/renderers/control-renderer-data-impl.cpp index 9992bf5..df5a006 100644 --- a/dali-toolkit/internal/controls/renderers/control-renderer-data-impl.cpp +++ b/dali-toolkit/internal/controls/renderers/control-renderer-data-impl.cpp @@ -47,9 +47,7 @@ const char * const CUSTOM_SHADER_HINTS( "hints" ); ///< type STRING for a hint f /** * where hints should be contain strings of the following shader hints: * "none" | corresponds to HINT_NONE - * "requiresSelfDepthTest" | corresponds to HINT_REQUIRES_SELF_DEPTH_TEST * "outputIsTransparent" | corresponds to HINT_OUTPUT_IS_TRANSPARENT - * "outputIsOpaque" | corresponds to HINT_OUTPUT_IS_OPAQUE * "modifiesGeometry" | corresponds to HINT_MODIFIES_GEOMETRY */ @@ -59,18 +57,10 @@ Shader::ShaderHints HintFromString( std::string hintString ) { return Shader::HINT_NONE; } - else if( hintString == "requiresSelfDepthTest" ) - { - return Shader::HINT_REQUIRES_SELF_DEPTH_TEST; - } else if( hintString == "outputIsTransparent" ) { return Shader::HINT_OUTPUT_IS_TRANSPARENT; } - else if( hintString == "outputIsOpaque" ) - { - return Shader::HINT_OUTPUT_IS_OPAQUE; - } else if( hintString == "modifiesGeometry" ) { return Shader::HINT_MODIFIES_GEOMETRY; diff --git a/plugins/dali-script-v8/src/constants/constants-wrapper.cpp b/plugins/dali-script-v8/src/constants/constants-wrapper.cpp index 1311506..1c3b826 100644 --- a/plugins/dali-script-v8/src/constants/constants-wrapper.cpp +++ b/plugins/dali-script-v8/src/constants/constants-wrapper.cpp @@ -217,10 +217,14 @@ const IntegerPair EnumTable[] = { "WRAP_MODE_REPEAT", WrapMode::REPEAT }, { "WRAP_MODE_MIRRORED_REPEAT", WrapMode::MIRRORED_REPEAT }, - { "MATERIAL_NONE", Renderer::NONE }, - { "MATERIAL_CULL_BACK", Renderer::CULL_BACK }, - { "MATERIAL_CULL_FRONT", Renderer::CULL_FRONT }, - { "MATERIAL_CULL_BACK_AND_FRONT", Renderer::CULL_BACK_AND_FRONT }, + { "RENDERER_CULL_NONE", Renderer::CULL_NONE }, + { "RENDERER_CULL_BACK", Renderer::CULL_BACK }, + { "RENDERER_CULL_FRONT", Renderer::CULL_FRONT }, + { "RENDERER_CULL_BACK_AND_FRONT", Renderer::CULL_BACK_AND_FRONT }, + + { "RENDERER_DEPTH_WRITE_OFF", Renderer::DEPTH_WRITE_OFF }, + { "RENDERER_DEPTH_WRITE_AUTO", Renderer::DEPTH_WRITE_AUTO }, + { "RENDERER_DEPTH_WRITE_ON", Renderer::DEPTH_WRITE_ON }, { "GEOMETRY_POINTS", Geometry::POINTS }, { "GEOMETRY_LINES", Geometry::LINES }, diff --git a/plugins/dali-script-v8/src/rendering/shader-api.cpp b/plugins/dali-script-v8/src/rendering/shader-api.cpp index 6080bd2..2e08977 100644 --- a/plugins/dali-script-v8/src/rendering/shader-api.cpp +++ b/plugins/dali-script-v8/src/rendering/shader-api.cpp @@ -74,9 +74,7 @@ struct ShaderHintPair const ShaderHintPair ShaderHintTable[]= { - {"requiresSelfDepthTest", Shader::HINT_REQUIRES_SELF_DEPTH_TEST }, {"outputIsTransparent", Shader::HINT_OUTPUT_IS_TRANSPARENT }, - {"outputIsOpaque", Shader::HINT_OUTPUT_IS_OPAQUE }, {"modifiesGeometry", Shader::HINT_MODIFIES_GEOMETRY }, }; -- 2.7.4