diff options
Diffstat (limited to 'emulator/opengl/tests/emulator_test_renderer/main.cpp')
-rw-r--r-- | emulator/opengl/tests/emulator_test_renderer/main.cpp | 222 |
1 files changed, 0 insertions, 222 deletions
diff --git a/emulator/opengl/tests/emulator_test_renderer/main.cpp b/emulator/opengl/tests/emulator_test_renderer/main.cpp deleted file mode 100644 index 06abce7..0000000 --- a/emulator/opengl/tests/emulator_test_renderer/main.cpp +++ /dev/null @@ -1,222 +0,0 @@ -/* -* Copyright (C) 2011 The Android Open Source Project -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ -#undef HAVE_MALLOC_H -#include <SDL.h> -#include <SDL_syswm.h> -#include <stdio.h> -#include <string.h> -#include "libOpenglRender/render_api.h" -#include <EventInjector.h> - -static int convert_keysym(int sym); // forward - -#ifdef __linux__ -#include <X11/Xlib.h> -#endif -#ifdef _WIN32 - -#include <winsock2.h> -int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) -#else -int main(int argc, char *argv[]) -#endif -{ - int portNum = 22468; - int winWidth = 320; - int winHeight = 480; - int width, height; - int mouseDown = 0; - const char* env = getenv("ANDROID_WINDOW_SIZE"); - FBNativeWindowType windowId = NULL; - EventInjector* injector; - int consolePort = 5554; - - if (env && sscanf(env, "%dx%d", &width, &height) == 2) { - winWidth = width; - winHeight = height; - } - -#ifdef __linux__ - // some OpenGL implementations may call X functions - // it is safer to synchronize all X calls made by all the - // rendering threads. (although the calls we do are locked - // in the FrameBuffer singleton object). - XInitThreads(); -#endif - - // - // Inialize SDL window - // - if (SDL_Init(SDL_INIT_NOPARACHUTE | SDL_INIT_VIDEO)) { - fprintf(stderr,"SDL init failed: %s\n", SDL_GetError()); - return -1; - } - - SDL_Surface *surface = SDL_SetVideoMode(winWidth, winHeight, 32, SDL_SWSURFACE); - if (surface == NULL) { - fprintf(stderr,"Failed to set video mode: %s\n", SDL_GetError()); - return -1; - } - - SDL_SysWMinfo wminfo; - memset(&wminfo, 0, sizeof(wminfo)); - SDL_GetWMInfo(&wminfo); -#ifdef _WIN32 - windowId = wminfo.window; - WSADATA wsaData; - int rc = WSAStartup( MAKEWORD(2,2), &wsaData); - if (rc != 0) { - printf( "could not initialize Winsock\n" ); - } -#elif __linux__ - windowId = wminfo.info.x11.window; -#elif __APPLE__ - windowId = wminfo.nsWindowPtr; -#endif - - printf("initializing renderer process\n"); - - // - // initialize OpenGL renderer to render in our window - // - bool inited = initOpenGLRenderer(winWidth, winHeight, portNum); - if (!inited) { - return -1; - } - printf("renderer process started\n"); - - float zRot = 0.0f; - inited = createOpenGLSubwindow(windowId, 0, 0, - winWidth, winHeight, zRot); - if (!inited) { - printf("failed to create OpenGL subwindow\n"); - stopOpenGLRenderer(); - return -1; - } - int subwinWidth = winWidth; - int subwinHeight = winHeight; - - injector = new EventInjector(consolePort); - - // Just wait until the window is closed - SDL_Event ev; - - for (;;) { - injector->wait(1000/15); - injector->poll(); - - while (SDL_PollEvent(&ev)) { - switch (ev.type) { - case SDL_MOUSEBUTTONDOWN: - if (!mouseDown) { - injector->sendMouseDown(ev.button.x, ev.button.y); - mouseDown = 1; - } - break; - case SDL_MOUSEBUTTONUP: - if (mouseDown) { - injector->sendMouseUp(ev.button.x,ev.button.y); - mouseDown = 0; - } - break; - case SDL_MOUSEMOTION: - if (mouseDown) - injector->sendMouseMotion(ev.button.x,ev.button.y); - break; - - case SDL_KEYDOWN: -#ifdef __APPLE__ - /* special code to deal with Command-Q properly */ - if (ev.key.keysym.sym == SDLK_q && - ev.key.keysym.mod & KMOD_META) { - goto EXIT; - } -#endif - injector->sendKeyDown(convert_keysym(ev.key.keysym.sym)); - - if (ev.key.keysym.sym == SDLK_KP_MINUS) { - subwinWidth /= 2; - subwinHeight /= 2; - - bool stat = destroyOpenGLSubwindow(); - printf("destroy subwin returned %d\n", stat); - stat = createOpenGLSubwindow(windowId, - (winWidth - subwinWidth) / 2, - (winHeight - subwinHeight) / 2, - subwinWidth, subwinHeight, - zRot); - printf("create subwin returned %d\n", stat); - } - else if (ev.key.keysym.sym == SDLK_KP_PLUS) { - subwinWidth *= 2; - subwinHeight *= 2; - - bool stat = destroyOpenGLSubwindow(); - printf("destroy subwin returned %d\n", stat); - stat = createOpenGLSubwindow(windowId, - (winWidth - subwinWidth) / 2, - (winHeight - subwinHeight) / 2, - subwinWidth, subwinHeight, - zRot); - printf("create subwin returned %d\n", stat); - } - else if (ev.key.keysym.sym == SDLK_KP_MULTIPLY) { - zRot += 10.0f; - setOpenGLDisplayRotation(zRot); - } - else if (ev.key.keysym.sym == SDLK_KP_ENTER) { - repaintOpenGLDisplay(); - } - break; - case SDL_KEYUP: - injector->sendKeyUp(convert_keysym(ev.key.keysym.sym)); - break; - case SDL_QUIT: - goto EXIT; - } - } - } -EXIT: - // - // stop the renderer - // - printf("stopping the renderer process\n"); - stopOpenGLRenderer(); - - return 0; -} - -static int convert_keysym(int sym) -{ -#define EE(x,y) SDLK_##x, EventInjector::KEY_##y, - static const int keymap[] = { - EE(LEFT,LEFT) - EE(RIGHT,RIGHT) - EE(DOWN,DOWN) - EE(UP,UP) - EE(RETURN,ENTER) - EE(F1,SOFT1) - EE(ESCAPE,BACK) - EE(HOME,HOME) - -1 - }; - int nn; - for (nn = 0; keymap[nn] >= 0; nn += 2) { - if (keymap[nn] == sym) - return keymap[nn+1]; - } - return sym; -} |