Remove Quake standalone executable.
The standalone executable is broken and links to internal system
components that are being refactored. Delete it.
Change-Id: I17d45984cd06401cda8dfd93ac49f1b703bd463d
diff --git a/Android.mk b/Android.mk
index 0b9a9d6..8234410 100644
--- a/Android.mk
+++ b/Android.mk
@@ -105,27 +105,4 @@
include $(BUILD_SHARED_LIBRARY)
-#########################################################################
-# Build stand-alone quake executable on device
-#########################################################################
-
-ifneq ($(BUILD_TINY_ANDROID),true)
-ifeq ($(TARGET_ARCH),arm)
-
-LOCAL_PATH:= $(TOP_LOCAL_PATH)/standalone
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES:= main.cpp
-
-LOCAL_SHARED_LIBRARIES := libc libm libutils libui libquake libEGL libGLESv1_CM
-
-LOCAL_MODULE:= quake
-
-LOCAL_MODULE_TAGS := optional
-
-include $(BUILD_EXECUTABLE)
-
-endif
-endif
-
endif # TARGET_SIMULATOR
diff --git a/standalone/main.cpp b/standalone/main.cpp
deleted file mode 100644
index 7a5b6ee..0000000
--- a/standalone/main.cpp
+++ /dev/null
@@ -1,362 +0,0 @@
-#include <stdio.h>
-#include <unistd.h>
-#include <EGL/egl.h>
-#include <GLES/gl.h>
-#include <pthread.h>
-#include <ui/EventHub.h>
-#include <ui/FramebufferNativeWindow.h>
-#include <ui/EGLUtils.h>
-
-extern void AndroidInitArgs(int argc, char** argv);
-extern int AndroidInit();
-extern int AndroidMotionEvent(unsigned long long eventTime, int action,
- float x, float y, float pressure, float size, int deviceId);
-extern int AndroidEvent(int type, int value);
-extern int AndroidStep(int width, int height);
-
-static int gDisplayWidth;
-static int gDisplayHeight;
-static EGLDisplay gDisplay;
-static EGLSurface gSurface;
-static EGLContext gContext;
-
-void checkEGLError(const char* msg) {
- unsigned int error = eglGetError();
- if (error != EGL_SUCCESS) {
- fprintf(stderr, "%s: error %u\n", msg, error);
- }
-}
-
-void checkGLError(const char* msg) {
- unsigned int error = glGetError();
- if (error != GL_NO_ERROR) {
- fprintf(stderr, "%s: error 0x%04X\n", msg, error);
- }
-}
-
-static android::sp<android::EventHub> gHub;
-
-class EventQueue {
-private:
- class Lock {
- public:
- Lock(pthread_mutex_t& mutex) {
- m_pMutex = &mutex;
- pthread_mutex_lock(m_pMutex);
- }
- ~Lock() {
- pthread_mutex_unlock(m_pMutex);
- }
- void wait(pthread_cond_t& cond) {
- pthread_cond_wait(&cond, m_pMutex);
- }
- void signal(pthread_cond_t& cond) {
- pthread_cond_signal(&cond);
- }
- private:
- pthread_mutex_t* m_pMutex;
- };
-
-public:
-
- static const int MOTION_ACTION_DOWN = 0;
- static const int MOTION_ACTION_UP = 1;
- static const int MOTION_ACTION_MOVE = 2;
-
-// Platform-specific event types.
-
- static const int EV_DEVICE_ADDED = android::EventHub::DEVICE_ADDED;
- static const int EV_DEVICE_REMOVED = android::EventHub::DEVICE_REMOVED;
-
- struct Event {
- int32_t deviceId;
- int32_t type;
- int32_t scancode;
- int32_t keycode;
- uint32_t flags;
- int32_t value;
- nsecs_t when;
- };
-
- EventQueue() {
- m_Head = 0;
- m_Count = 0;
- pthread_mutex_init(&m_mutex, NULL);
- pthread_cond_init(&m_space_available, NULL);
- startEventThread();
- }
-
- // Returns NULL if no event available.
- // Call recycleEvent when you're done with the event
- Event* getEvent() {
- Event* result = NULL;
- Lock lock(m_mutex);
- if (m_Count > 0) {
- result = m_Events + m_Head;
- }
- return result;
- }
-
- void recycleEvent(Event* pEvent) {
- Lock lock(m_mutex);
- if (pEvent == m_Events + m_Head && m_Count > 0) {
- m_Head = incQueue(m_Head);
- m_Count--;
- lock.signal(m_space_available);
- }
- }
-
-private:
- inline size_t incQueue(size_t index) {
- return modQueue(index + 1);
- }
-
- inline size_t modQueue(size_t index) {
- return index & EVENT_SIZE_MASK;
- }
-
- void startEventThread() {
- pthread_create( &m_eventThread, NULL, &staticEventThreadMain, this);
- }
-
- static void* staticEventThreadMain(void* arg) {
- return ((EventQueue*) arg)->eventThreadMain();
- }
-
- void* eventThreadMain() {
- gHub = new android::EventHub();
- while(true) {
- android::RawEvent rawEvent;
- bool result = gHub->getEvent(& rawEvent);
- if (result) {
- Event event;
- event.deviceId = rawEvent.deviceId;
- event.when = rawEvent.when;
- event.type = rawEvent.type;
- event.value = rawEvent.value;
- event.keycode = rawEvent.keyCode;
- event.scancode = rawEvent.scanCode;
- event.flags = rawEvent.flags;
-
- Lock lock(m_mutex);
- while( m_Count == MAX_EVENTS) {
- lock.wait(m_space_available);
- }
- m_Events[modQueue(m_Head + m_Count)] = event;
- m_Count = incQueue(m_Count);
- }
- }
- return NULL;
- }
-
- static const size_t MAX_EVENTS = 16;
- static const size_t EVENT_SIZE_MASK = 0xf;
-
- pthread_t m_eventThread;
- pthread_mutex_t m_mutex;
- pthread_cond_t m_space_available;
- unsigned int m_Head;
- unsigned int m_Count;
- Event m_Events[MAX_EVENTS];
-};
-
-bool gNoEvents;
-EventQueue* gpEventQueue;
-
-int init(int argc, char** argv) {
-
- for(int i = 0; i < argc; i++) {
- char* p = argv[i];
- if (strcmp(p, "-noevents") == 0) {
- printf("-noevents: will not look for events.\n");
- gNoEvents = true;
- }
- }
-
- if (! gNoEvents) {
- gpEventQueue = new EventQueue();
- }
-
- EGLNativeWindowType window = android_createDisplaySurface();
-
- gDisplay = eglGetDisplay(EGL_DEFAULT_DISPLAY);
-
- EGLint majorVersion;
- EGLint minorVersion;
-
- eglInitialize(gDisplay, &majorVersion, &minorVersion);
- checkEGLError("eglInitialize");
-
- EGLint configRequest[] = {
- EGL_SURFACE_TYPE, EGL_PBUFFER_BIT|EGL_WINDOW_BIT,
- EGL_DEPTH_SIZE, 16,
- EGL_NONE
- };
-
- EGLConfig config;
- android::EGLUtils::selectConfigForNativeWindow(gDisplay, configRequest, window, &config);
- gSurface = eglCreateWindowSurface(gDisplay, config, window, NULL);
-
- eglQuerySurface(gDisplay, gSurface, EGL_WIDTH, &gDisplayWidth);
- eglQuerySurface(gDisplay, gSurface, EGL_HEIGHT, &gDisplayHeight);
- fprintf(stderr, "display width = %d, height = %d\n", gDisplayWidth,
- gDisplayHeight);
-
- gContext = eglCreateContext(gDisplay, config, NULL, NULL);
- checkEGLError("eglCreateContext");
- eglMakeCurrent(gDisplay, gSurface, gSurface, gContext);
- checkEGLError("eglMakeCurrent");
-
- printf("vendor : %s\n", glGetString(GL_VENDOR));
- printf("renderer : %s\n", glGetString(GL_RENDERER));
- printf("version : %s\n", glGetString(GL_VERSION));
- printf("extensions: %s\n", glGetString(GL_EXTENSIONS));
-
- return 0;
-}
-
-// Quick and dirty implementation of absolute pointer events...
-
-bool lastAbsDown = false;
-bool absDown = false;
-bool absChanged = false;
-unsigned long long absDownTime = 0;
-int absX = 0;
-int absY = 0;
-int absPressure = 0;
-int absSize = 0;
-int lastAbsX = 0;
-int lastAbsY = 0;
-int lastAbsPressure = 0;
-int lastAbsSize = 0;
-
-
-void checkEvents() {
-
- if (gpEventQueue == NULL) {
- return;
- }
- while(true) {
- EventQueue::Event* pEvent = gpEventQueue->getEvent();
- if (pEvent == NULL) {
- return;
- }
-#if 1
- printf("Event deviceId: %d, type: %d, scancode: %d, keyCode: %d, flags: %d, value: %d, when: %llu\n",
- pEvent->deviceId, pEvent->type, pEvent->scancode,
- pEvent->keycode, pEvent->flags, pEvent->value, pEvent->when);
-#endif
- switch (pEvent->type) {
- case EV_KEY: // Keyboard input
- if (pEvent->scancode == BTN_TOUCH) {
- absDown = pEvent->value != 0;
- absChanged = true;
- }
- else {
- AndroidEvent(pEvent->value, pEvent->keycode);
- }
- break;
-
- case EV_ABS:
- if (pEvent->scancode == ABS_X) {
- absX = pEvent->value;
- absChanged = true;
- } else if (pEvent->scancode == ABS_Y) {
- absY = pEvent->value;
- absChanged = true;
- } else if (pEvent->scancode == ABS_PRESSURE) {
- absPressure = pEvent->value;
- absChanged = true;
- } else if (pEvent->scancode == ABS_TOOL_WIDTH) {
- absSize = pEvent->value;
- absChanged = true;
- }
-
- case EV_SYN:
- {
- if (absChanged) {
- absChanged = false;
- int action;
- if (absDown != lastAbsDown) {
- lastAbsDown = absDown;
- if (absDown) {
- action = EventQueue::MOTION_ACTION_DOWN;
- absDownTime = pEvent->when;
- } else {
- action = EventQueue::MOTION_ACTION_UP;
- absX = lastAbsX;
- absY = lastAbsY;
- absPressure = lastAbsPressure;
- absSize = lastAbsSize;
- }
- } else {
- action = EventQueue::MOTION_ACTION_MOVE;
- }
- float scaledX = absX;
- float scaledY = absY;
- float scaledPressure = 1.0f;
- float scaledSize = 0;
-#if 0
- if (di != null) {
- if (di.absX != null) {
- scaledX = ((scaledX-di.absX.minValue)
- / di.absX.range)
- * (mDisplay.getWidth()-1);
- }
- if (di.absY != null) {
- scaledY = ((scaledY-di.absY.minValue)
- / di.absY.range)
- * (mDisplay.getHeight()-1);
- }
- if (di.absPressure != null) {
- scaledPressure =
- ((absPressure-di.absPressure.minValue)
- / (float)di.absPressure.range);
- }
- if (di.absSize != null) {
- scaledSize =
- ((absSize-di.absSize.minValue)
- / (float)di.absSize.range);
- }
- }
-#endif
-
- unsigned long long whenMS = pEvent->when / 1000000;
- AndroidMotionEvent(whenMS, action,
- scaledX, scaledY, scaledPressure, scaledSize,
- pEvent->deviceId);
- lastAbsX = absX;
- lastAbsY = absY;
- }
- }
- break;
-
- default:
- break;
- }
- gpEventQueue->recycleEvent(pEvent);
- }
-}
-
-int main(int argc, char** argv) {
- fprintf(stderr, "Welcome to stand-alone Android quake.\n");
- AndroidInitArgs(argc, argv);
-
- int result = init(argc, argv);
- if (result) {
- return result;
- }
-
- if (!AndroidInit()) {
- return 1;
- }
-
- while(true) {
- AndroidStep(gDisplayWidth, gDisplayHeight);
- checkGLError("AndroidStep");
- eglSwapBuffers(gDisplay, gSurface);
- checkEGLError("eglSwapBuffers");
- checkEvents();
- }
- return 0;
-}