1e5c31af7Sopenharmony_ci/*-------------------------------------------------------------------------
2e5c31af7Sopenharmony_ci * OpenGL Conformance Test Suite
3e5c31af7Sopenharmony_ci * -----------------------------
4e5c31af7Sopenharmony_ci *
5e5c31af7Sopenharmony_ci * Copyright (c) 2016 Google Inc.
6e5c31af7Sopenharmony_ci * Copyright (c) 2016 The Khronos Group Inc.
7e5c31af7Sopenharmony_ci *
8e5c31af7Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
9e5c31af7Sopenharmony_ci * you may not use this file except in compliance with the License.
10e5c31af7Sopenharmony_ci * You may obtain a copy of the License at
11e5c31af7Sopenharmony_ci *
12e5c31af7Sopenharmony_ci *      http://www.apache.org/licenses/LICENSE-2.0
13e5c31af7Sopenharmony_ci *
14e5c31af7Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
15e5c31af7Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
16e5c31af7Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17e5c31af7Sopenharmony_ci * See the License for the specific language governing permissions and
18e5c31af7Sopenharmony_ci * limitations under the License.
19e5c31af7Sopenharmony_ci *
20e5c31af7Sopenharmony_ci */ /*!
21e5c31af7Sopenharmony_ci * \file
22e5c31af7Sopenharmony_ci * \brief CTS Android entry points.
23e5c31af7Sopenharmony_ci */ /*-------------------------------------------------------------------*/
24e5c31af7Sopenharmony_ci
25e5c31af7Sopenharmony_ci#include "glcAndroidTestActivity.hpp"
26e5c31af7Sopenharmony_ci
27e5c31af7Sopenharmony_ci#if (DE_OS != DE_OS_ANDROID)
28e5c31af7Sopenharmony_ci#error "Invalid OS"
29e5c31af7Sopenharmony_ci#elif (DE_ANDROID_API < 9)
30e5c31af7Sopenharmony_ci#error "CTS runner requires API level 9 or greater"
31e5c31af7Sopenharmony_ci#endif
32e5c31af7Sopenharmony_ci
33e5c31af7Sopenharmony_cistatic void createCTSActivity(ANativeActivity* activity, void* savedState, size_t savedStateSize, glu::ApiType type)
34e5c31af7Sopenharmony_ci{
35e5c31af7Sopenharmony_ci	DE_UNREF(savedState && savedStateSize);
36e5c31af7Sopenharmony_ci	try
37e5c31af7Sopenharmony_ci	{
38e5c31af7Sopenharmony_ci		glcts::Android::TestActivity* obj = new glcts::Android::TestActivity(activity, type);
39e5c31af7Sopenharmony_ci		DE_UNREF(obj);
40e5c31af7Sopenharmony_ci	}
41e5c31af7Sopenharmony_ci	catch (const std::exception& e)
42e5c31af7Sopenharmony_ci	{
43e5c31af7Sopenharmony_ci		tcu::die("Failed to create activity: %s", e.what());
44e5c31af7Sopenharmony_ci	}
45e5c31af7Sopenharmony_ci}
46e5c31af7Sopenharmony_ci
47e5c31af7Sopenharmony_ciDE_BEGIN_EXTERN_C
48e5c31af7Sopenharmony_ci
49e5c31af7Sopenharmony_ciJNIEXPORT void JNICALL createES2CTSActivity(ANativeActivity* activity, void* savedState, size_t savedStateSize)
50e5c31af7Sopenharmony_ci{
51e5c31af7Sopenharmony_ci	createCTSActivity(activity, savedState, savedStateSize, glu::ApiType::es(2, 0));
52e5c31af7Sopenharmony_ci}
53e5c31af7Sopenharmony_ci
54e5c31af7Sopenharmony_ciJNIEXPORT void JNICALL createES3CTSActivity(ANativeActivity* activity, void* savedState, size_t savedStateSize)
55e5c31af7Sopenharmony_ci{
56e5c31af7Sopenharmony_ci	createCTSActivity(activity, savedState, savedStateSize, glu::ApiType::es(3, 0));
57e5c31af7Sopenharmony_ci}
58e5c31af7Sopenharmony_ci
59e5c31af7Sopenharmony_ciJNIEXPORT void JNICALL createES31CTSActivity(ANativeActivity* activity, void* savedState, size_t savedStateSize)
60e5c31af7Sopenharmony_ci{
61e5c31af7Sopenharmony_ci	createCTSActivity(activity, savedState, savedStateSize, glu::ApiType::es(3, 1));
62e5c31af7Sopenharmony_ci}
63e5c31af7Sopenharmony_ci
64e5c31af7Sopenharmony_ciJNIEXPORT void JNICALL createES32CTSActivity(ANativeActivity* activity, void* savedState, size_t savedStateSize)
65e5c31af7Sopenharmony_ci{
66e5c31af7Sopenharmony_ci	createCTSActivity(activity, savedState, savedStateSize, glu::ApiType::es(3, 2));
67e5c31af7Sopenharmony_ci}
68e5c31af7Sopenharmony_ci
69e5c31af7Sopenharmony_ciJNIEXPORT void JNICALL createGL45CTSActivity(ANativeActivity* activity, void* savedState, size_t savedStateSize)
70e5c31af7Sopenharmony_ci{
71e5c31af7Sopenharmony_ci	createCTSActivity(activity, savedState, savedStateSize, glu::ApiType::core(4, 5));
72e5c31af7Sopenharmony_ci}
73e5c31af7Sopenharmony_ci
74e5c31af7Sopenharmony_ciJNIEXPORT void JNICALL createGL46CTSActivity(ANativeActivity* activity, void* savedState, size_t savedStateSize)
75e5c31af7Sopenharmony_ci{
76e5c31af7Sopenharmony_ci	createCTSActivity(activity, savedState, savedStateSize, glu::ApiType::core(4, 6));
77e5c31af7Sopenharmony_ci}
78e5c31af7Sopenharmony_ciDE_END_EXTERN_C
79