148087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos/*------------------------------------------------------------------------- 248087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos * OpenGL Conformance Test Suite 348087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos * ----------------------------- 448087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos * 548087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos * Copyright (c) 2016 Google Inc. 648087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos * Copyright (c) 2016 The Khronos Group Inc. 748087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos * 848087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos * Licensed under the Apache License, Version 2.0 (the "License"); 948087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos * you may not use this file except in compliance with the License. 1048087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos * You may obtain a copy of the License at 1148087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos * 1248087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos * http://www.apache.org/licenses/LICENSE-2.0 1348087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos * 1448087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos * Unless required by applicable law or agreed to in writing, software 1548087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos * distributed under the License is distributed on an "AS IS" BASIS, 1648087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1748087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos * See the License for the specific language governing permissions and 1848087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos * limitations under the License. 1948087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos * 2084322c9402f810da3cd80b52e9f9ef72150a9004Alexander Galazin */ /*! 2148087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos * \file 2248087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos * \brief CTS Android entry points. 2384322c9402f810da3cd80b52e9f9ef72150a9004Alexander Galazin */ /*-------------------------------------------------------------------*/ 2448087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos 2548087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos#include "glcAndroidTestActivity.hpp" 2648087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos 2748087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos#if (DE_OS != DE_OS_ANDROID) 2848087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos#error "Invalid OS" 2948087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos#elif (DE_ANDROID_API < 9) 3048087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos#error "CTS runner requires API level 9 or greater" 3148087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos#endif 3248087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos 3348087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulosstatic void createCTSActivity(ANativeActivity* activity, void* savedState, size_t savedStateSize, glu::ApiType type) 3448087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos{ 3548087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos DE_UNREF(savedState && savedStateSize); 3648087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos try 3748087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos { 3848087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos glcts::Android::TestActivity* obj = new glcts::Android::TestActivity(activity, type); 3948087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos DE_UNREF(obj); 4048087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos } 4148087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos catch (const std::exception& e) 4248087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos { 4348087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos tcu::die("Failed to create activity: %s", e.what()); 4448087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos } 4548087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos} 4648087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos 4748087f5f0eb08759ee763f98daf3b34becb74559Pyry HaulosDE_BEGIN_EXTERN_C 4848087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos 4948087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulosvoid createES2CTSActivity(ANativeActivity* activity, void* savedState, size_t savedStateSize) 5048087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos{ 5148087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos createCTSActivity(activity, savedState, savedStateSize, glu::ApiType::es(2, 0)); 5248087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos} 5348087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos 5448087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulosvoid createES3CTSActivity(ANativeActivity* activity, void* savedState, size_t savedStateSize) 5548087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos{ 5648087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos createCTSActivity(activity, savedState, savedStateSize, glu::ApiType::es(3, 0)); 5748087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos} 5848087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos 5948087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulosvoid createES31CTSActivity(ANativeActivity* activity, void* savedState, size_t savedStateSize) 6048087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos{ 6148087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos createCTSActivity(activity, savedState, savedStateSize, glu::ApiType::es(3, 1)); 6248087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos} 6348087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos 6448087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulosvoid createES32CTSActivity(ANativeActivity* activity, void* savedState, size_t savedStateSize) 6548087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos{ 6648087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos createCTSActivity(activity, savedState, savedStateSize, glu::ApiType::es(3, 2)); 6748087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos} 6848087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos 69d6d158c20e81083ec6d18830e70048337cd579e6Daniel Kochvoid createGL45CTSActivity(ANativeActivity* activity, void* savedState, size_t savedStateSize) 70d6d158c20e81083ec6d18830e70048337cd579e6Daniel Koch{ 71d6d158c20e81083ec6d18830e70048337cd579e6Daniel Koch createCTSActivity(activity, savedState, savedStateSize, glu::ApiType::core(4, 5)); 72d6d158c20e81083ec6d18830e70048337cd579e6Daniel Koch} 73d6d158c20e81083ec6d18830e70048337cd579e6Daniel Koch 745e30a0c40b29675e3503ce94018e53bd4cf705bfPiotr Byszewskivoid createGL46CTSActivity(ANativeActivity* activity, void* savedState, size_t savedStateSize) 755e30a0c40b29675e3503ce94018e53bd4cf705bfPiotr Byszewski{ 765e30a0c40b29675e3503ce94018e53bd4cf705bfPiotr Byszewski createCTSActivity(activity, savedState, savedStateSize, glu::ApiType::core(4, 6)); 775e30a0c40b29675e3503ce94018e53bd4cf705bfPiotr Byszewski} 7848087f5f0eb08759ee763f98daf3b34becb74559Pyry HaulosDE_END_EXTERN_C 79