148087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos#ifndef _GLCANDROIDTESTACTIVITY_HPP
248087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos#define _GLCANDROIDTESTACTIVITY_HPP
348087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos/*-------------------------------------------------------------------------
448087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos * OpenGL Conformance Test Suite
548087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos * -----------------------------
648087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos *
748087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos * Copyright (c) 2016 Google Inc.
848087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos * Copyright (c) 2016 The Khronos Group Inc.
948087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos *
1048087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos * Licensed under the Apache License, Version 2.0 (the "License");
1148087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos * you may not use this file except in compliance with the License.
1248087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos * You may obtain a copy of the License at
1348087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos *
1448087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos *      http://www.apache.org/licenses/LICENSE-2.0
1548087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos *
1648087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos * Unless required by applicable law or agreed to in writing, software
1748087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos * distributed under the License is distributed on an "AS IS" BASIS,
1848087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1948087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos * See the License for the specific language governing permissions and
2048087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos * limitations under the License.
2148087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos *
2284322c9402f810da3cd80b52e9f9ef72150a9004Alexander Galazin */ /*!
2348087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos * \file
2448087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos * \brief CTS Android Activity.
2584322c9402f810da3cd80b52e9f9ef72150a9004Alexander Galazin */ /*-------------------------------------------------------------------*/
2648087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos
2748087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos#include "glcTestRunner.hpp"
2848087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos#include "gluRenderContext.hpp"
2948087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos#include "tcuAndroidAssets.hpp"
3048087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos#include "tcuAndroidPlatform.hpp"
3148087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos#include "tcuAndroidRenderActivity.hpp"
3248087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos#include "tcuCommandLine.hpp"
3348087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos#include "tcuDefs.hpp"
3448087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos#include "tcuTestLog.hpp"
3548087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos
3648087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulosnamespace glcts
3748087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos{
3848087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulosnamespace Android
3948087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos{
4048087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos
4148087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulosclass TestThread : public tcu::Android::RenderThread
4248087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos{
4348087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulospublic:
4448087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos	TestThread(tcu::Android::NativeActivity& nativeActivity, tcu::Android::AssetArchive& archive,
4548087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos			   const std::string& logPath, glu::ApiType runType, deUint32 runFlags);
4648087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos	~TestThread(void);
4748087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos
4848087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos	void run(void);
4948087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos
5048087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulosprotected:
5148087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos	virtual void onWindowCreated(ANativeWindow* window);
5248087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos	virtual void onWindowResized(ANativeWindow* window);
5348087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos	virtual void onWindowDestroyed(ANativeWindow* window);
5448087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos	virtual bool render(void);
5548087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos
5648087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos	tcu::Android::Platform		m_platform;
5748087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos	tcu::Android::AssetArchive& m_archive;
5848087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos	TestRunner					m_app;
5948087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos	bool						m_finished; //!< Is execution finished.
6048087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos};
6148087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos
6248087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulosclass TestActivity : public tcu::Android::RenderActivity
6348087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos{
6448087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulospublic:
6548087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos	TestActivity(ANativeActivity* nativeActivity, glu::ApiType runType);
6648087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos	~TestActivity(void);
6748087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos
6848087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos	virtual void onStart(void);
6948087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos	virtual void onDestroy(void);
7048087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos	virtual void onConfigurationChanged(void);
7148087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos
7248087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulosprivate:
7348087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos	tcu::Android::AssetArchive m_archive;
7448087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos	tcu::CommandLine		   m_cmdLine;
7548087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos	TestThread				   m_testThread;
7648087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos	bool					   m_started;
7748087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos};
7848087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos
7948087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos} // Android
8048087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos} // glcts
8148087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos
8248087f5f0eb08759ee763f98daf3b34becb74559Pyry Haulos#endif // _GLCANDROIDTESTACTIVITY_HPP
83