X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=examples%2Fmesh-visual%2Fmesh-visual-example.cpp;fp=examples%2Fmesh-renderer%2Fmesh-renderer-example.cpp;h=b157f635c0241faae8dfc076d5beb49cbcc930fe;hb=adf210149fc391c9176d667e43e8d8b5a429cb57;hp=b9286fa08e57c986ae48d7f8285bd60ce58d2764;hpb=dc63a4c9a742005a90ac82cc2e979a94f48ef48e;p=platform%2Fcore%2Fuifw%2Fdali-demo.git diff --git a/examples/mesh-renderer/mesh-renderer-example.cpp b/examples/mesh-visual/mesh-visual-example.cpp similarity index 87% rename from examples/mesh-renderer/mesh-renderer-example.cpp rename to examples/mesh-visual/mesh-visual-example.cpp index b9286fa..b157f63 100644 --- a/examples/mesh-renderer/mesh-renderer-example.cpp +++ b/examples/mesh-visual/mesh-visual-example.cpp @@ -9,7 +9,7 @@ namespace //Keeps information about each model for access. struct Model { - Control control; // Control housing the mesh renderer of the model. + Control control; // Control housing the mesh visual of the model. Vector2 rotation; // Keeps track of rotation about x and y axis for manual rotation. Animation rotationAnimation; // Automatically rotates when left alone. }; @@ -31,12 +31,12 @@ namespace const char * const TEXTURES_PATH( DEMO_IMAGE_DIR "" ); - //Possible shader options. - const char * const SHADER_TYPE[] = + //Possible shading modes. + MeshVisual::ShadingMode::Value SHADING_MODE_TABLE[] = { - "ALL_TEXTURES", - "DIFFUSE_TEXTURE", - "TEXTURELESS" + MeshVisual::ShadingMode::TEXTURED_WITH_DETAILED_SPECULAR_LIGHTING, + MeshVisual::ShadingMode::TEXTURED_WITH_SPECULAR_LIGHTING, + MeshVisual::ShadingMode::TEXTURELESS_WITH_DIFFUSE_LIGHTING }; //Files for background and toolbar @@ -54,23 +54,23 @@ namespace } //End namespace -class MeshRendererController : public ConnectionTracker +class MeshVisualController : public ConnectionTracker { public: - MeshRendererController( Application& application ) + MeshVisualController( Application& application ) : mApplication( application ), //Store handle to the application. mModelIndex( 1 ), //Start with metal robot. - mShaderIndex( 0 ), //Start with all textures. + mShadingModeIndex( 0 ), //Start with textured with detailed specular lighting. mTag( -1 ), //Non-valid default, which will get set to a correct value when used. mSelectedModelIndex( -1 ), //Non-valid default, which will get set to a correct value when used. mPaused( false ) //Animations play by default. { // Connect to the Application's Init signal - mApplication.InitSignal().Connect( this, &MeshRendererController::Create ); + mApplication.InitSignal().Connect( this, &MeshVisualController::Create ); } - ~MeshRendererController() + ~MeshVisualController() { } @@ -89,7 +89,7 @@ public: LoadScene(); //Allow for exiting of the application via key presses. - stage.KeyEventSignal().Connect( this, &MeshRendererController::OnKeyEvent ); + stage.KeyEventSignal().Connect( this, &MeshVisualController::OnKeyEvent ); } //Sets up the on-screen elements. @@ -105,10 +105,10 @@ public: baseLayer.SetBehavior( Layer::LAYER_2D ); //We use a 2D layer as this is closer to UI work than full 3D scene creation. baseLayer.SetDepthTestDisabled( false ); //Enable depth testing, as otherwise the 2D layer would not do so. baseLayer.RegisterProperty( "Tag", LAYER_TAG ); //Used to differentiate between different kinds of actor. - baseLayer.TouchedSignal().Connect( this, &MeshRendererController::OnTouch ); + baseLayer.TouchedSignal().Connect( this, &MeshVisualController::OnTouch ); stage.Add( baseLayer ); - //Add containers to house each renderer-holding-actor. + //Add containers to house each visual-holding-actor. for( int i = 0; i < NUM_MESHES; i++ ) { mContainers[i] = Actor::New(); @@ -139,7 +139,7 @@ public: mContainers[i].SetAnchorPoint( AnchorPoint::TOP_RIGHT ); } - mContainers[i].TouchedSignal().Connect( this, &MeshRendererController::OnTouch ); + mContainers[i].TouchedSignal().Connect( this, &MeshVisualController::OnTouch ); baseLayer.Add( mContainers[i] ); } @@ -174,7 +174,7 @@ public: //Create button for model changing Toolkit::PushButton modelButton = Toolkit::PushButton::New(); modelButton.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS ); - modelButton.ClickedSignal().Connect( this, &MeshRendererController::OnChangeModelClicked ); + modelButton.ClickedSignal().Connect( this, &MeshVisualController::OnChangeModelClicked ); modelButton.SetParentOrigin( Vector3( 0.05, 0.95, 0.5 ) ); //Offset from bottom left modelButton.SetAnchorPoint( AnchorPoint::BOTTOM_LEFT ); modelButton.SetLabelText( "Change Model" ); @@ -183,7 +183,7 @@ public: //Create button for shader changing Toolkit::PushButton shaderButton = Toolkit::PushButton::New(); shaderButton.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS ); - shaderButton.ClickedSignal().Connect( this, &MeshRendererController::OnChangeShaderClicked ); + shaderButton.ClickedSignal().Connect( this, &MeshVisualController::OnChangeShaderClicked ); shaderButton.SetParentOrigin( Vector3( 0.95, 0.95, 0.5 ) ); //Offset from bottom right shaderButton.SetAnchorPoint( AnchorPoint::BOTTOM_RIGHT ); shaderButton.SetLabelText( "Change Shader" ); @@ -192,7 +192,7 @@ public: //Create button for pausing animations Toolkit::PushButton pauseButton = Toolkit::PushButton::New(); pauseButton.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS ); - pauseButton.ClickedSignal().Connect( this, &MeshRendererController::OnPauseClicked ); + pauseButton.ClickedSignal().Connect( this, &MeshVisualController::OnPauseClicked ); pauseButton.SetParentOrigin( Vector3( 0.5, 0.95, 0.5 ) ); //Offset from bottom center pauseButton.SetAnchorPoint( AnchorPoint::BOTTOM_CENTER ); pauseButton.SetLabelText( " || " ); @@ -211,8 +211,8 @@ public: //Make white background. Property::Map lightMap; - lightMap.Insert( "rendererType", "COLOR" ); - lightMap.Insert( "mixColor", Color::WHITE ); + lightMap.Insert( Visual::Property::TYPE, Visual::COLOR ); + lightMap.Insert( ColorVisual::Property::MIX_COLOR, Color::WHITE ); mLightSource.SetProperty( Control::Property::BACKGROUND, Property::Value( lightMap ) ); //Label to show what this actor is for the user. @@ -225,7 +225,7 @@ public: mLightSource.Add( lightLabel ); //Connect to touch signal for dragging. - mLightSource.TouchedSignal().Connect( this, &MeshRendererController::OnTouch ); + mLightSource.TouchedSignal().Connect( this, &MeshVisualController::OnTouch ); //Place the light source on a layer above the base, so that it is rendered above everything else. Layer upperLayer = Layer::New(); @@ -241,12 +241,12 @@ public: { //Create mesh property map Property::Map map; - map.Insert( "rendererType", "MESH" ); - map.Insert( "objectUrl", MODEL_FILE[mModelIndex] ); - map.Insert( "materialUrl", MATERIAL_FILE[mModelIndex] ); - map.Insert( "texturesPath", TEXTURES_PATH ); - map.Insert( "shaderType", SHADER_TYPE[mShaderIndex] ); - map.Insert( "useSoftNormals", false ); + map.Insert( Visual::Property::TYPE, Visual::MESH ); + map.Insert( MeshVisual::Property::OBJECT_URL, MODEL_FILE[mModelIndex] ); + map.Insert( MeshVisual::Property::MATERIAL_URL, MATERIAL_FILE[mModelIndex] ); + map.Insert( MeshVisual::Property::TEXTURES_PATH, TEXTURES_PATH ); + map.Insert( MeshVisual::Property::SHADING_MODE, SHADING_MODE_TABLE[mShadingModeIndex] ); + map.Insert( MeshVisual::Property::USE_SOFT_NORMALS, false ); //Set the two controls to use the mesh for( int i = 0; i < NUM_MESHES; i++ ) @@ -365,7 +365,7 @@ public: //Cycle through the list of shaders. bool OnChangeShaderClicked( Toolkit::Button button ) { - ++mShaderIndex %= 3; + ++mShadingModeIndex %= 3; ReloadModel(); @@ -429,26 +429,18 @@ private: Vector2 mRotationStart; int mModelIndex; //Index of model to load. - int mShaderIndex; //Index of shader type to use. + int mShadingModeIndex; //Index of shader type to use. int mTag; //Identifies what kind of actor has been selected in OnTouch. int mSelectedModelIndex; //Index of model selected on screen. bool mPaused; //If true, all animations are paused and should stay so. }; -void RunTest( Application& application ) -{ - MeshRendererController test( application ); - - application.MainLoop(); -} - // Entry point for Linux & Tizen applications // int main( int argc, char **argv ) { Application application = Application::New( &argc, &argv ); - - RunTest( application ); - + MeshVisualController test( application ); + application.MainLoop(); return 0; }