1e5c31af7Sopenharmony_ci/*-------------------------------------------------------------------------
2e5c31af7Sopenharmony_ci * drawElements Quality Program Tester Core
3e5c31af7Sopenharmony_ci * ----------------------------------------
4e5c31af7Sopenharmony_ci *
5e5c31af7Sopenharmony_ci * Copyright 2014 The Android Open Source Project
6e5c31af7Sopenharmony_ci *
7e5c31af7Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
8e5c31af7Sopenharmony_ci * you may not use this file except in compliance with the License.
9e5c31af7Sopenharmony_ci * You may obtain a copy of the License at
10e5c31af7Sopenharmony_ci *
11e5c31af7Sopenharmony_ci *      http://www.apache.org/licenses/LICENSE-2.0
12e5c31af7Sopenharmony_ci *
13e5c31af7Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
14e5c31af7Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
15e5c31af7Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16e5c31af7Sopenharmony_ci * See the License for the specific language governing permissions and
17e5c31af7Sopenharmony_ci * limitations under the License.
18e5c31af7Sopenharmony_ci *
19e5c31af7Sopenharmony_ci *//*!
20e5c31af7Sopenharmony_ci * \file
21e5c31af7Sopenharmony_ci * \brief Android Native Activity.
22e5c31af7Sopenharmony_ci *//*--------------------------------------------------------------------*/
23e5c31af7Sopenharmony_ci
24e5c31af7Sopenharmony_ci#include "tcuAndroidNativeActivity.hpp"
25e5c31af7Sopenharmony_ci#include "deMemory.h"
26e5c31af7Sopenharmony_ci
27e5c31af7Sopenharmony_ciDE_BEGIN_EXTERN_C
28e5c31af7Sopenharmony_ci
29e5c31af7Sopenharmony_cistatic void onStartCallback (ANativeActivity* activity)
30e5c31af7Sopenharmony_ci{
31e5c31af7Sopenharmony_ci	static_cast<tcu::Android::NativeActivity*>(activity->instance)->onStart();
32e5c31af7Sopenharmony_ci}
33e5c31af7Sopenharmony_ci
34e5c31af7Sopenharmony_cistatic void onResumeCallback (ANativeActivity* activity)
35e5c31af7Sopenharmony_ci{
36e5c31af7Sopenharmony_ci	static_cast<tcu::Android::NativeActivity*>(activity->instance)->onResume();
37e5c31af7Sopenharmony_ci}
38e5c31af7Sopenharmony_ci
39e5c31af7Sopenharmony_cistatic void* onSaveInstanceStateCallback (ANativeActivity* activity, size_t* outSize)
40e5c31af7Sopenharmony_ci{
41e5c31af7Sopenharmony_ci	return static_cast<tcu::Android::NativeActivity*>(activity->instance)->onSaveInstanceState(outSize);
42e5c31af7Sopenharmony_ci}
43e5c31af7Sopenharmony_ci
44e5c31af7Sopenharmony_cistatic void onPauseCallback (ANativeActivity* activity)
45e5c31af7Sopenharmony_ci{
46e5c31af7Sopenharmony_ci	return static_cast<tcu::Android::NativeActivity*>(activity->instance)->onPause();
47e5c31af7Sopenharmony_ci}
48e5c31af7Sopenharmony_ci
49e5c31af7Sopenharmony_cistatic void onStopCallback (ANativeActivity* activity)
50e5c31af7Sopenharmony_ci{
51e5c31af7Sopenharmony_ci	static_cast<tcu::Android::NativeActivity*>(activity->instance)->onStop();
52e5c31af7Sopenharmony_ci}
53e5c31af7Sopenharmony_ci
54e5c31af7Sopenharmony_cistatic void onDestroyCallback (ANativeActivity* activity)
55e5c31af7Sopenharmony_ci{
56e5c31af7Sopenharmony_ci	static_cast<tcu::Android::NativeActivity*>(activity->instance)->onDestroy();
57e5c31af7Sopenharmony_ci}
58e5c31af7Sopenharmony_ci
59e5c31af7Sopenharmony_cistatic void onWindowFocusChangedCallback (ANativeActivity* activity, int hasFocus)
60e5c31af7Sopenharmony_ci{
61e5c31af7Sopenharmony_ci	static_cast<tcu::Android::NativeActivity*>(activity->instance)->onWindowFocusChanged(hasFocus);
62e5c31af7Sopenharmony_ci}
63e5c31af7Sopenharmony_ci
64e5c31af7Sopenharmony_cistatic void onNativeWindowCreatedCallback (ANativeActivity* activity, ANativeWindow* window)
65e5c31af7Sopenharmony_ci{
66e5c31af7Sopenharmony_ci	static_cast<tcu::Android::NativeActivity*>(activity->instance)->onNativeWindowCreated(window);
67e5c31af7Sopenharmony_ci}
68e5c31af7Sopenharmony_ci
69e5c31af7Sopenharmony_cistatic void onNativeWindowResizedCallback (ANativeActivity* activity, ANativeWindow* window)
70e5c31af7Sopenharmony_ci{
71e5c31af7Sopenharmony_ci	static_cast<tcu::Android::NativeActivity*>(activity->instance)->onNativeWindowResized(window);
72e5c31af7Sopenharmony_ci}
73e5c31af7Sopenharmony_ci
74e5c31af7Sopenharmony_cistatic void onNativeWindowRedrawNeededCallback (ANativeActivity* activity, ANativeWindow* window)
75e5c31af7Sopenharmony_ci{
76e5c31af7Sopenharmony_ci	static_cast<tcu::Android::NativeActivity*>(activity->instance)->onNativeWindowRedrawNeeded(window);
77e5c31af7Sopenharmony_ci}
78e5c31af7Sopenharmony_ci
79e5c31af7Sopenharmony_cistatic void onNativeWindowDestroyedCallback (ANativeActivity* activity, ANativeWindow* window)
80e5c31af7Sopenharmony_ci{
81e5c31af7Sopenharmony_ci	static_cast<tcu::Android::NativeActivity*>(activity->instance)->onNativeWindowDestroyed(window);
82e5c31af7Sopenharmony_ci}
83e5c31af7Sopenharmony_ci
84e5c31af7Sopenharmony_cistatic void onInputQueueCreatedCallback (ANativeActivity* activity, AInputQueue* queue)
85e5c31af7Sopenharmony_ci{
86e5c31af7Sopenharmony_ci	static_cast<tcu::Android::NativeActivity*>(activity->instance)->onInputQueueCreated(queue);
87e5c31af7Sopenharmony_ci}
88e5c31af7Sopenharmony_ci
89e5c31af7Sopenharmony_cistatic void onInputQueueDestroyedCallback (ANativeActivity* activity, AInputQueue* queue)
90e5c31af7Sopenharmony_ci{
91e5c31af7Sopenharmony_ci	static_cast<tcu::Android::NativeActivity*>(activity->instance)->onInputQueueDestroyed(queue);
92e5c31af7Sopenharmony_ci}
93e5c31af7Sopenharmony_ci
94e5c31af7Sopenharmony_cistatic void onContentRectChangedCallback (ANativeActivity* activity, const ARect* rect)
95e5c31af7Sopenharmony_ci{
96e5c31af7Sopenharmony_ci	static_cast<tcu::Android::NativeActivity*>(activity->instance)->onContentRectChanged(rect);
97e5c31af7Sopenharmony_ci}
98e5c31af7Sopenharmony_ci
99e5c31af7Sopenharmony_cistatic void onConfigurationChangedCallback (ANativeActivity* activity)
100e5c31af7Sopenharmony_ci{
101e5c31af7Sopenharmony_ci	static_cast<tcu::Android::NativeActivity*>(activity->instance)->onConfigurationChanged();
102e5c31af7Sopenharmony_ci}
103e5c31af7Sopenharmony_ci
104e5c31af7Sopenharmony_cistatic void onLowMemoryCallback (ANativeActivity* activity)
105e5c31af7Sopenharmony_ci{
106e5c31af7Sopenharmony_ci	static_cast<tcu::Android::NativeActivity*>(activity->instance)->onLowMemory();
107e5c31af7Sopenharmony_ci}
108e5c31af7Sopenharmony_ci
109e5c31af7Sopenharmony_ciDE_END_EXTERN_C
110e5c31af7Sopenharmony_ci
111e5c31af7Sopenharmony_cinamespace tcu
112e5c31af7Sopenharmony_ci{
113e5c31af7Sopenharmony_cinamespace Android
114e5c31af7Sopenharmony_ci{
115e5c31af7Sopenharmony_ci
116e5c31af7Sopenharmony_ciNativeActivity::NativeActivity (ANativeActivity* activity)
117e5c31af7Sopenharmony_ci	: m_activity(activity)
118e5c31af7Sopenharmony_ci{
119e5c31af7Sopenharmony_ci	activity->instance								= (void*)this;
120e5c31af7Sopenharmony_ci	activity->callbacks->onStart					= onStartCallback;
121e5c31af7Sopenharmony_ci	activity->callbacks->onResume					= onResumeCallback;
122e5c31af7Sopenharmony_ci	activity->callbacks->onSaveInstanceState		= onSaveInstanceStateCallback;
123e5c31af7Sopenharmony_ci	activity->callbacks->onPause					= onPauseCallback;
124e5c31af7Sopenharmony_ci	activity->callbacks->onStop						= onStopCallback;
125e5c31af7Sopenharmony_ci	activity->callbacks->onDestroy					= onDestroyCallback;
126e5c31af7Sopenharmony_ci	activity->callbacks->onWindowFocusChanged		= onWindowFocusChangedCallback;
127e5c31af7Sopenharmony_ci	activity->callbacks->onNativeWindowCreated		= onNativeWindowCreatedCallback;
128e5c31af7Sopenharmony_ci	activity->callbacks->onNativeWindowResized		= onNativeWindowResizedCallback;
129e5c31af7Sopenharmony_ci	activity->callbacks->onNativeWindowRedrawNeeded	= onNativeWindowRedrawNeededCallback;
130e5c31af7Sopenharmony_ci	activity->callbacks->onNativeWindowDestroyed	= onNativeWindowDestroyedCallback;
131e5c31af7Sopenharmony_ci	activity->callbacks->onInputQueueCreated		= onInputQueueCreatedCallback;
132e5c31af7Sopenharmony_ci	activity->callbacks->onInputQueueDestroyed		= onInputQueueDestroyedCallback;
133e5c31af7Sopenharmony_ci	activity->callbacks->onContentRectChanged		= onContentRectChangedCallback;
134e5c31af7Sopenharmony_ci	activity->callbacks->onConfigurationChanged		= onConfigurationChangedCallback;
135e5c31af7Sopenharmony_ci	activity->callbacks->onLowMemory				= onLowMemoryCallback;
136e5c31af7Sopenharmony_ci}
137e5c31af7Sopenharmony_ci
138e5c31af7Sopenharmony_ciNativeActivity::~NativeActivity (void)
139e5c31af7Sopenharmony_ci{
140e5c31af7Sopenharmony_ci}
141e5c31af7Sopenharmony_ci
142e5c31af7Sopenharmony_civoid NativeActivity::onStart (void)
143e5c31af7Sopenharmony_ci{
144e5c31af7Sopenharmony_ci}
145e5c31af7Sopenharmony_ci
146e5c31af7Sopenharmony_civoid NativeActivity::onResume (void)
147e5c31af7Sopenharmony_ci{
148e5c31af7Sopenharmony_ci}
149e5c31af7Sopenharmony_ci
150e5c31af7Sopenharmony_civoid* NativeActivity::onSaveInstanceState (size_t* outSize)
151e5c31af7Sopenharmony_ci{
152e5c31af7Sopenharmony_ci	*outSize = 0;
153e5c31af7Sopenharmony_ci	return DE_NULL;
154e5c31af7Sopenharmony_ci}
155e5c31af7Sopenharmony_ci
156e5c31af7Sopenharmony_civoid NativeActivity::onPause (void)
157e5c31af7Sopenharmony_ci{
158e5c31af7Sopenharmony_ci}
159e5c31af7Sopenharmony_ci
160e5c31af7Sopenharmony_civoid NativeActivity::onStop (void)
161e5c31af7Sopenharmony_ci{
162e5c31af7Sopenharmony_ci}
163e5c31af7Sopenharmony_ci
164e5c31af7Sopenharmony_civoid NativeActivity::onDestroy (void)
165e5c31af7Sopenharmony_ci{
166e5c31af7Sopenharmony_ci}
167e5c31af7Sopenharmony_ci
168e5c31af7Sopenharmony_civoid NativeActivity::onWindowFocusChanged (int hasFocus)
169e5c31af7Sopenharmony_ci{
170e5c31af7Sopenharmony_ci	DE_UNREF(hasFocus);
171e5c31af7Sopenharmony_ci}
172e5c31af7Sopenharmony_ci
173e5c31af7Sopenharmony_civoid NativeActivity::onNativeWindowCreated (ANativeWindow* window)
174e5c31af7Sopenharmony_ci{
175e5c31af7Sopenharmony_ci	DE_UNREF(window);
176e5c31af7Sopenharmony_ci}
177e5c31af7Sopenharmony_ci
178e5c31af7Sopenharmony_civoid NativeActivity::onNativeWindowResized (ANativeWindow* window)
179e5c31af7Sopenharmony_ci{
180e5c31af7Sopenharmony_ci	DE_UNREF(window);
181e5c31af7Sopenharmony_ci}
182e5c31af7Sopenharmony_ci
183e5c31af7Sopenharmony_civoid NativeActivity::onNativeWindowRedrawNeeded (ANativeWindow* window)
184e5c31af7Sopenharmony_ci{
185e5c31af7Sopenharmony_ci	DE_UNREF(window);
186e5c31af7Sopenharmony_ci}
187e5c31af7Sopenharmony_ci
188e5c31af7Sopenharmony_civoid NativeActivity::onNativeWindowDestroyed (ANativeWindow* window)
189e5c31af7Sopenharmony_ci{
190e5c31af7Sopenharmony_ci	DE_UNREF(window);
191e5c31af7Sopenharmony_ci}
192e5c31af7Sopenharmony_ci
193e5c31af7Sopenharmony_civoid NativeActivity::onInputQueueCreated (AInputQueue* queue)
194e5c31af7Sopenharmony_ci{
195e5c31af7Sopenharmony_ci	DE_UNREF(queue);
196e5c31af7Sopenharmony_ci}
197e5c31af7Sopenharmony_ci
198e5c31af7Sopenharmony_civoid NativeActivity::onInputQueueDestroyed (AInputQueue* queue)
199e5c31af7Sopenharmony_ci{
200e5c31af7Sopenharmony_ci	DE_UNREF(queue);
201e5c31af7Sopenharmony_ci}
202e5c31af7Sopenharmony_ci
203e5c31af7Sopenharmony_civoid NativeActivity::onContentRectChanged (const ARect* rect)
204e5c31af7Sopenharmony_ci{
205e5c31af7Sopenharmony_ci	DE_UNREF(rect);
206e5c31af7Sopenharmony_ci}
207e5c31af7Sopenharmony_ci
208e5c31af7Sopenharmony_civoid NativeActivity::onConfigurationChanged (void)
209e5c31af7Sopenharmony_ci{
210e5c31af7Sopenharmony_ci}
211e5c31af7Sopenharmony_ci
212e5c31af7Sopenharmony_civoid NativeActivity::onLowMemory (void)
213e5c31af7Sopenharmony_ci{
214e5c31af7Sopenharmony_ci}
215e5c31af7Sopenharmony_ci
216e5c31af7Sopenharmony_civoid NativeActivity::finish (void)
217e5c31af7Sopenharmony_ci{
218e5c31af7Sopenharmony_ci	ANativeActivity_finish(m_activity);
219e5c31af7Sopenharmony_ci}
220e5c31af7Sopenharmony_ci
221e5c31af7Sopenharmony_ci} // Android
222e5c31af7Sopenharmony_ci} // tcu
223