Tizen 2.1 base
[sdk/ide/native-sample.git] / samples / native / cpp / Sample / Tizen C++ / GlesShader / GlesShader / project / src / GlesShaderEntry.cpp
1 //
2 // Tizen C++ SDK
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Flora License, Version 1.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 //     http://www.tizenopensource.org/license
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an AS IS BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17
18 /**
19  * This file contains the Tizen C++ application entry point.
20  */
21 #include "GlesShader.h"
22
23 using namespace Osp::Base;
24 using namespace Osp::Base::Collection;
25
26 #ifdef __cplusplus
27 extern "C"
28 {
29 #endif // __cplusplus
30
31 _EXPORT_ int OspMain(int argc, char *pArgv[]);
32 #ifdef _PROFILE
33 extern void start_profile (void);
34 extern void end_profile (void);
35 #else
36 #define start_profile()
37 #define end_profile()
38 #endif
39
40
41 /**
42  * The entry function of Tizen C++ application called by the operating system.
43  */
44 int
45 OspMain(int argc, char *pArgv[])
46 {
47         AppLog("Application started.");
48         ArrayList args;
49         args.Construct();
50
51         for (int i = 0; i < argc; i++)
52         {
53                 args.Add(*(new (std::nothrow) String(pArgv[i])));
54         }
55
56         start_profile();
57         result r = Osp::App::Application::Execute(GlesShader::CreateInstance, &args);
58
59         TryLog(r == E_SUCCESS, "[%s] Application execution failed", GetErrorMessage(r));
60
61         end_profile();
62         args.RemoveAll(true);
63         AppLog("Application finished.");
64
65         return static_cast<int>(r);
66 }
67 #ifdef __cplusplus
68 }
69 #endif // __cplusplus