aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid 'Digit' Turner <digit@google.com>2015-03-20 22:17:12 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-03-20 22:17:12 +0000
commitc714e27a4ef2f451bd0517de73797405dcdf683b (patch)
tree33b7e4f6de969d379a823543923d0750da54843a
parentfc2a7dfe9350400514c8e21023ea2ef46266f712 (diff)
parentddb5d875c38022441d4b2e9de3b874b5e1c4df9b (diff)
downloadsdk-c714e27a4ef2f451bd0517de73797405dcdf683b.zip
sdk-c714e27a4ef2f451bd0517de73797405dcdf683b.tar.gz
sdk-c714e27a4ef2f451bd0517de73797405dcdf683b.tar.bz2
am ddb5d875: am 972e1c6d: Merge "emulator/opengl: Cleanup build files + remove obsolete tests."
* commit 'ddb5d875c38022441d4b2e9de3b874b5e1c4df9b': emulator/opengl: Cleanup build files + remove obsolete tests.
-rw-r--r--emulator/opengl/Android.mk19
-rw-r--r--emulator/opengl/googletest.mk20
-rw-r--r--emulator/opengl/host/libs/GLESv1_dec/Android.mk18
-rw-r--r--emulator/opengl/host/libs/GLESv2_dec/Android.mk18
-rw-r--r--emulator/opengl/host/libs/Translator/EGL/Android.mk12
-rw-r--r--emulator/opengl/host/libs/Translator/GLES_CM/Android.mk18
-rw-r--r--emulator/opengl/host/libs/Translator/GLES_V2/Android.mk11
-rw-r--r--emulator/opengl/host/libs/Translator/GLcommon/Android.mk23
-rw-r--r--emulator/opengl/host/libs/libOpenglRender/Android.mk25
-rw-r--r--emulator/opengl/host/libs/renderControl_dec/Android.mk15
-rw-r--r--emulator/opengl/host/renderer/Android.mk14
-rw-r--r--emulator/opengl/host/renderer/main.cpp169
-rw-r--r--emulator/opengl/sdl.mk25
-rw-r--r--emulator/opengl/shared/OpenglCodecCommon/Android.mk15
-rw-r--r--emulator/opengl/shared/emugl/common/Android.mk32
-rw-r--r--emulator/opengl/tests/EGL_host_wrapper/Android.mk16
-rw-r--r--emulator/opengl/tests/EGL_host_wrapper/egl.cpp277
-rw-r--r--emulator/opengl/tests/EGL_host_wrapper/egl_dispatch.cpp77
-rw-r--r--emulator/opengl/tests/EGL_host_wrapper/egl_dispatch.h115
-rw-r--r--emulator/opengl/tests/EGL_host_wrapper/egl_ftable.h66
-rw-r--r--emulator/opengl/tests/EGL_host_wrapper/egl_proc.h68
-rw-r--r--emulator/opengl/tests/emulator_test_renderer/Android.mk13
-rw-r--r--emulator/opengl/tests/emulator_test_renderer/main.cpp222
-rw-r--r--emulator/opengl/tests/event_injector/Android.mk13
-rw-r--r--emulator/opengl/tests/event_injector/EventInjector.cpp76
-rw-r--r--emulator/opengl/tests/event_injector/EventInjector.h59
-rw-r--r--emulator/opengl/tests/event_injector/emulator-console.c345
-rw-r--r--emulator/opengl/tests/event_injector/emulator-console.h55
-rw-r--r--emulator/opengl/tests/event_injector/iolooper-select.c274
-rw-r--r--emulator/opengl/tests/event_injector/iolooper.h91
-rw-r--r--emulator/opengl/tests/event_injector/sockets.c1550
-rw-r--r--emulator/opengl/tests/event_injector/sockets.h432
-rw-r--r--emulator/opengl/tests/translator_tests/GLES_CM/Android.mk28
-rw-r--r--emulator/opengl/tests/translator_tests/GLES_CM/triangleCM.cpp460
-rw-r--r--emulator/opengl/tests/translator_tests/GLES_V2/Android.mk25
-rw-r--r--emulator/opengl/tests/translator_tests/GLES_V2/triangleV2.cpp443
-rw-r--r--emulator/opengl/tests/translator_tests/MacCommon/Android.mk13
-rw-r--r--emulator/opengl/tests/translator_tests/MacCommon/setup_gl.m35
-rw-r--r--emulator/opengl/tests/ut_rendercontrol_dec/Android.mk6
-rw-r--r--emulator/opengl/tests/ut_rendercontrol_dec/ut_rendercontrol.attrib4
-rw-r--r--emulator/opengl/tests/ut_rendercontrol_dec/ut_rendercontrol.in11
-rw-r--r--emulator/opengl/tests/ut_rendercontrol_dec/ut_rendercontrol.types2
-rw-r--r--emulator/opengl/tests/ut_rendercontrol_dec/ut_rendercontrol_types.h17
-rw-r--r--emulator/opengl/tests/ut_rendercontrol_enc/Android.mk8
-rw-r--r--emulator/opengl/tests/ut_renderer/Android.mk30
-rw-r--r--emulator/opengl/tests/ut_renderer/NativeWindowing.h28
-rw-r--r--emulator/opengl/tests/ut_renderer/ReadBuffer.cpp53
-rw-r--r--emulator/opengl/tests/ut_renderer/ReadBuffer.h36
-rw-r--r--emulator/opengl/tests/ut_renderer/Renderer.cpp183
-rw-r--r--emulator/opengl/tests/ut_renderer/Renderer.h62
-rw-r--r--emulator/opengl/tests/ut_renderer/RendererContext.cpp66
-rw-r--r--emulator/opengl/tests/ut_renderer/RendererContext.h127
-rw-r--r--emulator/opengl/tests/ut_renderer/RendererObject.h29
-rw-r--r--emulator/opengl/tests/ut_renderer/RendererSurface.cpp108
-rw-r--r--emulator/opengl/tests/ut_renderer/RendererSurface.h52
-rw-r--r--emulator/opengl/tests/ut_renderer/RenderingThread.cpp387
-rw-r--r--emulator/opengl/tests/ut_renderer/RenderingThread.h117
-rw-r--r--emulator/opengl/tests/ut_renderer/X11RendererSurface.cpp69
-rw-r--r--emulator/opengl/tests/ut_renderer/X11RendererSurface.h37
-rw-r--r--emulator/opengl/tests/ut_renderer/X11Windowing.cpp131
-rw-r--r--emulator/opengl/tests/ut_renderer/X11Windowing.h27
-rw-r--r--emulator/opengl/tests/ut_renderer/ut_renderer.cpp63
62 files changed, 84 insertions, 6756 deletions
diff --git a/emulator/opengl/Android.mk b/emulator/opengl/Android.mk
index 7906fdd..244b874 100644
--- a/emulator/opengl/Android.mk
+++ b/emulator/opengl/Android.mk
@@ -21,12 +21,6 @@ ifeq ($(BUILD_STANDALONE_EMULATOR),true)
EMUGL_COMMON_INCLUDES := $(EMUGL_PATH)/host/libs/Translator/include
endif
-ifeq ($(BUILD_STANDALONE_EMULATOR),true)
-EMUGL_BUILD_64BITS := $(strip $(EMULATOR_BUILD_64BITS))
-else
-EMUGL_BUILD_64BITS := true
-endif
-
# common cflags used by several modules
# This is always set to a module's LOCAL_CFLAGS
# See the definition of emugl-begin-module in common.mk
@@ -79,25 +73,12 @@ include $(EMUGL_PATH)/shared/OpenglCodecCommon/Android.mk
include $(EMUGL_PATH)/host/libs/GLESv1_dec/Android.mk
include $(EMUGL_PATH)/host/libs/GLESv2_dec/Android.mk
include $(EMUGL_PATH)/host/libs/renderControl_dec/Android.mk
-include $(EMUGL_PATH)/tests/ut_rendercontrol_dec/Android.mk
include $(EMUGL_PATH)/host/libs/Translator/GLcommon/Android.mk
include $(EMUGL_PATH)/host/libs/Translator/GLES_CM/Android.mk
include $(EMUGL_PATH)/host/libs/Translator/GLES_V2/Android.mk
include $(EMUGL_PATH)/host/libs/Translator/EGL/Android.mk
-# Required to declare SDL-related flags for some host tests.
-include $(EMUGL_PATH)/sdl.mk
-
# Host shared libraries
include $(EMUGL_PATH)/host/libs/libOpenglRender/Android.mk
-# Host executables
-include $(EMUGL_PATH)/host/renderer/Android.mk
-
-# Host unit-test for the renderer.
-
-include $(EMUGL_PATH)/tests/translator_tests/MacCommon/Android.mk
-include $(EMUGL_PATH)/tests/translator_tests/GLES_CM/Android.mk
-include $(EMUGL_PATH)/tests/translator_tests/GLES_V2/Android.mk
-
endif # BUILD_EMULATOR_HOST_OPENGL == true
diff --git a/emulator/opengl/googletest.mk b/emulator/opengl/googletest.mk
index 8147874..7531394 100644
--- a/emulator/opengl/googletest.mk
+++ b/emulator/opengl/googletest.mk
@@ -30,14 +30,12 @@ $(call emugl-export,C_INCLUDES,$(LOCAL_PATH)/include)
$(call emugl-export,LDLIBS,$(common_LDLIBS))
$(call emugl-end-module)
-ifdef EMUGL_BUILD_64BITS
- $(call emugl-begin-host64-static-library,lib64emugl_gtest)
- LOCAL_SRC_FILES := $(common_SRC_FILES)
- LOCAL_CFLAGS += $(common_CFLAGS)
- LOCAL_C_INCLUDES += $(LOCAL_PATH)/include
- LOCAL_CPP_EXTENSION := .cc
- $(call emugl-export,C_INCLUDES,$(LOCAL_PATH)/include)
- $(call emugl-export,CFLAGS,-m64)
- $(call emugl-export,LDLIBS,$(common_LDLIBS) -m64)
- $(call emugl-end-module)
-endif # EMUGL_BUILD_64BITS
+$(call emugl-begin-host64-static-library,lib64emugl_gtest)
+LOCAL_SRC_FILES := $(common_SRC_FILES)
+LOCAL_CFLAGS += $(common_CFLAGS)
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/include
+LOCAL_CPP_EXTENSION := .cc
+$(call emugl-export,C_INCLUDES,$(LOCAL_PATH)/include)
+$(call emugl-export,LDLIBS,$(common_LDLIBS))
+$(call emugl-end-module)
+
diff --git a/emulator/opengl/host/libs/GLESv1_dec/Android.mk b/emulator/opengl/host/libs/GLESv1_dec/Android.mk
index e0eca6e..c9db93e 100644
--- a/emulator/opengl/host/libs/GLESv1_dec/Android.mk
+++ b/emulator/opengl/host/libs/GLESv1_dec/Android.mk
@@ -24,18 +24,16 @@ $(call emugl-end-module)
### host library, 64-bit ####################################
-ifdef EMUGL_BUILD_64BITS
- $(call emugl-begin-host64-static-library,lib64GLESv1_dec)
+$(call emugl-begin-host64-static-library,lib64GLESv1_dec)
- $(call emugl-import, lib64OpenglCodecCommon)
- $(call emugl-export,C_INCLUDES,$(LOCAL_PATH))
+$(call emugl-import, lib64OpenglCodecCommon)
+$(call emugl-export,C_INCLUDES,$(LOCAL_PATH))
- $(call emugl-gen-decoder,$(LOCAL_PATH),gl)
+$(call emugl-gen-decoder,$(LOCAL_PATH),gl)
- LOCAL_SRC_FILES := GLDecoder.cpp
+LOCAL_SRC_FILES := GLDecoder.cpp
- $(call emugl-export,CFLAGS,$(host_common_debug_CFLAGS) -m64)
- $(call emugl-export,LDLIBS,-lstdc++)
+$(call emugl-export,CFLAGS,$(host_common_debug_CFLAGS))
+$(call emugl-export,LDLIBS,-lstdc++)
- $(call emugl-end-module)
-endif \ No newline at end of file
+$(call emugl-end-module)
diff --git a/emulator/opengl/host/libs/GLESv2_dec/Android.mk b/emulator/opengl/host/libs/GLESv2_dec/Android.mk
index f658f11..0ad6ddb 100644
--- a/emulator/opengl/host/libs/GLESv2_dec/Android.mk
+++ b/emulator/opengl/host/libs/GLESv2_dec/Android.mk
@@ -22,17 +22,15 @@ LOCAL_SRC_FILES := GL2Decoder.cpp
$(call emugl-end-module)
### host library, 64-bit ####################################
-ifdef EMUGL_BUILD_64BITS
- $(call emugl-begin-host64-static-library,lib64GLESv2_dec)
- $(call emugl-import, lib64OpenglCodecCommon)
- $(call emugl-gen-decoder,$(LOCAL_PATH),gl2)
+$(call emugl-begin-host64-static-library,lib64GLESv2_dec)
+$(call emugl-import, lib64OpenglCodecCommon)
+$(call emugl-gen-decoder,$(LOCAL_PATH),gl2)
- # For gl2_types.h !
- $(call emugl-export,C_INCLUDES,$(LOCAL_PATH))
+# For gl2_types.h !
+$(call emugl-export,C_INCLUDES,$(LOCAL_PATH))
- $(call emugl-export,CFLAGS,$(host_common_debug_CFLAGS) -m64)
+$(call emugl-export,CFLAGS,$(host_common_debug_CFLAGS))
- LOCAL_SRC_FILES := GL2Decoder.cpp
+LOCAL_SRC_FILES := GL2Decoder.cpp
- $(call emugl-end-module)
-endif \ No newline at end of file
+$(call emugl-end-module)
diff --git a/emulator/opengl/host/libs/Translator/EGL/Android.mk b/emulator/opengl/host/libs/Translator/EGL/Android.mk
index 5d1c9b2..298c502 100644
--- a/emulator/opengl/host/libs/Translator/EGL/Android.mk
+++ b/emulator/opengl/host/libs/Translator/EGL/Android.mk
@@ -47,12 +47,10 @@ LOCAL_SRC_FILES := $(host_common_SRC_FILES)
$(call emugl-end-module)
### EGL host implementation, 64-bit ########################
-ifdef EMUGL_BUILD_64BITS
- $(call emugl-begin-host64-shared-library,lib64EGL_translator)
- $(call emugl-import,lib64GLcommon)
+$(call emugl-begin-host64-shared-library,lib64EGL_translator)
+$(call emugl-import,lib64GLcommon)
- LOCAL_LDLIBS += $(host_common_LDLIBS) -m64
- LOCAL_SRC_FILES := $(host_common_SRC_FILES)
+LOCAL_LDLIBS += $(host_common_LDLIBS)
+LOCAL_SRC_FILES := $(host_common_SRC_FILES)
- $(call emugl-end-module)
-endif
+$(call emugl-end-module)
diff --git a/emulator/opengl/host/libs/Translator/GLES_CM/Android.mk b/emulator/opengl/host/libs/Translator/GLES_CM/Android.mk
index c5e7e6d..48cb5c4 100644
--- a/emulator/opengl/host/libs/Translator/GLES_CM/Android.mk
+++ b/emulator/opengl/host/libs/Translator/GLES_CM/Android.mk
@@ -9,23 +9,13 @@ host_common_SRC_FILES := \
### GLES_CM host implementation (On top of OpenGL) ########################
$(call emugl-begin-host-shared-library,libGLES_CM_translator)
-
$(call emugl-import,libGLcommon)
-
LOCAL_SRC_FILES := $(host_common_SRC_FILES)
-
$(call emugl-end-module)
### GLES_CM host implementation, 64-bit ########################
-ifdef EMUGL_BUILD_64BITS
- $(call emugl-begin-host64-shared-library,lib64GLES_CM_translator)
-
- $(call emugl-import,lib64GLcommon)
-
- LOCAL_CFLAGS += -fPIC
- LOCAL_LDLIBS += -m64
- LOCAL_SRC_FILES := $(host_common_SRC_FILES)
-
- $(call emugl-end-module)
-endif \ No newline at end of file
+$(call emugl-begin-host64-shared-library,lib64GLES_CM_translator)
+$(call emugl-import,lib64GLcommon)
+LOCAL_SRC_FILES := $(host_common_SRC_FILES)
+$(call emugl-end-module)
diff --git a/emulator/opengl/host/libs/Translator/GLES_V2/Android.mk b/emulator/opengl/host/libs/Translator/GLES_V2/Android.mk
index 438334a..c96965b 100644
--- a/emulator/opengl/host/libs/Translator/GLES_V2/Android.mk
+++ b/emulator/opengl/host/libs/Translator/GLES_V2/Android.mk
@@ -18,12 +18,9 @@ $(call emugl-end-module)
### GLES_V2 host implementation, 64-bit ##############################
-ifdef EMUGL_BUILD_64BITS
- $(call emugl-begin-host64-shared-library,lib64GLES_V2_translator)
- $(call emugl-import, lib64GLcommon)
+$(call emugl-begin-host64-shared-library,lib64GLES_V2_translator)
+$(call emugl-import, lib64GLcommon)
- LOCAL_LDLIBS += -m64
- LOCAL_SRC_FILES := $(host_common_SRC_FILES)
+LOCAL_SRC_FILES := $(host_common_SRC_FILES)
- $(call emugl-end-module)
-endif \ No newline at end of file
+$(call emugl-end-module)
diff --git a/emulator/opengl/host/libs/Translator/GLcommon/Android.mk b/emulator/opengl/host/libs/Translator/GLcommon/Android.mk
index fdbedad..d1a462d 100644
--- a/emulator/opengl/host/libs/Translator/GLcommon/Android.mk
+++ b/emulator/opengl/host/libs/Translator/GLcommon/Android.mk
@@ -46,16 +46,13 @@ $(call emugl-end-module)
### EGL host implementation, 64-bit ################
-ifdef EMUGL_BUILD_64BITS
- $(call emugl-begin-host64-static-library,lib64GLcommon)
-
- translator_path := $(LOCAL_PATH)/..
- LOCAL_SRC_FILES := $(host_common_SRC_FILES)
- LOCAL_CFLAGS += -fPIC
- $(call emugl-export,LDLIBS,$(host_common_LDLIBS))
- $(call emugl-export,LDFLAGS,$(host_common_LDFLAGS))
- $(call emugl-export,C_INCLUDES,$(LOCAL_PATH)/../include $(EMUGL_PATH)/shared)
- $(call emugl-export,STATIC_LIBRARIES, lib64emugl_common)
-
- $(call emugl-end-module)
-endif \ No newline at end of file
+$(call emugl-begin-host64-static-library,lib64GLcommon)
+
+translator_path := $(LOCAL_PATH)/..
+LOCAL_SRC_FILES := $(host_common_SRC_FILES)
+$(call emugl-export,LDLIBS,$(host_common_LDLIBS))
+$(call emugl-export,LDFLAGS,$(host_common_LDFLAGS))
+$(call emugl-export,C_INCLUDES,$(LOCAL_PATH)/../include $(EMUGL_PATH)/shared)
+$(call emugl-export,STATIC_LIBRARIES, lib64emugl_common)
+
+$(call emugl-end-module)
diff --git a/emulator/opengl/host/libs/libOpenglRender/Android.mk b/emulator/opengl/host/libs/libOpenglRender/Android.mk
index ca5a08a..20567f0 100644
--- a/emulator/opengl/host/libs/libOpenglRender/Android.mk
+++ b/emulator/opengl/host/libs/libOpenglRender/Android.mk
@@ -62,24 +62,21 @@ $(call emugl-end-module)
### host libOpenglRender, 64-bit #########################################
-ifdef EMUGL_BUILD_64BITS
- $(call emugl-begin-host64-shared-library,lib64OpenglRender)
+$(call emugl-begin-host64-shared-library,lib64OpenglRender)
- $(call emugl-import,lib64GLESv1_dec lib64GLESv2_dec lib64_renderControl_dec lib64OpenglCodecCommon)
+$(call emugl-import,lib64GLESv1_dec lib64GLESv2_dec lib64_renderControl_dec lib64OpenglCodecCommon)
- #LOCAL_LDFLAGS += -m64 # adding -m64 here doesn't work, because it somehow appear BEFORE -m32 in command-line.
- LOCAL_LDLIBS += $(host_common_LDLIBS) -m64 # Put -m64 it in LOCAL_LDLIBS instead.
+LOCAL_LDLIBS += $(host_common_LDLIBS)
- LOCAL_SRC_FILES := $(host_common_SRC_FILES)
- $(call emugl-export,C_INCLUDES,$(EMUGL_PATH)/host/include)
- $(call emugl-export,C_INCLUDES,$(LOCAL_PATH))
+LOCAL_SRC_FILES := $(host_common_SRC_FILES)
+$(call emugl-export,C_INCLUDES,$(EMUGL_PATH)/host/include)
+$(call emugl-export,C_INCLUDES,$(LOCAL_PATH))
- # use Translator's egl/gles headers
- LOCAL_C_INCLUDES += $(EMUGL_PATH)/host/libs/Translator/include
+# use Translator's egl/gles headers
+LOCAL_C_INCLUDES += $(EMUGL_PATH)/host/libs/Translator/include
- LOCAL_STATIC_LIBRARIES += lib64emugl_common
+LOCAL_STATIC_LIBRARIES += lib64emugl_common
- $(call emugl-export,CFLAGS,$(host_common_CFLAGS) -m64)
+$(call emugl-export,CFLAGS,$(host_common_CFLAGS))
- $(call emugl-end-module)
-endif \ No newline at end of file
+$(call emugl-end-module)
diff --git a/emulator/opengl/host/libs/renderControl_dec/Android.mk b/emulator/opengl/host/libs/renderControl_dec/Android.mk
index 4a97a93..f1ba595 100644
--- a/emulator/opengl/host/libs/renderControl_dec/Android.mk
+++ b/emulator/opengl/host/libs/renderControl_dec/Android.mk
@@ -10,12 +10,9 @@ $(call emugl-export,C_INCLUDES,$(LOCAL_PATH))
$(call emugl-end-module)
### host library, 64-bit ####################################
-ifdef EMUGL_BUILD_64BITS
- $(call emugl-begin-host64-static-library,lib64_renderControl_dec)
- $(call emugl-import,lib64OpenglCodecCommon)
- $(call emugl-gen-decoder,$(LOCAL_PATH),renderControl)
- # For renderControl_types.h
- $(call emugl-export,C_INCLUDES,$(LOCAL_PATH))
- $(call emugl-export,CFLAGS,-m64)
- $(call emugl-end-module)
-endif \ No newline at end of file
+$(call emugl-begin-host64-static-library,lib64_renderControl_dec)
+$(call emugl-import,lib64OpenglCodecCommon)
+$(call emugl-gen-decoder,$(LOCAL_PATH),renderControl)
+# For renderControl_types.h
+$(call emugl-export,C_INCLUDES,$(LOCAL_PATH))
+$(call emugl-end-module)
diff --git a/emulator/opengl/host/renderer/Android.mk b/emulator/opengl/host/renderer/Android.mk
deleted file mode 100644
index 81dcaf7..0000000
--- a/emulator/opengl/host/renderer/Android.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-LOCAL_PATH:=$(call my-dir)
-
-# host renderer process ###########################
-$(call emugl-begin-host-executable,emulator_renderer)
-$(call emugl-import,libOpenglRender)
-LOCAL_SRC_FILES := main.cpp
-LOCAL_CFLAGS += -O0 -g
-
-ifeq ($(HOST_OS),linux)
-LOCAL_LDLIBS += -lX11
-endif
-
-$(call emugl-end-module)
-
diff --git a/emulator/opengl/host/renderer/main.cpp b/emulator/opengl/host/renderer/main.cpp
deleted file mode 100644
index 470e692..0000000
--- a/emulator/opengl/host/renderer/main.cpp
+++ /dev/null
@@ -1,169 +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.
-*/
-#include "RenderServer.h"
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include "FrameBuffer.h"
-
-#include <sys/types.h>
-#include <unistd.h>
-#include <codec_defs.h>
-#ifdef _WIN32
-#include <winsock2.h>
-#endif
-
-#ifdef __linux__
-#include <X11/Xlib.h>
-#endif
-
-static void printUsage(const char *progName)
-{
- fprintf(stderr, "Usage: %s -windowid <windowid> [options]\n", progName);
- fprintf(stderr, " -windowid <windowid> - window id to render into\n");
- fprintf(stderr, " -x <num> - render subwindow x position\n");
- fprintf(stderr, " -y <num> - render subwindow y position\n");
- fprintf(stderr, " -width <num> - render subwindow width\n");
- fprintf(stderr, " -height <num> - render subwindow height\n");
- exit(-1);
-}
-
-int main(int argc, char *argv[])
-{
- int winX = 0;
- int winY = 0;
- int winWidth = 320;
- int winHeight = 480;
- FBNativeWindowType windowId = 0;
- int iWindowId = 0;
-
- //
- // Parse command line arguments
- //
- for (int i=1; i<argc; i++) {
- if (!strcmp(argv[i], "-windowid")) {
- if (++i >= argc || sscanf(argv[i],"%d", &iWindowId) != 1) {
- printUsage(argv[0]);
- }
- }
- else if (!strncmp(argv[i], "-x", 2)) {
- if (++i >= argc || sscanf(argv[i],"%d", &winX) != 1) {
- printUsage(argv[0]);
- }
- }
- else if (!strncmp(argv[i], "-y", 2)) {
- if (++i >= argc || sscanf(argv[i],"%d", &winY) != 1) {
- printUsage(argv[0]);
- }
- }
- else if (!strncmp(argv[i], "-width", 6)) {
- if (++i >= argc || sscanf(argv[i],"%d", &winWidth) != 1) {
- printUsage(argv[0]);
- }
- }
- else if (!strncmp(argv[i], "-height", 7)) {
- if (++i >= argc || sscanf(argv[i],"%d", &winHeight) != 1) {
- printUsage(argv[0]);
- }
- }
- }
-
- windowId = (FBNativeWindowType)iWindowId;
- if (!windowId) {
- // window id must be provided
- printUsage(argv[0]);
- }
-
-#if 0 //Enable to attach gdb to renderer on startup
- fprintf(stderr, "renderer pid %d , press any key to continue...\n", getpid());
- getchar();
-#else
- fprintf(stderr, "renderer pid %d \n", getpid());
-#endif
-
-#ifdef _WIN32
- WSADATA wsaData;
- int rc = WSAStartup( MAKEWORD(2,2), &wsaData);
- if (rc != 0) {
- printf( "could not initialize Winsock\n" );
- }
-#endif
-
-#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
-
- //
- // initialize Framebuffer
- //
- bool inited = FrameBuffer::initialize(winWidth, winHeight);
- if (!inited) {
- fprintf(stderr,"Failed to initialize Framebuffer\n");
- return -1;
- }
-
- inited = FrameBuffer::setupSubWindow(windowId,
- winX, winY, winWidth, winHeight, 0.0);
- if (!inited) {
- fprintf(stderr,"Failed to create subwindow Framebuffer\n");
- return -1;
- }
-
- //
- // Create and run a render server listening to the given port number
- //
- char addr[256];
- RenderServer *server = RenderServer::create(addr, sizeof(addr));
- if (!server) {
- fprintf(stderr,"Cannot initialize render server\n");
- return -1;
- }
- printf("render server listening at '%s'\n", addr);
-
-#ifndef _WIN32
- //
- // run the server listener loop
- //
- server->main();
-#else
- //
- // on windows we need to handle messages for the
- // created subwindow. So we run the server on a seperate
- // thread and running the windows message pump loop
- // in this main thread.
- //
- server->start();
-
- //
- // Dispatch events for the subwindow
- // During termination of the render server, the FrameBuffer
- // will be finalized, the Framebuffer subwindow will
- // get destroyed and the following loop will exit.
- //
- MSG msg;
- HWND hWnd = FrameBuffer::getFB()->getSubWindow();
- while( GetMessage(&msg, hWnd, 0, 0) > 0 ) {
- TranslateMessage(&msg);
- DispatchMessage(&msg);
- }
-#endif
-
- return 0;
-}
diff --git a/emulator/opengl/sdl.mk b/emulator/opengl/sdl.mk
deleted file mode 100644
index a85ed58..0000000
--- a/emulator/opengl/sdl.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# This contains common definitions used to define a host module to
-# link SDL with the EmuGL test programs.
-
-ifeq ($(BUILD_STANDALONE_EMULATOR),true)
-
-# When using the emulator standalone build, inherit the values from the
-# Makefile that included us.
-EMUGL_SDL_CFLAGS := $(SDL_CFLAGS)
-EMUGL_SDL_LDLIBS := $(SDL_LDLIBS)
-EMUGL_SDL_STATIC_LIBRARIES := emulator_libSDL emulator_libSDLmain
-
-else # BUILD_STANDALONE_EMULATOR != true
-
-# Otherwise, use the prebuilt libraries that come with the platform.
-
-EMUGL_SDL_CONFIG ?= prebuilts/tools/$(HOST_PREBUILT_TAG)/sdl/bin/sdl-config
-EMUGL_SDL_CFLAGS := $(shell $(EMUGL_SDL_CONFIG) --cflags)
-EMUGL_SDL_LDLIBS := $(filter-out %.a %.lib,$(shell $(EMUGL_SDL_CONFIG) --static-libs))
-EMUGL_SDL_STATIC_LIBRARIES := libSDL libSDLmain
-
-ifeq ($(HOST_OS),windows)
-EMUGL_SDL_LDLIBS += -lws2_32
-endif
-
-endif # BUILD_STANDALONE_EMULATOR != true
diff --git a/emulator/opengl/shared/OpenglCodecCommon/Android.mk b/emulator/opengl/shared/OpenglCodecCommon/Android.mk
index 0c3f827..ff680eb 100644
--- a/emulator/opengl/shared/OpenglCodecCommon/Android.mk
+++ b/emulator/opengl/shared/OpenglCodecCommon/Android.mk
@@ -34,14 +34,11 @@ $(call emugl-end-module)
### OpenglCodecCommon host, 64-bit #########################################
-ifdef EMUGL_BUILD_64BITS
- $(call emugl-begin-host64-static-library,lib64OpenglCodecCommon)
+$(call emugl-begin-host64-static-library,lib64OpenglCodecCommon)
- LOCAL_SRC_FILES := $(host_commonSources)
+LOCAL_SRC_FILES := $(host_commonSources)
+$(call emugl-import, lib64emugl_common)
+$(call emugl-export,C_INCLUDES,$(EMUGL_PATH)/host/include/libOpenglRender $(LOCAL_PATH))
+$(call emugl-export,LDLIBS,$(host_commonLdLibs))
+$(call emugl-end-module)
- $(call emugl-import, lib64emugl_common)
- $(call emugl-export,C_INCLUDES,$(EMUGL_PATH)/host/include/libOpenglRender $(LOCAL_PATH))
- $(call emugl-export,CFLAGS,-m64 -fPIC)
- $(call emugl-export,LDLIBS,$(host_commonLdLibs))
- $(call emugl-end-module)
-endif
diff --git a/emulator/opengl/shared/emugl/common/Android.mk b/emulator/opengl/shared/emugl/common/Android.mk
index fb9ab57..6aaa0d9 100644
--- a/emulator/opengl/shared/emugl/common/Android.mk
+++ b/emulator/opengl/shared/emugl/common/Android.mk
@@ -31,14 +31,11 @@ $(call emugl-export,C_INCLUDES,$(EMUGL_PATH)/shared)
$(call emugl-export,LDLIBS,$(host_commonLdLibs))
$(call emugl-end-module)
-ifdef EMUGL_BUILD_64BITS
- $(call emugl-begin-host64-static-library,lib64emugl_common)
- LOCAL_SRC_FILES := $(host_commonSources)
- $(call emugl-export,CFLAGS,-m64 -fPIC)
- $(call emugl-export,C_INCLUDES,$(EMUGL_PATH)/shared)
- $(call emugl-export,LDLIBS,$(host_commonLdLibs))
- $(call emugl-end-module)
-endif
+$(call emugl-begin-host64-static-library,lib64emugl_common)
+LOCAL_SRC_FILES := $(host_commonSources)
+$(call emugl-export,C_INCLUDES,$(EMUGL_PATH)/shared)
+$(call emugl-export,LDLIBS,$(host_commonLdLibs))
+$(call emugl-end-module)
### emugl_common_unittests ##############################################
@@ -58,19 +55,16 @@ LOCAL_SRC_FILES := $(host_commonSources)
$(call emugl-import,libemugl_common libemugl_gtest)
$(call emugl-end-module)
-ifdef EMUGL_BUILD_64BITS
- $(call emugl-begin-host64-executable,emugl64_common_host_unittests)
- LOCAL_SRC_FILES := $(host_commonSources)
- $(call emugl-import,lib64emugl_common lib64emugl_gtest)
- $(call emugl-end-module)
-endif
+$(call emugl-begin-host64-executable,emugl64_common_host_unittests)
+LOCAL_SRC_FILES := $(host_commonSources)
+$(call emugl-import,lib64emugl_common lib64emugl_gtest)
+$(call emugl-end-module)
+
$(call emugl-begin-host-shared-library,libemugl_test_shared_library)
LOCAL_SRC_FILES := testing/test_shared_library.cpp
$(call emugl-end-module)
-ifdef EMUGL_BUILD_64BITS
- $(call emugl-begin-host64-shared-library,lib64emugl_test_shared_library)
- LOCAL_SRC_FILES := testing/test_shared_library.cpp
- $(call emugl-end-module)
-endif
+$(call emugl-begin-host64-shared-library,lib64emugl_test_shared_library)
+LOCAL_SRC_FILES := testing/test_shared_library.cpp
+$(call emugl-end-module)
diff --git a/emulator/opengl/tests/EGL_host_wrapper/Android.mk b/emulator/opengl/tests/EGL_host_wrapper/Android.mk
deleted file mode 100644
index 19d8794..0000000
--- a/emulator/opengl/tests/EGL_host_wrapper/Android.mk
+++ /dev/null
@@ -1,16 +0,0 @@
-ifeq ($(HOST_OS),linux)
-
-LOCAL_PATH := $(call my-dir)
-
-$(call emugl-begin-host-static-library,libEGL_host_wrapper)
-
-LOCAL_SRC_FILES := \
- egl.cpp \
- egl_dispatch.cpp
-
-$(call emugl-export,LDLIBS,-ldl -pthread)
-$(call emugl-export,C_INCLUDES,$(LOCAL_PATH))
-
-$(call emugl-end-module)
-
-endif # HOST_OS == linux
diff --git a/emulator/opengl/tests/EGL_host_wrapper/egl.cpp b/emulator/opengl/tests/EGL_host_wrapper/egl.cpp
deleted file mode 100644
index 6fa27ac..0000000
--- a/emulator/opengl/tests/EGL_host_wrapper/egl.cpp
+++ /dev/null
@@ -1,277 +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.
-*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "egl_dispatch.h"
-#include "egl_ftable.h"
-#include <pthread.h>
-
-#define EGL_LIB "ANDROID_EGL_LIB"
-
-static struct egl_dispatch *s_dispatch = NULL;
-static pthread_once_t eglDispatchInitialized = PTHREAD_ONCE_INIT;
-
-void initEglDispatch()
-{
- //
- // Load back-end EGL implementation library
- //
- char *eglLib = (char *) "libEGL.so";
- if (getenv(EGL_LIB) != NULL) {
- eglLib = getenv(EGL_LIB);
- }
-
- s_dispatch = loadEGL(eglLib);
- if (!s_dispatch) {
- fprintf(stderr,"FATAL ERROR: Could not load EGL lib [%s]\n", eglLib);
- exit(-1);
- }
-}
-
-static struct egl_dispatch *getDispatch()
-{
- pthread_once(&eglDispatchInitialized, initEglDispatch);
- return s_dispatch;
-}
-
-__eglMustCastToProperFunctionPointerType eglGetProcAddress(const char *procname)
-{
- for (int i=0; i<egl_num_funcs; i++) {
- if (!strcmp(egl_funcs_by_name[i].name, procname)) {
- return (__eglMustCastToProperFunctionPointerType)egl_funcs_by_name[i].proc;
- }
- }
-
- return getDispatch()->eglGetProcAddress(procname);
-}
-
-//////////////// Path through functions //////////
-
-EGLint eglGetError()
-{
- return getDispatch()->eglGetError();
-}
-
-EGLDisplay eglGetDisplay(EGLNativeDisplayType display_id)
-{
- return getDispatch()->eglGetDisplay(display_id);
-}
-
-EGLBoolean eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor)
-{
- return getDispatch()->eglInitialize(dpy, major, minor);
-}
-
-EGLBoolean eglTerminate(EGLDisplay dpy)
-{
- return getDispatch()->eglTerminate(dpy);
-}
-
-const char* eglQueryString(EGLDisplay dpy, EGLint name)
-{
- return getDispatch()->eglQueryString(dpy, name);
-}
-
-EGLBoolean eglGetConfigs(EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config)
-{
- return getDispatch()->eglGetConfigs(dpy, configs, config_size, num_config);
-}
-
-EGLBoolean eglChooseConfig(EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config)
-{
- return getDispatch()->eglChooseConfig(dpy, attrib_list, configs, config_size, num_config);
-}
-
-EGLBoolean eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value)
-{
- return getDispatch()->eglGetConfigAttrib(dpy, config, attribute, value);
-}
-
-EGLSurface eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list)
-{
- return getDispatch()->eglCreateWindowSurface(dpy, config, win, attrib_list);
-}
-
-EGLSurface eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list)
-{
- return getDispatch()->eglCreatePbufferSurface(dpy, config, attrib_list);
-}
-
-EGLSurface eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list)
-{
- return getDispatch()->eglCreatePixmapSurface(dpy, config, pixmap, attrib_list);
-}
-
-EGLBoolean eglDestroySurface(EGLDisplay dpy, EGLSurface surface)
-{
- return getDispatch()->eglDestroySurface(dpy, surface);
-}
-
-EGLBoolean eglQuerySurface(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value)
-{
- return getDispatch()->eglQuerySurface(dpy, surface, attribute, value);
-}
-
-EGLBoolean eglBindAPI(EGLenum api)
-{
- return getDispatch()->eglBindAPI(api);
-}
-
-EGLenum eglQueryAPI()
-{
- return getDispatch()->eglQueryAPI();
-}
-
-EGLBoolean eglWaitClient()
-{
- return getDispatch()->eglWaitClient();
-}
-
-EGLBoolean eglReleaseThread()
-{
- return getDispatch()->eglReleaseThread();
-}
-
-EGLSurface eglCreatePbufferFromClientBuffer(EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list)
-{
- return getDispatch()->eglCreatePbufferFromClientBuffer(dpy, buftype, buffer, config, attrib_list);
-}
-
-EGLBoolean eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value)
-{
- return getDispatch()->eglSurfaceAttrib(dpy, surface, attribute, value);
-}
-
-EGLBoolean eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer)
-{
- return getDispatch()->eglBindTexImage(dpy, surface, buffer);
-}
-
-EGLBoolean eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer)
-{
- return getDispatch()->eglReleaseTexImage(dpy, surface, buffer);
-}
-
-EGLBoolean eglSwapInterval(EGLDisplay dpy, EGLint interval)
-{
- return getDispatch()->eglSwapInterval(dpy, interval);
-}
-
-EGLContext eglCreateContext(EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list)
-{
- return getDispatch()->eglCreateContext(dpy, config, share_context, attrib_list);
-}
-
-EGLBoolean eglDestroyContext(EGLDisplay dpy, EGLContext ctx)
-{
- return getDispatch()->eglDestroyContext(dpy, ctx);
-}
-
-EGLBoolean eglMakeCurrent(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx)
-{
- return getDispatch()->eglMakeCurrent(dpy, draw, read, ctx);
-}
-
-EGLContext eglGetCurrentContext()
-{
- return getDispatch()->eglGetCurrentContext();
-}
-
-EGLSurface eglGetCurrentSurface(EGLint readdraw)
-{
- return getDispatch()->eglGetCurrentSurface(readdraw);
-}
-
-EGLDisplay eglGetCurrentDisplay()
-{
- return getDispatch()->eglGetCurrentDisplay();
-}
-
-EGLBoolean eglQueryContext(EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value)
-{
- return getDispatch()->eglQueryContext(dpy, ctx, attribute, value);
-}
-
-EGLBoolean eglWaitGL()
-{
- return getDispatch()->eglWaitGL();
-}
-
-EGLBoolean eglWaitNative(EGLint engine)
-{
- return getDispatch()->eglWaitNative(engine);
-}
-
-EGLBoolean eglSwapBuffers(EGLDisplay dpy, EGLSurface surface)
-{
- return getDispatch()->eglSwapBuffers(dpy, surface);
-}
-
-EGLBoolean eglCopyBuffers(EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target)
-{
- return getDispatch()->eglCopyBuffers(dpy, surface, target);
-}
-
-EGLBoolean eglLockSurfaceKHR(EGLDisplay display, EGLSurface surface, const EGLint *attrib_list)
-{
- return getDispatch()->eglLockSurfaceKHR(display, surface, attrib_list);
-}
-
-EGLBoolean eglUnlockSurfaceKHR(EGLDisplay display, EGLSurface surface)
-{
- return getDispatch()->eglUnlockSurfaceKHR(display, surface);
-}
-
-EGLImageKHR eglCreateImageKHR(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list)
-{
- return getDispatch()->eglCreateImageKHR(dpy, ctx, target, buffer, attrib_list);
-}
-
-EGLBoolean eglDestroyImageKHR(EGLDisplay dpy, EGLImageKHR image)
-{
- return getDispatch()->eglDestroyImageKHR(dpy, image);
-}
-
-EGLSyncKHR eglCreateSyncKHR(EGLDisplay dpy, EGLenum type, const EGLint *attrib_list)
-{
- return getDispatch()->eglCreateSyncKHR(dpy, type, attrib_list);
-}
-
-EGLBoolean eglDestroySyncKHR(EGLDisplay dpy, EGLSyncKHR sync)
-{
- return getDispatch()->eglDestroySyncKHR(dpy, sync);
-}
-
-EGLint eglClientWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout)
-{
- return getDispatch()->eglClientWaitSyncKHR(dpy, sync, flags, timeout);
-}
-
-EGLBoolean eglSignalSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode)
-{
- return getDispatch()->eglSignalSyncKHR(dpy, sync, mode);
-}
-
-EGLBoolean eglGetSyncAttribKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value)
-{
- return getDispatch()->eglGetSyncAttribKHR(dpy, sync, attribute, value);
-}
-
-EGLBoolean eglSetSwapRectangleANDROID(EGLDisplay dpy, EGLSurface draw, EGLint left, EGLint top, EGLint width, EGLint height)
-{
- return getDispatch()->eglSetSwapRectangleANDROID(dpy, draw, left, top, width, height);
-}
diff --git a/emulator/opengl/tests/EGL_host_wrapper/egl_dispatch.cpp b/emulator/opengl/tests/EGL_host_wrapper/egl_dispatch.cpp
deleted file mode 100644
index a9b8214..0000000
--- a/emulator/opengl/tests/EGL_host_wrapper/egl_dispatch.cpp
+++ /dev/null
@@ -1,77 +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.
-*/
-#include <stdio.h>
-#include <dlfcn.h>
-#include "egl_dispatch.h"
-
-
-egl_dispatch *loadEGL(const char *p_eglPath)
-{
- void *libEGL = dlopen(p_eglPath, RTLD_NOW);
- if (!libEGL) {
- return NULL;
- }
-
- egl_dispatch *disp = new egl_dispatch;
-
- void *ptr;
- ptr = dlsym(libEGL,"eglGetError"); disp->set_eglGetError((eglGetError_t)ptr);
- ptr = dlsym(libEGL,"eglGetDisplay"); disp->set_eglGetDisplay((eglGetDisplay_t)ptr);
- ptr = dlsym(libEGL,"eglInitialize"); disp->set_eglInitialize((eglInitialize_t)ptr);
- ptr = dlsym(libEGL,"eglTerminate"); disp->set_eglTerminate((eglTerminate_t)ptr);
- ptr = dlsym(libEGL,"eglQueryString"); disp->set_eglQueryString((eglQueryString_t)ptr);
- ptr = dlsym(libEGL,"eglGetConfigs"); disp->set_eglGetConfigs((eglGetConfigs_t)ptr);
- ptr = dlsym(libEGL,"eglChooseConfig"); disp->set_eglChooseConfig((eglChooseConfig_t)ptr);
- ptr = dlsym(libEGL,"eglGetConfigAttrib"); disp->set_eglGetConfigAttrib((eglGetConfigAttrib_t)ptr);
- ptr = dlsym(libEGL,"eglCreateWindowSurface"); disp->set_eglCreateWindowSurface((eglCreateWindowSurface_t)ptr);
- ptr = dlsym(libEGL,"eglCreatePbufferSurface"); disp->set_eglCreatePbufferSurface((eglCreatePbufferSurface_t)ptr);
- ptr = dlsym(libEGL,"eglCreatePixmapSurface"); disp->set_eglCreatePixmapSurface((eglCreatePixmapSurface_t)ptr);
- ptr = dlsym(libEGL,"eglDestroySurface"); disp->set_eglDestroySurface((eglDestroySurface_t)ptr);
- ptr = dlsym(libEGL,"eglQuerySurface"); disp->set_eglQuerySurface((eglQuerySurface_t)ptr);
- ptr = dlsym(libEGL,"eglBindAPI"); disp->set_eglBindAPI((eglBindAPI_t)ptr);
- ptr = dlsym(libEGL,"eglQueryAPI"); disp->set_eglQueryAPI((eglQueryAPI_t)ptr);
- ptr = dlsym(libEGL,"eglWaitClient"); disp->set_eglWaitClient((eglWaitClient_t)ptr);
- ptr = dlsym(libEGL,"eglReleaseThread"); disp->set_eglReleaseThread((eglReleaseThread_t)ptr);
- ptr = dlsym(libEGL,"eglCreatePbufferFromClientBuffer"); disp->set_eglCreatePbufferFromClientBuffer((eglCreatePbufferFromClientBuffer_t)ptr);
- ptr = dlsym(libEGL,"eglSurfaceAttrib"); disp->set_eglSurfaceAttrib((eglSurfaceAttrib_t)ptr);
- ptr = dlsym(libEGL,"eglBindTexImage"); disp->set_eglBindTexImage((eglBindTexImage_t)ptr);
- ptr = dlsym(libEGL,"eglReleaseTexImage"); disp->set_eglReleaseTexImage((eglReleaseTexImage_t)ptr);
- ptr = dlsym(libEGL,"eglSwapInterval"); disp->set_eglSwapInterval((eglSwapInterval_t)ptr);
- ptr = dlsym(libEGL,"eglCreateContext"); disp->set_eglCreateContext((eglCreateContext_t)ptr);
- ptr = dlsym(libEGL,"eglDestroyContext"); disp->set_eglDestroyContext((eglDestroyContext_t)ptr);
- ptr = dlsym(libEGL,"eglMakeCurrent"); disp->set_eglMakeCurrent((eglMakeCurrent_t)ptr);
- ptr = dlsym(libEGL,"eglGetCurrentContext"); disp->set_eglGetCurrentContext((eglGetCurrentContext_t)ptr);
- ptr = dlsym(libEGL,"eglGetCurrentSurface"); disp->set_eglGetCurrentSurface((eglGetCurrentSurface_t)ptr);
- ptr = dlsym(libEGL,"eglGetCurrentDisplay"); disp->set_eglGetCurrentDisplay((eglGetCurrentDisplay_t)ptr);
- ptr = dlsym(libEGL,"eglQueryContext"); disp->set_eglQueryContext((eglQueryContext_t)ptr);
- ptr = dlsym(libEGL,"eglWaitGL"); disp->set_eglWaitGL((eglWaitGL_t)ptr);
- ptr = dlsym(libEGL,"eglWaitNative"); disp->set_eglWaitNative((eglWaitNative_t)ptr);
- ptr = dlsym(libEGL,"eglSwapBuffers"); disp->set_eglSwapBuffers((eglSwapBuffers_t)ptr);
- ptr = dlsym(libEGL,"eglCopyBuffers"); disp->set_eglCopyBuffers((eglCopyBuffers_t)ptr);
- ptr = dlsym(libEGL,"eglGetProcAddress"); disp->set_eglGetProcAddress((eglGetProcAddress_t)ptr);
- ptr = dlsym(libEGL,"eglLockSurfaceKHR"); disp->set_eglLockSurfaceKHR((eglLockSurfaceKHR_t)ptr);
- ptr = dlsym(libEGL,"eglUnlockSurfaceKHR"); disp->set_eglUnlockSurfaceKHR((eglUnlockSurfaceKHR_t)ptr);
- ptr = dlsym(libEGL,"eglCreateImageKHR"); disp->set_eglCreateImageKHR((eglCreateImageKHR_t)ptr);
- ptr = dlsym(libEGL,"eglDestroyImageKHR"); disp->set_eglDestroyImageKHR((eglDestroyImageKHR_t)ptr);
- ptr = dlsym(libEGL,"eglCreateSyncKHR"); disp->set_eglCreateSyncKHR((eglCreateSyncKHR_t)ptr);
- ptr = dlsym(libEGL,"eglDestroySyncKHR"); disp->set_eglDestroySyncKHR((eglDestroySyncKHR_t)ptr);
- ptr = dlsym(libEGL,"eglClientWaitSyncKHR"); disp->set_eglClientWaitSyncKHR((eglClientWaitSyncKHR_t)ptr);
- ptr = dlsym(libEGL,"eglSignalSyncKHR"); disp->set_eglSignalSyncKHR((eglSignalSyncKHR_t)ptr);
- ptr = dlsym(libEGL,"eglGetSyncAttribKHR"); disp->set_eglGetSyncAttribKHR((eglGetSyncAttribKHR_t)ptr);
- ptr = dlsym(libEGL,"eglSetSwapRectangleANDROID"); disp->set_eglSetSwapRectangleANDROID((eglSetSwapRectangleANDROID_t)ptr);
-
- return disp;
-}
diff --git a/emulator/opengl/tests/EGL_host_wrapper/egl_dispatch.h b/emulator/opengl/tests/EGL_host_wrapper/egl_dispatch.h
deleted file mode 100644
index e5f67c9..0000000
--- a/emulator/opengl/tests/EGL_host_wrapper/egl_dispatch.h
+++ /dev/null
@@ -1,115 +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.
-*/
-#ifndef _EGL_DISPATCH_H
-#define _EGL_DISPATCH_H
-
-#include "egl_proc.h"
-
-struct egl_dispatch {
- eglGetError_t eglGetError;
- eglGetDisplay_t eglGetDisplay;
- eglInitialize_t eglInitialize;
- eglTerminate_t eglTerminate;
- eglQueryString_t eglQueryString;
- eglGetConfigs_t eglGetConfigs;
- eglChooseConfig_t eglChooseConfig;
- eglGetConfigAttrib_t eglGetConfigAttrib;
- eglCreateWindowSurface_t eglCreateWindowSurface;
- eglCreatePbufferSurface_t eglCreatePbufferSurface;
- eglCreatePixmapSurface_t eglCreatePixmapSurface;
- eglDestroySurface_t eglDestroySurface;
- eglQuerySurface_t eglQuerySurface;
- eglBindAPI_t eglBindAPI;
- eglQueryAPI_t eglQueryAPI;
- eglWaitClient_t eglWaitClient;
- eglReleaseThread_t eglReleaseThread;
- eglCreatePbufferFromClientBuffer_t eglCreatePbufferFromClientBuffer;
- eglSurfaceAttrib_t eglSurfaceAttrib;
- eglBindTexImage_t eglBindTexImage;
- eglReleaseTexImage_t eglReleaseTexImage;
- eglSwapInterval_t eglSwapInterval;
- eglCreateContext_t eglCreateContext;
- eglDestroyContext_t eglDestroyContext;
- eglMakeCurrent_t eglMakeCurrent;
- eglGetCurrentContext_t eglGetCurrentContext;
- eglGetCurrentSurface_t eglGetCurrentSurface;
- eglGetCurrentDisplay_t eglGetCurrentDisplay;
- eglQueryContext_t eglQueryContext;
- eglWaitGL_t eglWaitGL;
- eglWaitNative_t eglWaitNative;
- eglSwapBuffers_t eglSwapBuffers;
- eglCopyBuffers_t eglCopyBuffers;
- eglGetProcAddress_t eglGetProcAddress;
- eglLockSurfaceKHR_t eglLockSurfaceKHR;
- eglUnlockSurfaceKHR_t eglUnlockSurfaceKHR;
- eglCreateImageKHR_t eglCreateImageKHR;
- eglDestroyImageKHR_t eglDestroyImageKHR;
- eglCreateSyncKHR_t eglCreateSyncKHR;
- eglDestroySyncKHR_t eglDestroySyncKHR;
- eglClientWaitSyncKHR_t eglClientWaitSyncKHR;
- eglSignalSyncKHR_t eglSignalSyncKHR;
- eglGetSyncAttribKHR_t eglGetSyncAttribKHR;
- eglSetSwapRectangleANDROID_t eglSetSwapRectangleANDROID;
- //Accessors
- eglGetError_t set_eglGetError(eglGetError_t f) { eglGetError_t retval = eglGetError; eglGetError = f; return retval;}
- eglGetDisplay_t set_eglGetDisplay(eglGetDisplay_t f) { eglGetDisplay_t retval = eglGetDisplay; eglGetDisplay = f; return retval;}
- eglInitialize_t set_eglInitialize(eglInitialize_t f) { eglInitialize_t retval = eglInitialize; eglInitialize = f; return retval;}
- eglTerminate_t set_eglTerminate(eglTerminate_t f) { eglTerminate_t retval = eglTerminate; eglTerminate = f; return retval;}
- eglQueryString_t set_eglQueryString(eglQueryString_t f) { eglQueryString_t retval = eglQueryString; eglQueryString = f; return retval;}
- eglGetConfigs_t set_eglGetConfigs(eglGetConfigs_t f) { eglGetConfigs_t retval = eglGetConfigs; eglGetConfigs = f; return retval;}
- eglChooseConfig_t set_eglChooseConfig(eglChooseConfig_t f) { eglChooseConfig_t retval = eglChooseConfig; eglChooseConfig = f; return retval;}
- eglGetConfigAttrib_t set_eglGetConfigAttrib(eglGetConfigAttrib_t f) { eglGetConfigAttrib_t retval = eglGetConfigAttrib; eglGetConfigAttrib = f; return retval;}
- eglCreateWindowSurface_t set_eglCreateWindowSurface(eglCreateWindowSurface_t f) { eglCreateWindowSurface_t retval = eglCreateWindowSurface; eglCreateWindowSurface = f; return retval;}
- eglCreatePbufferSurface_t set_eglCreatePbufferSurface(eglCreatePbufferSurface_t f) { eglCreatePbufferSurface_t retval = eglCreatePbufferSurface; eglCreatePbufferSurface = f; return retval;}
- eglCreatePixmapSurface_t set_eglCreatePixmapSurface(eglCreatePixmapSurface_t f) { eglCreatePixmapSurface_t retval = eglCreatePixmapSurface; eglCreatePixmapSurface = f; return retval;}
- eglDestroySurface_t set_eglDestroySurface(eglDestroySurface_t f) { eglDestroySurface_t retval = eglDestroySurface; eglDestroySurface = f; return retval;}
- eglQuerySurface_t set_eglQuerySurface(eglQuerySurface_t f) { eglQuerySurface_t retval = eglQuerySurface; eglQuerySurface = f; return retval;}
- eglBindAPI_t set_eglBindAPI(eglBindAPI_t f) { eglBindAPI_t retval = eglBindAPI; eglBindAPI = f; return retval;}
- eglQueryAPI_t set_eglQueryAPI(eglQueryAPI_t f) { eglQueryAPI_t retval = eglQueryAPI; eglQueryAPI = f; return retval;}
- eglWaitClient_t set_eglWaitClient(eglWaitClient_t f) { eglWaitClient_t retval = eglWaitClient; eglWaitClient = f; return retval;}
- eglReleaseThread_t set_eglReleaseThread(eglReleaseThread_t f) { eglReleaseThread_t retval = eglReleaseThread; eglReleaseThread = f; return retval;}
- eglCreatePbufferFromClientBuffer_t set_eglCreatePbufferFromClientBuffer(eglCreatePbufferFromClientBuffer_t f) { eglCreatePbufferFromClientBuffer_t retval = eglCreatePbufferFromClientBuffer; eglCreatePbufferFromClientBuffer = f; return retval;}
- eglSurfaceAttrib_t set_eglSurfaceAttrib(eglSurfaceAttrib_t f) { eglSurfaceAttrib_t retval = eglSurfaceAttrib; eglSurfaceAttrib = f; return retval;}
- eglBindTexImage_t set_eglBindTexImage(eglBindTexImage_t f) { eglBindTexImage_t retval = eglBindTexImage; eglBindTexImage = f; return retval;}
- eglReleaseTexImage_t set_eglReleaseTexImage(eglReleaseTexImage_t f) { eglReleaseTexImage_t retval = eglReleaseTexImage; eglReleaseTexImage = f; return retval;}
- eglSwapInterval_t set_eglSwapInterval(eglSwapInterval_t f) { eglSwapInterval_t retval = eglSwapInterval; eglSwapInterval = f; return retval;}
- eglCreateContext_t set_eglCreateContext(eglCreateContext_t f) { eglCreateContext_t retval = eglCreateContext; eglCreateContext = f; return retval;}
- eglDestroyContext_t set_eglDestroyContext(eglDestroyContext_t f) { eglDestroyContext_t retval = eglDestroyContext; eglDestroyContext = f; return retval;}
- eglMakeCurrent_t set_eglMakeCurrent(eglMakeCurrent_t f) { eglMakeCurrent_t retval = eglMakeCurrent; eglMakeCurrent = f; return retval;}
- eglGetCurrentContext_t set_eglGetCurrentContext(eglGetCurrentContext_t f) { eglGetCurrentContext_t retval = eglGetCurrentContext; eglGetCurrentContext = f; return retval;}
- eglGetCurrentSurface_t set_eglGetCurrentSurface(eglGetCurrentSurface_t f) { eglGetCurrentSurface_t retval = eglGetCurrentSurface; eglGetCurrentSurface = f; return retval;}
- eglGetCurrentDisplay_t set_eglGetCurrentDisplay(eglGetCurrentDisplay_t f) { eglGetCurrentDisplay_t retval = eglGetCurrentDisplay; eglGetCurrentDisplay = f; return retval;}
- eglQueryContext_t set_eglQueryContext(eglQueryContext_t f) { eglQueryContext_t retval = eglQueryContext; eglQueryContext = f; return retval;}
- eglWaitGL_t set_eglWaitGL(eglWaitGL_t f) { eglWaitGL_t retval = eglWaitGL; eglWaitGL = f; return retval;}
- eglWaitNative_t set_eglWaitNative(eglWaitNative_t f) { eglWaitNative_t retval = eglWaitNative; eglWaitNative = f; return retval;}
- eglSwapBuffers_t set_eglSwapBuffers(eglSwapBuffers_t f) { eglSwapBuffers_t retval = eglSwapBuffers; eglSwapBuffers = f; return retval;}
- eglCopyBuffers_t set_eglCopyBuffers(eglCopyBuffers_t f) { eglCopyBuffers_t retval = eglCopyBuffers; eglCopyBuffers = f; return retval;}
- eglGetProcAddress_t set_eglGetProcAddress(eglGetProcAddress_t f) { eglGetProcAddress_t retval = eglGetProcAddress; eglGetProcAddress = f; return retval;}
- eglLockSurfaceKHR_t set_eglLockSurfaceKHR(eglLockSurfaceKHR_t f) { eglLockSurfaceKHR_t retval = eglLockSurfaceKHR; eglLockSurfaceKHR = f; return retval;}
- eglUnlockSurfaceKHR_t set_eglUnlockSurfaceKHR(eglUnlockSurfaceKHR_t f) { eglUnlockSurfaceKHR_t retval = eglUnlockSurfaceKHR; eglUnlockSurfaceKHR = f; return retval;}
- eglCreateImageKHR_t set_eglCreateImageKHR(eglCreateImageKHR_t f) { eglCreateImageKHR_t retval = eglCreateImageKHR; eglCreateImageKHR = f; return retval;}
- eglDestroyImageKHR_t set_eglDestroyImageKHR(eglDestroyImageKHR_t f) { eglDestroyImageKHR_t retval = eglDestroyImageKHR; eglDestroyImageKHR = f; return retval;}
- eglCreateSyncKHR_t set_eglCreateSyncKHR(eglCreateSyncKHR_t f) { eglCreateSyncKHR_t retval = eglCreateSyncKHR; eglCreateSyncKHR = f; return retval;}
- eglDestroySyncKHR_t set_eglDestroySyncKHR(eglDestroySyncKHR_t f) { eglDestroySyncKHR_t retval = eglDestroySyncKHR; eglDestroySyncKHR = f; return retval;}
- eglClientWaitSyncKHR_t set_eglClientWaitSyncKHR(eglClientWaitSyncKHR_t f) { eglClientWaitSyncKHR_t retval = eglClientWaitSyncKHR; eglClientWaitSyncKHR = f; return retval;}
- eglSignalSyncKHR_t set_eglSignalSyncKHR(eglSignalSyncKHR_t f) { eglSignalSyncKHR_t retval = eglSignalSyncKHR; eglSignalSyncKHR = f; return retval;}
- eglGetSyncAttribKHR_t set_eglGetSyncAttribKHR(eglGetSyncAttribKHR_t f) { eglGetSyncAttribKHR_t retval = eglGetSyncAttribKHR; eglGetSyncAttribKHR = f; return retval;}
- eglSetSwapRectangleANDROID_t set_eglSetSwapRectangleANDROID(eglSetSwapRectangleANDROID_t f) { eglSetSwapRectangleANDROID_t retval = eglSetSwapRectangleANDROID; eglSetSwapRectangleANDROID = f; return retval;}
-};
-
-egl_dispatch *loadEGL(const char *p_eglPath);
-
-#endif
diff --git a/emulator/opengl/tests/EGL_host_wrapper/egl_ftable.h b/emulator/opengl/tests/EGL_host_wrapper/egl_ftable.h
deleted file mode 100644
index ee40585..0000000
--- a/emulator/opengl/tests/EGL_host_wrapper/egl_ftable.h
+++ /dev/null
@@ -1,66 +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.
-*/
-static struct _egl_funcs_by_name {
- const char *name;
- void *proc;
-} egl_funcs_by_name[] = {
- {"eglGetError", (void *)eglGetError},
- {"eglGetDisplay", (void *)eglGetDisplay},
- {"eglInitialize", (void *)eglInitialize},
- {"eglTerminate", (void *)eglTerminate},
- {"eglQueryString", (void *)eglQueryString},
- {"eglGetConfigs", (void *)eglGetConfigs},
- {"eglChooseConfig", (void *)eglChooseConfig},
- {"eglGetConfigAttrib", (void *)eglGetConfigAttrib},
- {"eglCreateWindowSurface", (void *)eglCreateWindowSurface},
- {"eglCreatePbufferSurface", (void *)eglCreatePbufferSurface},
- {"eglCreatePixmapSurface", (void *)eglCreatePixmapSurface},
- {"eglDestroySurface", (void *)eglDestroySurface},
- {"eglQuerySurface", (void *)eglQuerySurface},
- {"eglBindAPI", (void *)eglBindAPI},
- {"eglQueryAPI", (void *)eglQueryAPI},
- {"eglWaitClient", (void *)eglWaitClient},
- {"eglReleaseThread", (void *)eglReleaseThread},
- {"eglCreatePbufferFromClientBuffer", (void *)eglCreatePbufferFromClientBuffer},
- {"eglSurfaceAttrib", (void *)eglSurfaceAttrib},
- {"eglBindTexImage", (void *)eglBindTexImage},
- {"eglReleaseTexImage", (void *)eglReleaseTexImage},
- {"eglSwapInterval", (void *)eglSwapInterval},
- {"eglCreateContext", (void *)eglCreateContext},
- {"eglDestroyContext", (void *)eglDestroyContext},
- {"eglMakeCurrent", (void *)eglMakeCurrent},
- {"eglGetCurrentContext", (void *)eglGetCurrentContext},
- {"eglGetCurrentSurface", (void *)eglGetCurrentSurface},
- {"eglGetCurrentDisplay", (void *)eglGetCurrentDisplay},
- {"eglQueryContext", (void *)eglQueryContext},
- {"eglWaitGL", (void *)eglWaitGL},
- {"eglWaitNative", (void *)eglWaitNative},
- {"eglSwapBuffers", (void *)eglSwapBuffers},
- {"eglCopyBuffers", (void *)eglCopyBuffers},
- {"eglGetProcAddress", (void *)eglGetProcAddress},
- {"eglLockSurfaceKHR", (void *)eglLockSurfaceKHR},
- {"eglUnlockSurfaceKHR", (void *)eglUnlockSurfaceKHR},
- {"eglCreateImageKHR", (void *)eglCreateImageKHR},
- {"eglDestroyImageKHR", (void *)eglDestroyImageKHR},
- {"eglCreateSyncKHR", (void *)eglCreateSyncKHR},
- {"eglDestroySyncKHR", (void *)eglDestroySyncKHR},
- {"eglClientWaitSyncKHR", (void *)eglClientWaitSyncKHR},
- {"eglSignalSyncKHR", (void *)eglSignalSyncKHR},
- {"eglGetSyncAttribKHR", (void *)eglGetSyncAttribKHR},
- {"eglSetSwapRectangleANDROID", (void *)eglSetSwapRectangleANDROID}
-};
-
-static int egl_num_funcs = sizeof(egl_funcs_by_name) / sizeof(struct _egl_funcs_by_name);
diff --git a/emulator/opengl/tests/EGL_host_wrapper/egl_proc.h b/emulator/opengl/tests/EGL_host_wrapper/egl_proc.h
deleted file mode 100644
index 140c030..0000000
--- a/emulator/opengl/tests/EGL_host_wrapper/egl_proc.h
+++ /dev/null
@@ -1,68 +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.
-*/
-#ifndef _EGL_PROC_H
-#define _EGL_PROC_H
-
-#include <EGL/egl.h>
-#define EGL_EGLEXT_PROTOTYPES
-#include <EGL/eglext.h>
-
-typedef EGLint (* eglGetError_t) ();
-typedef EGLDisplay (* eglGetDisplay_t) (EGLNativeDisplayType);
-typedef EGLBoolean (* eglInitialize_t) (EGLDisplay, EGLint*, EGLint*);
-typedef EGLBoolean (* eglTerminate_t) (EGLDisplay);
-typedef char* (* eglQueryString_t) (EGLDisplay, EGLint);
-typedef EGLBoolean (* eglGetConfigs_t) (EGLDisplay, EGLConfig*, EGLint, EGLint*);
-typedef EGLBoolean (* eglChooseConfig_t) (EGLDisplay, const EGLint*, EGLConfig*, EGLint, EGLint*);
-typedef EGLBoolean (* eglGetConfigAttrib_t) (EGLDisplay, EGLConfig, EGLint, EGLint*);
-typedef EGLSurface (* eglCreateWindowSurface_t) (EGLDisplay, EGLConfig, EGLNativeWindowType, const EGLint*);
-typedef EGLSurface (* eglCreatePbufferSurface_t) (EGLDisplay, EGLConfig, const EGLint*);
-typedef EGLSurface (* eglCreatePixmapSurface_t) (EGLDisplay, EGLConfig, EGLNativePixmapType, const EGLint*);
-typedef EGLBoolean (* eglDestroySurface_t) (EGLDisplay, EGLSurface);
-typedef EGLBoolean (* eglQuerySurface_t) (EGLDisplay, EGLSurface, EGLint, EGLint*);
-typedef EGLBoolean (* eglBindAPI_t) (EGLenum);
-typedef EGLenum (* eglQueryAPI_t) ();
-typedef EGLBoolean (* eglWaitClient_t) ();
-typedef EGLBoolean (* eglReleaseThread_t) ();
-typedef EGLSurface (* eglCreatePbufferFromClientBuffer_t) (EGLDisplay, EGLenum, EGLClientBuffer, EGLConfig, const EGLint*);
-typedef EGLBoolean (* eglSurfaceAttrib_t) (EGLDisplay, EGLSurface, EGLint, EGLint);
-typedef EGLBoolean (* eglBindTexImage_t) (EGLDisplay, EGLSurface, EGLint);
-typedef EGLBoolean (* eglReleaseTexImage_t) (EGLDisplay, EGLSurface, EGLint);
-typedef EGLBoolean (* eglSwapInterval_t) (EGLDisplay, EGLint);
-typedef EGLContext (* eglCreateContext_t) (EGLDisplay, EGLConfig, EGLContext, const EGLint*);
-typedef EGLBoolean (* eglDestroyContext_t) (EGLDisplay, EGLContext);
-typedef EGLBoolean (* eglMakeCurrent_t) (EGLDisplay, EGLSurface, EGLSurface, EGLContext);
-typedef EGLContext (* eglGetCurrentContext_t) ();
-typedef EGLSurface (* eglGetCurrentSurface_t) (EGLint);
-typedef EGLDisplay (* eglGetCurrentDisplay_t) ();
-typedef EGLBoolean (* eglQueryContext_t) (EGLDisplay, EGLContext, EGLint, EGLint*);
-typedef EGLBoolean (* eglWaitGL_t) ();
-typedef EGLBoolean (* eglWaitNative_t) (EGLint);
-typedef EGLBoolean (* eglSwapBuffers_t) (EGLDisplay, EGLSurface);
-typedef EGLBoolean (* eglCopyBuffers_t) (EGLDisplay, EGLSurface, EGLNativePixmapType);
-typedef __eglMustCastToProperFunctionPointerType (* eglGetProcAddress_t) (const char*);
-typedef EGLBoolean (* eglLockSurfaceKHR_t) (EGLDisplay, EGLSurface, const EGLint*);
-typedef EGLBoolean (* eglUnlockSurfaceKHR_t) (EGLDisplay, EGLSurface);
-typedef EGLImageKHR (* eglCreateImageKHR_t) (EGLDisplay, EGLContext, EGLenum, EGLClientBuffer, const EGLint*);
-typedef EGLBoolean (* eglDestroyImageKHR_t) (EGLDisplay, EGLImageKHR image);
-typedef EGLSyncKHR (* eglCreateSyncKHR_t) (EGLDisplay, EGLenum, const EGLint*);
-typedef EGLBoolean (* eglDestroySyncKHR_t) (EGLDisplay, EGLSyncKHR sync);
-typedef EGLint (* eglClientWaitSyncKHR_t) (EGLDisplay, EGLSyncKHR, EGLint, EGLTimeKHR timeout);
-typedef EGLBoolean (* eglSignalSyncKHR_t) (EGLDisplay, EGLSyncKHR, EGLenum);
-typedef EGLBoolean (* eglGetSyncAttribKHR_t) (EGLDisplay, EGLSyncKHR, EGLint, EGLint*);
-typedef EGLBoolean (* eglSetSwapRectangleANDROID_t) (EGLDisplay, EGLSurface, EGLint, EGLint, EGLint, EGLint);
-
-#endif // of _EGL_PROC_H
diff --git a/emulator/opengl/tests/emulator_test_renderer/Android.mk b/emulator/opengl/tests/emulator_test_renderer/Android.mk
deleted file mode 100644
index d585513..0000000
--- a/emulator/opengl/tests/emulator_test_renderer/Android.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-LOCAL_PATH:=$(call my-dir)
-
-$(call emugl-begin-host-executable,emulator_test_renderer)
-$(call emugl-import,libOpenglRender event_injector)
-
-LOCAL_SRC_FILES := main.cpp
-
-LOCAL_CFLAGS += $(EMUGL_SDL_CFLAGS) -g -O0
-LOCAL_LDLIBS += $(EMUGL_SDL_LDLIBS)
-
-LOCAL_STATIC_LIBRARIES += libSDL libSDLmain
-
-$(call emugl-end-module)
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;
-}
diff --git a/emulator/opengl/tests/event_injector/Android.mk b/emulator/opengl/tests/event_injector/Android.mk
deleted file mode 100644
index 26eb476..0000000
--- a/emulator/opengl/tests/event_injector/Android.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-$(call emugl-begin-host-static-library,event_injector)
-
-LOCAL_SRC_FILES := \
- EventInjector.cpp \
- sockets.c \
- emulator-console.c \
- iolooper-select.c
-
-$(call emugl-export,C_INCLUDES,$(LOCAL_PATH))
-
-$(call emugl-end-module)
diff --git a/emulator/opengl/tests/event_injector/EventInjector.cpp b/emulator/opengl/tests/event_injector/EventInjector.cpp
deleted file mode 100644
index 6dade6e..0000000
--- a/emulator/opengl/tests/event_injector/EventInjector.cpp
+++ /dev/null
@@ -1,76 +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.
-*/
-#include "EventInjector.h"
-#include "emulator-console.h"
-
-#define PRIVATE EventInjectorPrivate
-
-class PRIVATE
-{
-public:
- IoLooper* mLooper;
- EmulatorConsole* mConsole;
-
- EventInjectorPrivate(int port) {
- mLooper = iolooper_new();
- mConsole = emulatorConsole_new(port, mLooper);
- }
-};
-
-EventInjector::EventInjector(int consolePort)
-{
- mPrivate = new PRIVATE(consolePort);
-}
-
-EventInjector::~EventInjector()
-{
- delete mPrivate;
-}
-
-void EventInjector::wait(int timeout_ms)
-{
- iolooper_wait(mPrivate->mLooper, timeout_ms);
-}
-
-void EventInjector::poll(void)
-{
- emulatorConsole_poll(mPrivate->mConsole);
-}
-
-void EventInjector::sendMouseDown( int x, int y )
-{
- emulatorConsole_sendMouseDown(mPrivate->mConsole, x, y);
-}
-
-void EventInjector::sendMouseUp( int x, int y )
-{
- emulatorConsole_sendMouseUp(mPrivate->mConsole, x, y);
-}
-
-void EventInjector::sendMouseMotion( int x, int y )
-{
- emulatorConsole_sendMouseMotion(mPrivate->mConsole, x, y);
-}
-
-void EventInjector::sendKeyDown( int keycode )
-{
- emulatorConsole_sendKey(mPrivate->mConsole, keycode, 1);
-}
-
-void EventInjector::sendKeyUp( int keycode )
-{
- emulatorConsole_sendKey(mPrivate->mConsole, keycode, 0);
-}
diff --git a/emulator/opengl/tests/event_injector/EventInjector.h b/emulator/opengl/tests/event_injector/EventInjector.h
deleted file mode 100644
index a8fded7..0000000
--- a/emulator/opengl/tests/event_injector/EventInjector.h
+++ /dev/null
@@ -1,59 +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.
-*/
-/* Event redirector is used to inject user events from a GL window
- * into the emulated program.
- */
-#ifndef EVENT_INJECTOR_H
-#define EVENT_INJECTOR_H
-
-class EventInjectorPrivate;
-
-class EventInjector
-{
-public:
- EventInjector(int consolePort);
- virtual ~EventInjector();
-
- void wait( int timeout_ms );
- void poll( void );
-
- void sendMouseDown( int x, int y );
- void sendMouseUp( int x, int y );
- void sendMouseMotion( int x, int y );
- void sendKeyDown( int keycode );
- void sendKeyUp( int keycode );
-
- /* Keycode values expected by the Linux kernel, and the emulator */
- enum {
- KEY_BACK = 158,
- KEY_HOME = 102,
- KEY_SOFT1 = 229,
- KEY_LEFT = 105,
- KEY_UP = 103,
- KEY_DOWN = 108,
- KEY_RIGHT = 106,
- KEY_VOLUMEUP = 115,
- KEY_VOLUMEDOWN = 114,
- KEY_SEND = 231,
- KEY_END = 107,
- KEY_ENTER = 28,
- };
-
-private:
- EventInjectorPrivate* mPrivate;
-};
-
-#endif /* EVENT_INJECTOR_H */
diff --git a/emulator/opengl/tests/event_injector/emulator-console.c b/emulator/opengl/tests/event_injector/emulator-console.c
deleted file mode 100644
index a8c49b2..0000000
--- a/emulator/opengl/tests/event_injector/emulator-console.c
+++ /dev/null
@@ -1,345 +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.
-*/
-#include "emulator-console.h"
-#include "sockets.h"
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#define DEBUG 0
-#if DEBUG >= 1
-# define D(...) printf(__VA_ARGS__), printf("\n")
-#else
-# define D(...) ((void)0)
-#endif
-#if DEBUG >= 2
-# define DD(...) printf(__VA_ARGS__), printf("\n")
-#else
-# define DD(...) ((void)0)
-#endif
-
-#define ANEW0(p) (p) = calloc(sizeof(*(p)), 1)
-
-enum {
- STATE_CONNECTING = 0,
- STATE_CONNECTED,
- STATE_WAITING,
- STATE_ERROR = 2
-};
-
-typedef struct Msg {
- const char* data; // pointer to data
- int size; // size of data
- int sent; // already sent (so sent..size remain in buffer).
- struct Msg* next; // next message in queue.
-} Msg;
-
-static Msg*
-msg_alloc( const char* data, int datalen )
-{
- Msg* msg;
-
- msg = malloc(sizeof(*msg) + datalen);
- msg->data = (const char*)(msg + 1);
- msg->size = datalen;
- msg->sent = 0;
- memcpy((char*)msg->data, data, datalen);
- msg->next = NULL;
-
- return msg;
-}
-
-static void
-msg_free( Msg* msg )
-{
- free(msg);
-}
-
-struct EmulatorConsole {
- int fd;
- IoLooper* looper;
- int state;
- Msg* out_msg;
- SockAddress address;
- int64_t waitUntil;
-};
-
-/* Read as much from the input as possible, ignoring it.
- */
-static int
-emulatorConsole_eatInput( EmulatorConsole* con )
-{
- for (;;) {
- char temp[64];
- int ret = socket_recv(con->fd, temp, sizeof temp);
- if (ret < 0) {
- if (errno == EAGAIN || errno == EWOULDBLOCK) {
- return 0;
- }
- return -1;
- }
- if (ret == 0) {
- return -1;
- }
- DD("Console received: '%.*s'", ret, temp);
- }
-}
-
-static int
-emulatorConsole_sendOutput( EmulatorConsole* con )
-{
- if (con->state != STATE_CONNECTED) {
- errno = EINVAL;
- return -1;
- }
-
- while (con->out_msg != NULL) {
- Msg* msg = con->out_msg;
- int ret;
-
- ret = socket_send(con->fd,
- msg->data + msg->sent,
- msg->size - msg->sent);
- if (ret > 0) {
- DD("Console sent: '%.*s'", ret, msg->data + msg->sent);
-
- msg->sent += ret;
- if (msg->sent == msg->size) {
- con->out_msg = msg->next;
- msg_free(msg);
- }
- continue;
- }
- if (ret < 0 && (errno == EAGAIN || errno == EWOULDBLOCK)) {
- return 0;
- }
- con->state = STATE_ERROR;
- D("Console error when sending: %s", strerror(errno));
- return -1;
- }
- iolooper_del_write(con->looper, con->fd);
- return 0;
-}
-
-static void
-emulatorConsole_completeConnect(EmulatorConsole* con)
-{
- D("Console connected!");
- iolooper_add_read(con->looper, con->fd);
- iolooper_del_write(con->looper, con->fd);
- con->state = STATE_CONNECTED;
- if (con->out_msg != NULL) {
- iolooper_add_write(con->looper, con->fd);
- emulatorConsole_sendOutput(con);
- }
-}
-
-static void
-emulatorConsole_retry(EmulatorConsole* con)
-{
- /* Not possible yet, wait one second */
- D("Could not connect to emulator, waiting 1 second: %s", errno_str);
- con->state = STATE_WAITING;
- con->waitUntil = iolooper_now() + 5000;
-}
-
-static void
-emulatorConsole_connect(EmulatorConsole* con)
-{
- D("Trying to connect!");
- if (con->fd < 0) {
- con->fd = socket_create_inet( SOCKET_STREAM );
- if (con->fd < 0) {
- D("ERROR: Could not create socket: %s", errno_str);
- con->state = STATE_ERROR;
- return;
- }
- socket_set_nonblock(con->fd);
- }
- con->state = STATE_CONNECTING;
- if (socket_connect(con->fd, &con->address) < 0) {
- if (errno == EAGAIN || errno == EWOULDBLOCK || errno == EINPROGRESS) {
- iolooper_add_write(con->looper, con->fd);
- } else {
- emulatorConsole_retry(con);
- }
- return;
- }
-
- emulatorConsole_completeConnect(con);
-}
-
-static void
-emulatorConsole_reset( EmulatorConsole* con )
-{
- D("Resetting console connection");
- while (con->out_msg) {
- Msg* msg = con->out_msg;
- con->out_msg = msg->next;
- msg_free(msg);
- }
- iolooper_del_read(con->looper, con->fd);
- iolooper_del_write(con->looper, con->fd);
- socket_close(con->fd);
- con->fd = -1;
- emulatorConsole_connect(con);
-}
-
-/* Create a new EmulatorConsole object to connect asynchronously to
- * a given emulator port. Note that this should always succeeds since
- * the connection is asynchronous.
- */
-EmulatorConsole*
-emulatorConsole_new(int port, IoLooper* looper)
-{
- EmulatorConsole* con;
- SockAddress addr;
-
- ANEW0(con);
- con->looper = looper;
- con->fd = -1;
- sock_address_init_inet(&con->address, SOCK_ADDRESS_INET_LOOPBACK, port);
-
- emulatorConsole_connect(con);
- return con;
-}
-
-int
-emulatorConsole_poll( EmulatorConsole* con )
-{
- int ret;
-
- if (con->state == STATE_WAITING) {
- if (iolooper_now() >= con->waitUntil)
- emulatorConsole_connect(con);
- return 0;
- }
-
- if (!iolooper_is_read(con->looper, con->fd) &&
- !iolooper_is_write(con->looper, con->fd))
- {
- return 0;
- }
-
-LOOP:
- switch (con->state) {
- case STATE_ERROR:
- return -1;
-
- case STATE_CONNECTING:
- // read socket error to determine success / error.
- if (socket_get_error(con->fd) != 0) {
- emulatorConsole_retry(con);
- } else {
- emulatorConsole_completeConnect(con);
- }
- return 0;
-
- case STATE_CONNECTED:
- /* ignore input, if any */
- if (iolooper_is_read(con->looper, con->fd)) {
- if (emulatorConsole_eatInput(con) < 0) {
- goto SET_ERROR;
- }
- }
- /* send outgoing data, if any */
- if (iolooper_is_write(con->looper, con->fd)) {
- if (emulatorConsole_sendOutput(con) < 0) {
- goto SET_ERROR;
- }
- }
- return 0;
-
- default:
- D("UNSUPPORTED STATE!");
- break;
- }
-
-SET_ERROR:
- D("Console ERROR!: %s\n", errno_str);
- con->state = STATE_ERROR;
- emulatorConsole_reset(con);
- return -1;
-}
-
-/* Send a message to the console asynchronously. Any answer will be
- * ignored. */
-void
-emulatorConsole_send( EmulatorConsole* con, const char* command )
-{
- int cmdlen = strlen(command);
- Msg* msg;
- Msg** plast;
-
- if (cmdlen == 0)
- return;
-
- /* Append new message at end of outgoing list */
- msg = msg_alloc(command, cmdlen);
- plast = &con->out_msg;
- while (*plast) {
- plast = &(*plast)->next;
- }
- *plast = msg;
- if (con->out_msg == msg) {
- iolooper_add_write(con->looper, con->fd);
- }
- emulatorConsole_sendOutput(con);
-}
-
-
-void
-emulatorConsole_sendMouseDown( EmulatorConsole* con, int x, int y )
-{
- char temp[128];
-
- D("sendMouseDown(%d,%d)", x, y);
- snprintf(temp, sizeof temp,
- "event send 3:0:%d 3:1:%d 1:330:1 0:0:0\r\n",
- x, y);
- emulatorConsole_send(con, temp);
-}
-
-void
-emulatorConsole_sendMouseMotion( EmulatorConsole* con, int x, int y )
-{
- /* Same as mouse down */
- emulatorConsole_sendMouseDown(con, x, y);
-}
-
-void
-emulatorConsole_sendMouseUp( EmulatorConsole* con, int x, int y )
-{
- char temp[128];
-
- D("sendMouseUp(%d,%d)", x, y);
- snprintf(temp, sizeof temp,
- "event send 3:0:%d 3:1:%d 1:330:0 0:0:0\r\n",
- x, y);
- emulatorConsole_send(con, temp);
-}
-
-#define EE(x,y) if (keycode == x) return y;
-
-void
-emulatorConsole_sendKey( EmulatorConsole* con, int keycode, int down )
-{
- char temp[128];
-
- snprintf(temp, sizeof temp,
- "event send EV_KEY:%d:%d 0:0:0\r\n", keycode, down);
- emulatorConsole_send(con, temp);
-}
diff --git a/emulator/opengl/tests/event_injector/emulator-console.h b/emulator/opengl/tests/event_injector/emulator-console.h
deleted file mode 100644
index 19e9687..0000000
--- a/emulator/opengl/tests/event_injector/emulator-console.h
+++ /dev/null
@@ -1,55 +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.
-*/
-#ifndef ANDROID_EMULATOR_CONSOLE_H
-#define ANDROID_EMULATOR_CONSOLE_H
-
-#include "iolooper.h"
-#include "sockets.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct EmulatorConsole EmulatorConsole;
-
-/* Create a new EmulatorConsole object to connect asynchronously to
- * a given emulator port. Note that this always succeeds since the
- * connection is asynchronous.
- */
-EmulatorConsole* emulatorConsole_new(int port, IoLooper* looper);
-
-/* Call this after an iolooper_poll() or iolooper_wait() to check
- * the status of the console's socket and act upon it.
- *
- * Returns 0 on success, or -1 on error (which indicates disconnection!)
- */
-int emulatorConsole_poll( EmulatorConsole* console );
-
-/* Send a message to the console asynchronously. Any answer will be
- * ignored. */
-void emulatorConsole_send( EmulatorConsole* console, const char* command );
-
-void emulatorConsole_sendMouseDown( EmulatorConsole* con, int x, int y );
-void emulatorConsole_sendMouseMotion( EmulatorConsole* con, int x, int y );
-void emulatorConsole_sendMouseUp( EmulatorConsole* con, int x, int y );
-
-void emulatorConsole_sendKey( EmulatorConsole* con, int keycode, int down );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* ANDROID_EMULATOR_CONSOLE_H */
diff --git a/emulator/opengl/tests/event_injector/iolooper-select.c b/emulator/opengl/tests/event_injector/iolooper-select.c
deleted file mode 100644
index c5fc7c2..0000000
--- a/emulator/opengl/tests/event_injector/iolooper-select.c
+++ /dev/null
@@ -1,274 +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.
-*/
-#include <errno.h>
-#include <stdlib.h>
-#include "iolooper.h"
-#include "sockets.h"
-
-/* An implementation of iolooper.h based on Unix select() */
-#ifdef _WIN32
-# include <winsock2.h>
-# include <time.h>
-#else
-# include <sys/types.h>
-# include <sys/select.h>
-# include <sys/time.h>
-#endif
-
-struct IoLooper {
- fd_set reads[1];
- fd_set writes[1];
- fd_set reads_result[1];
- fd_set writes_result[1];
- int max_fd;
- int max_fd_valid;
-};
-
-IoLooper*
-iolooper_new(void)
-{
- IoLooper* iol = malloc(sizeof(*iol));
- iolooper_reset(iol);
- return iol;
-}
-
-void
-iolooper_free( IoLooper* iol )
-{
- free(iol);
-}
-
-void
-iolooper_reset( IoLooper* iol )
-{
- FD_ZERO(iol->reads);
- FD_ZERO(iol->writes);
- iol->max_fd = -1;
- iol->max_fd_valid = 1;
-}
-
-static void
-iolooper_add_fd( IoLooper* iol, int fd )
-{
- if (iol->max_fd_valid && fd > iol->max_fd) {
- iol->max_fd = fd;
- }
-}
-
-static void
-iolooper_del_fd( IoLooper* iol, int fd )
-{
- if (iol->max_fd_valid && fd == iol->max_fd)
- iol->max_fd_valid = 0;
-}
-
-void
-iolooper_modify( IoLooper* iol, int fd, int oldflags, int newflags )
-{
- if (fd < 0)
- return;
-
- int changed = oldflags ^ newflags;
-
- if ((changed & IOLOOPER_READ) != 0) {
- if ((newflags & IOLOOPER_READ) != 0)
- iolooper_add_read(iol, fd);
- else
- iolooper_del_read(iol, fd);
- }
- if ((changed & IOLOOPER_WRITE) != 0) {
- if ((newflags & IOLOOPER_WRITE) != 0)
- iolooper_add_write(iol, fd);
- else
- iolooper_del_write(iol, fd);
- }
-}
-
-
-static int
-iolooper_fd_count( IoLooper* iol )
-{
- int max_fd = iol->max_fd;
- int fd;
-
- if (iol->max_fd_valid)
- return max_fd + 1;
-
- /* recompute max fd */
- for (fd = 0; fd < FD_SETSIZE; fd++) {
- if (!FD_ISSET(fd, iol->reads) && !FD_ISSET(fd, iol->writes))
- continue;
-
- max_fd = fd;
- }
- iol->max_fd = max_fd;
- iol->max_fd_valid = 1;
-
- return max_fd + 1;
-}
-
-void
-iolooper_add_read( IoLooper* iol, int fd )
-{
- if (fd >= 0) {
- iolooper_add_fd(iol, fd);
- FD_SET(fd, iol->reads);
- }
-}
-
-void
-iolooper_add_write( IoLooper* iol, int fd )
-{
- if (fd >= 0) {
- iolooper_add_fd(iol, fd);
- FD_SET(fd, iol->writes);
- }
-}
-
-void
-iolooper_del_read( IoLooper* iol, int fd )
-{
- if (fd >= 0) {
- iolooper_del_fd(iol, fd);
- FD_CLR(fd, iol->reads);
- }
-}
-
-void
-iolooper_del_write( IoLooper* iol, int fd )
-{
- if (fd >= 0) {
- iolooper_del_fd(iol, fd);
- FD_CLR(fd, iol->writes);
- }
-}
-
-int
-iolooper_poll( IoLooper* iol )
-{
- int count = iolooper_fd_count(iol);
- int ret;
- fd_set errs;
-
- if (count == 0)
- return 0;
-
- FD_ZERO(&errs);
-
- do {
- struct timeval tv;
-
- tv.tv_sec = tv.tv_usec = 0;
-
- iol->reads_result[0] = iol->reads[0];
- iol->writes_result[0] = iol->writes[0];
-
- ret = select( count, iol->reads_result, iol->writes_result, &errs, &tv);
- } while (ret < 0 && errno == EINTR);
-
- return ret;
-}
-
-int
-iolooper_wait( IoLooper* iol, int64_t duration )
-{
- int count = iolooper_fd_count(iol);
- int ret;
- fd_set errs;
- struct timeval tm0, *tm = NULL;
-
- if (count == 0)
- return 0;
-
- if (duration < 0)
- tm = NULL;
- else {
- tm = &tm0;
- tm->tv_sec = duration / 1000;
- tm->tv_usec = (duration - 1000*tm->tv_sec) * 1000;
- }
-
- FD_ZERO(&errs);
-
- do {
- iol->reads_result[0] = iol->reads[0];
- iol->writes_result[0] = iol->writes[0];
-
- ret = select( count, iol->reads_result, iol->writes_result, &errs, tm);
- if (ret == 0) {
- // Indicates timeout
- errno = ETIMEDOUT;
- }
- } while (ret < 0 && errno == EINTR);
-
- return ret;
-}
-
-
-int
-iolooper_is_read( IoLooper* iol, int fd )
-{
- return FD_ISSET(fd, iol->reads_result);
-}
-
-int
-iolooper_is_write( IoLooper* iol, int fd )
-{
- return FD_ISSET(fd, iol->writes_result);
-}
-
-int
-iolooper_has_operations( IoLooper* iol )
-{
- return iolooper_fd_count(iol) > 0;
-}
-
-int64_t
-iolooper_now(void)
-{
-#ifdef _WIN32
- FILETIME now;
- int64_t now_100ns;
-
- GetSystemTimeAsFileTime(&now);
-
- /* Get the time as hundreds of nanosecond intervals since
- 12:00 AM January 1t 1601 UTC. We don't really need
- to compute the value relative to the Posix epoch */
- now_100ns = ((int64_t)now.dwHighDateTime << 32) | now.dwLowDateTime;
-
- /* 100 ns == 0.1 us == 0.0001 ms */
- return now_100ns / 10000LL;
-
-#else /* !_WIN32 */
- struct timeval time_now;
- return gettimeofday(&time_now, NULL) ? -1 : (int64_t)time_now.tv_sec * 1000LL +
- time_now.tv_usec / 1000;
-#endif /* !_WIN32 */
-}
-
-int
-iolooper_wait_absolute(IoLooper* iol, int64_t deadline)
-{
- int64_t timeout = deadline - iolooper_now();
-
- /* If the deadline has passed, set the timeout to 0, this allows us
- * to poll the file descriptor nonetheless */
- if (timeout < 0)
- timeout = 0;
-
- return iolooper_wait(iol, timeout);
-}
diff --git a/emulator/opengl/tests/event_injector/iolooper.h b/emulator/opengl/tests/event_injector/iolooper.h
deleted file mode 100644
index 4aa3db7..0000000
--- a/emulator/opengl/tests/event_injector/iolooper.h
+++ /dev/null
@@ -1,91 +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.
-*/
-#ifndef IOLOOPER_H
-#define IOLOOPER_H
-
-#include <stdint.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* An IOLooper is an abstraction for select() */
-
-typedef struct IoLooper IoLooper;
-
-IoLooper* iolooper_new(void);
-void iolooper_free( IoLooper* iol );
-void iolooper_reset( IoLooper* iol );
-
-void iolooper_add_read( IoLooper* iol, int fd );
-void iolooper_add_write( IoLooper* iol, int fd );
-void iolooper_del_read( IoLooper* iol, int fd );
-void iolooper_del_write( IoLooper* iol, int fd );
-
-enum {
- IOLOOPER_READ = (1<<0),
- IOLOOPER_WRITE = (1<<1),
-};
-void iolooper_modify( IoLooper* iol, int fd, int oldflags, int newflags);
-
-int iolooper_poll( IoLooper* iol );
-/* Wrapper around select()
- * Return:
- * > 0 in case an I/O has occurred, or < 0 on error, or 0 on timeout with
- * errno set to ETIMEDOUT.
- */
-int iolooper_wait( IoLooper* iol, int64_t duration );
-
-int iolooper_is_read( IoLooper* iol, int fd );
-int iolooper_is_write( IoLooper* iol, int fd );
-/* Returns 1 if this IoLooper has one or more file descriptor to interact with */
-int iolooper_has_operations( IoLooper* iol );
-/* Gets current time in milliseconds.
- * Return:
- * Number of milliseconds corresponded to the current time on success, or -1
- * on failure.
- */
-int64_t iolooper_now(void);
-/* Waits for an I/O to occur before specific absolute time.
- * This routine should be used (instead of iolooper_wait) in cases when multiple
- * sequential I/O should be completed within given time interval. For instance,
- * consider the scenario, when "server" does two sequential writes, and "client"
- * now has to read data transferred with these two distinct writes. It might be
- * wasteful to do two reads, each with the same (large) timeout. Instead, it
- * would be better to assign a deadline for both reads before the first read,
- * and call iolooper_wait_absoulte with the same deadline value:
- * int64_t deadline = iolooper_now() + TIMEOUT;
- * if (iolooper_wait_absoulte(iol, deadline)) {
- * // Process first buffer.
- * (iolooper_wait_absoulte(iol, deadline)) {
- * // Process second read
- * }
- * }
- * Param:
- * iol IoLooper instance for an I/O.
- * deadline Deadline (absoulte time in milliseconds) before which an I/O should
- * occur.
- * Return:
- * Number of I/O descriptors set in iol, if an I/O has occurred, 0 if no I/O
- * occurred before the deadline, or -1 on error.
- */
-int iolooper_wait_absolute(IoLooper* iol, int64_t deadline);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* IOLOOPER_H */
diff --git a/emulator/opengl/tests/event_injector/sockets.c b/emulator/opengl/tests/event_injector/sockets.c
deleted file mode 100644
index 33df32b..0000000
--- a/emulator/opengl/tests/event_injector/sockets.c
+++ /dev/null
@@ -1,1550 +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.
-*/
-#ifdef __linux__ /* Recent versions of glibc only define EAI_NODATA, which is an
- extension to the POSIX standard, if _GNU_SOURCE is defined. */
-# define _GNU_SOURCE 1
-#endif
-
-#include "sockets.h"
-#include <fcntl.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include <string.h>
-#include <limits.h>
-
-#define D(...) ((void)0)
-
-#ifdef _WIN32
-# define xxWIN32_LEAN_AND_MEAN
-# define _WIN32_WINNT 0x501
-# include <windows.h>
-# include <winsock2.h>
-# include <ws2tcpip.h>
-#else /* !_WIN32 */
-# include <sys/ioctl.h>
-# include <sys/socket.h>
-# include <netinet/in.h>
-# include <netinet/tcp.h>
-# include <netdb.h>
-# if HAVE_UNIX_SOCKETS
-# include <sys/un.h>
-# ifndef UNIX_PATH_MAX
-# define UNIX_PATH_MAX (sizeof(((struct sockaddr_un*)0)->sun_path)-1)
-# endif
-# endif
-#endif /* !_WIN32 */
-
-#define MIN(x,y) ({ typeof(x) _x = (x); typeof(y) _y = (y); _x <= _y ? _x : _y; })
-#define AFREE(p) free(p)
-#define AARRAY_NEW(p,count) (p) = malloc(sizeof(*(p))*(count))
-#define AARRAY_NEW0(p,count) (p) = calloc(sizeof(*(p)),(count))
-
-/* QSOCKET_CALL is used to deal with the fact that EINTR happens pretty
- * easily in QEMU since we use SIGALRM to implement periodic timers
- */
-#ifdef _WIN32
-# define QSOCKET_CALL(_ret,_cmd) \
- do { _ret = (_cmd); } while ( _ret < 0 && WSAGetLastError() == WSAEINTR )
-#else
-# define QSOCKET_CALL(_ret,_cmd) \
- do { \
- errno = 0; \
- do { _ret = (_cmd); } while ( _ret < 0 && errno == EINTR ); \
- } while (0);
-#endif
-
-#ifdef _WIN32
-
-#include <errno.h>
-
-static int winsock_error;
-
-#define WINSOCK_ERRORS_LIST \
- EE(WSA_INVALID_HANDLE,EINVAL,"invalid handle") \
- EE(WSA_NOT_ENOUGH_MEMORY,ENOMEM,"not enough memory") \
- EE(WSA_INVALID_PARAMETER,EINVAL,"invalid parameter") \
- EE(WSAEINTR,EINTR,"interrupted function call") \
- EE(WSAEALREADY,EALREADY,"operation already in progress") \
- EE(WSAEBADF,EBADF,"bad file descriptor") \
- EE(WSAEACCES,EACCES,"permission denied") \
- EE(WSAEFAULT,EFAULT,"bad address") \
- EE(WSAEINVAL,EINVAL,"invalid argument") \
- EE(WSAEMFILE,EMFILE,"too many opened files") \
- EE(WSAEWOULDBLOCK,EWOULDBLOCK,"resource temporarily unavailable") \
- EE(WSAEINPROGRESS,EINPROGRESS,"operation now in progress") \
- EE(WSAEALREADY,EAGAIN,"operation already in progress") \
- EE(WSAENOTSOCK,EBADF,"socket operation not on socket") \
- EE(WSAEDESTADDRREQ,EDESTADDRREQ,"destination address required") \
- EE(WSAEMSGSIZE,EMSGSIZE,"message too long") \
- EE(WSAEPROTOTYPE,EPROTOTYPE,"wrong protocol type for socket") \
- EE(WSAENOPROTOOPT,ENOPROTOOPT,"bad protocol option") \
- EE(WSAEADDRINUSE,EADDRINUSE,"address already in use") \
- EE(WSAEADDRNOTAVAIL,EADDRNOTAVAIL,"cannot assign requested address") \
- EE(WSAENETDOWN,ENETDOWN,"network is down") \
- EE(WSAENETUNREACH,ENETUNREACH,"network unreachable") \
- EE(WSAENETRESET,ENETRESET,"network dropped connection on reset") \
- EE(WSAECONNABORTED,ECONNABORTED,"software caused connection abort") \
- EE(WSAECONNRESET,ECONNRESET,"connection reset by peer") \
- EE(WSAENOBUFS,ENOBUFS,"no buffer space available") \
- EE(WSAEISCONN,EISCONN,"socket is already connected") \
- EE(WSAENOTCONN,ENOTCONN,"socket is not connected") \
- EE(WSAESHUTDOWN,ESHUTDOWN,"cannot send after socket shutdown") \
- EE(WSAETOOMANYREFS,ETOOMANYREFS,"too many references") \
- EE(WSAETIMEDOUT,ETIMEDOUT,"connection timed out") \
- EE(WSAECONNREFUSED,ECONNREFUSED,"connection refused") \
- EE(WSAELOOP,ELOOP,"cannot translate name") \
- EE(WSAENAMETOOLONG,ENAMETOOLONG,"name too long") \
- EE(WSAEHOSTDOWN,EHOSTDOWN,"host is down") \
- EE(WSAEHOSTUNREACH,EHOSTUNREACH,"no route to host") \
-
-typedef struct {
- int winsock;
- int unix;
- const char* string;
-} WinsockError;
-
-static const WinsockError _winsock_errors[] = {
-#define EE(w,u,s) { w, u, s },
- WINSOCK_ERRORS_LIST
-#undef EE
- { -1, -1, NULL }
-};
-
-/* this function reads the latest winsock error code and updates
- * errno to a matching value. It also returns the new value of
- * errno.
- */
-static int
-_fix_errno( void )
-{
- const WinsockError* werr = _winsock_errors;
- int unix = EINVAL; /* generic error code */
-
- winsock_error = WSAGetLastError();
-
- for ( ; werr->string != NULL; werr++ ) {
- if (werr->winsock == winsock_error) {
- unix = werr->unix;
- break;
- }
- }
- errno = unix;
- return -1;
-}
-
-static int
-_set_errno( int code )
-{
- winsock_error = -1;
- errno = code;
- return -1;
-}
-
-/* this function returns a string describing the latest Winsock error */
-const char*
-_errno_str(void)
-{
- const WinsockError* werr = _winsock_errors;
- const char* result = NULL;
-
- for ( ; werr->string; werr++ ) {
- if (werr->winsock == winsock_error) {
- result = werr->string;
- break;
- }
- }
-
- if (result == NULL) {
- result = "Unknown socket error";
- }
- return result;
-}
-#else
-static int
-_fix_errno( void )
-{
- return -1;
-}
-
-static int
-_set_errno( int code )
-{
- errno = code;
- return -1;
-}
-#endif
-
-/* socket types */
-
-static int
-socket_family_to_bsd( SocketFamily family )
-{
- switch (family) {
- case SOCKET_INET: return AF_INET;
- case SOCKET_IN6: return AF_INET6;
-#if HAVE_UNIX_SOCKETS
- case SOCKET_UNIX: return AF_LOCAL;
-#endif
- default: return -1;
- }
-}
-
-static int
-socket_type_to_bsd( SocketType type )
-{
- switch (type) {
- case SOCKET_DGRAM: return SOCK_DGRAM;
- case SOCKET_STREAM: return SOCK_STREAM;
- default: return 0;
- }
-}
-
-static SocketType
-socket_type_from_bsd( int type )
-{
- switch (type) {
- case SOCK_DGRAM: return SOCKET_DGRAM;
- case SOCK_STREAM: return SOCKET_STREAM;
- default: return (SocketType) SOCKET_UNSPEC;
- }
-}
-
-#if 0
-static int
-socket_type_check( SocketType type )
-{
- return (type == SOCKET_DGRAM || type == SOCKET_STREAM);
-}
-#endif
-
-typedef union {
- struct sockaddr sa[1];
- struct sockaddr_in in[1];
-#if HAVE_IN6_SOCKETS
- struct sockaddr_in6 in6[1];
-#endif
-#if HAVE_UNIX_SOCKETS
- struct sockaddr_un un[1];
-#endif
-} sockaddr_storage;
-
-/* socket addresses */
-
-void
-sock_address_init_inet( SockAddress* a, uint32_t ip, uint16_t port )
-{
- a->family = SOCKET_INET;
- a->u.inet.port = port;
- a->u.inet.address = ip;
-}
-
-void
-sock_address_init_in6 ( SockAddress* a, const uint8_t* ip6[16], uint16_t port )
-{
- a->family = SOCKET_IN6;
- a->u.in6.port = port;
- memcpy( a->u.in6.address, ip6, sizeof(a->u.in6.address) );
-}
-
-void
-sock_address_init_unix( SockAddress* a, const char* path )
-{
- a->family = SOCKET_UNIX;
- a->u._unix.path = strdup(path ? path : "");
- a->u._unix.owner = 1;
-}
-
-void sock_address_done( SockAddress* a )
-{
- if (a->family == SOCKET_UNIX && a->u._unix.owner) {
- a->u._unix.owner = 0;
- free((char*)a->u._unix.path);
- }
-}
-
-static char*
-format_char( char* buf, char* end, int c )
-{
- if (buf < end) {
- if (buf+1 == end) {
- *buf++ = 0;
- } else {
- *buf++ = (char) c;
- *buf = 0;
- }
- }
- return buf;
-}
-
-static char*
-format_str( char* buf, char* end, const char* str )
-{
- int len = strlen(str);
- int avail = end - buf;
-
- if (len > avail)
- len = avail;
-
- memcpy( buf, str, len );
- buf += len;
-
- if (buf == end)
- buf[-1] = 0;
- else
- buf[0] = 0;
-
- return buf;
-}
-
-static char*
-format_unsigned( char* buf, char* end, unsigned val )
-{
- char temp[16];
- int nn;
-
- for ( nn = 0; val != 0; nn++ ) {
- int rem = val % 10;
- temp[nn] = '0'+rem;
- val /= 10;
- }
-
- if (nn == 0)
- temp[nn++] = '0';
-
- while (nn > 0)
- buf = format_char(buf, end, temp[--nn]);
-
- return buf;
-}
-
-static char*
-format_hex( char* buf, char* end, unsigned val, int ndigits )
-{
- int shift = 4*ndigits;
- static const char hex[16] = "0123456789abcdef";
-
- while (shift >= 0) {
- buf = format_char(buf, end, hex[(val >> shift) & 15]);
- shift -= 4;
- }
- return buf;
-}
-
-static char*
-format_ip4( char* buf, char* end, uint32_t ip )
-{
- buf = format_unsigned( buf, end, (unsigned)(ip >> 24) );
- buf = format_char( buf, end, '.');
- buf = format_unsigned( buf, end, (unsigned)((ip >> 16) & 255));
- buf = format_char( buf, end, '.');
- buf = format_unsigned( buf, end, (unsigned)((ip >> 8) & 255));
- buf = format_char( buf, end, '.');
- buf = format_unsigned( buf, end, (unsigned)(ip & 255));
- return buf;
-}
-
-static char*
-format_ip6( char* buf, char* end, const uint8_t* ip6 )
-{
- int nn;
- for (nn = 0; nn < 8; nn++) {
- int val = (ip6[0] << 16) | ip6[1];
- ip6 += 2;
- if (nn > 0)
- buf = format_char(buf, end, ':');
- if (val == 0)
- continue;
- buf = format_hex(buf, end, val, 4);
- }
- return buf;
-}
-
-const char*
-sock_address_to_string( const SockAddress* a )
-{
- static char buf0[PATH_MAX];
- char *buf = buf0, *end = buf + sizeof(buf0);
-
- switch (a->family) {
- case SOCKET_INET:
- buf = format_ip4( buf, end, a->u.inet.address );
- buf = format_char( buf, end, ':' );
- buf = format_unsigned( buf, end, (unsigned) a->u.inet.port );
- break;
-
- case SOCKET_IN6:
- buf = format_ip6( buf, end, a->u.in6.address );
- buf = format_char( buf, end, ':' );
- buf = format_unsigned( buf, end, (unsigned) a->u.in6.port );
- break;
-
- case SOCKET_UNIX:
- buf = format_str( buf, end, a->u._unix.path );
- break;
-
- default:
- return NULL;
- }
-
- return buf0;
-}
-
-int
-sock_address_equal( const SockAddress* a, const SockAddress* b )
-{
- if (a->family != b->family)
- return 0;
-
- switch (a->family) {
- case SOCKET_INET:
- return (a->u.inet.address == b->u.inet.address &&
- a->u.inet.port == b->u.inet.port);
-
- case SOCKET_IN6:
- return (!memcmp(a->u.in6.address, b->u.in6.address, 16) &&
- a->u.in6.port == b->u.in6.port);
-
- case SOCKET_UNIX:
- return (!strcmp(a->u._unix.path, b->u._unix.path));
-
- default:
- return 0;
- }
-}
-
-int
-sock_address_get_port( const SockAddress* a )
-{
- switch (a->family) {
- case SOCKET_INET:
- return a->u.inet.port;
- case SOCKET_IN6:
- return a->u.in6.port;
- default:
- return -1;
- }
-}
-
-void
-sock_address_set_port( SockAddress* a, uint16_t port )
-{
- switch (a->family) {
- case SOCKET_INET:
- a->u.inet.port = port;
- break;
- case SOCKET_IN6:
- a->u.in6.port = port;
- break;
- default:
- ;
- }
-}
-
-const char*
-sock_address_get_path( const SockAddress* a )
-{
- if (a->family == SOCKET_UNIX)
- return a->u._unix.path;
- else
- return NULL;
-}
-
-int
-sock_address_get_ip( const SockAddress* a )
-{
- if (a->family == SOCKET_INET)
- return a->u.inet.address;
-
- return -1;
-}
-
-#if 0
-char*
-bufprint_sock_address( char* p, char* end, const SockAddress* a )
-{
- switch (a->family) {
- case SOCKET_INET:
- {
- uint32_t ip = a->u.inet.address;
-
- return bufprint( p, end, "%d.%d.%d.%d:%d",
- (ip >> 24) & 255, (ip >> 16) & 255,
- (ip >> 8) & 255, ip & 255,
- a->u.inet.port );
- }
- case SOCKET_IN6:
- {
- int nn = 0;
- const char* column = "";
- const uint8_t* tab = a->u.in6.address;
- for (nn = 0; nn < 16; nn += 2) {
- p = bufprint(p, end, "%s%04x", column, (tab[n] << 8) | tab[n+1]);
- column = ":";
- }
- return bufprint(p, end, ":%d", a->u.in6.port);
- }
- case SOCKET_UNIX:
- {
- return bufprint(p, end, "%s", a->u._unix.path);
- }
- default:
- return p;
- }
-}
-#endif
-
-static int
-sock_address_to_bsd( const SockAddress* a, sockaddr_storage* paddress, socklen_t *psize )
-{
- switch (a->family) {
- case SOCKET_INET:
- {
- struct sockaddr_in* dst = paddress->in;
-
- *psize = sizeof(*dst);
-
- memset( paddress, 0, *psize );
-
- dst->sin_family = AF_INET;
- dst->sin_port = htons(a->u.inet.port);
- dst->sin_addr.s_addr = htonl(a->u.inet.address);
- }
- break;
-
-#if HAVE_IN6_SOCKETS
- case SOCKET_IN6:
- {
- struct sockaddr_in6* dst = paddress->in6;
-
- *psize = sizeof(*dst);
-
- memset( paddress, 0, *psize );
-
- dst->sin6_family = AF_INET6;
- dst->sin6_port = htons(a->u.in6.port);
- memcpy( dst->sin6_addr.s6_addr, a->u.in6.address, 16 );
- }
- break;
-#endif /* HAVE_IN6_SOCKETS */
-
-#if HAVE_UNIX_SOCKETS
- case SOCKET_UNIX:
- {
- int slen = strlen(a->u._unix.path);
- struct sockaddr_un* dst = paddress->un;
-
- if (slen >= (int)UNIX_PATH_MAX)
- return -1;
-
- memset( dst, 0, sizeof(*dst) );
-
- dst->sun_family = AF_LOCAL;
- memcpy( dst->sun_path, a->u._unix.path, slen );
- dst->sun_path[slen] = 0;
-
- *psize = (char*)&dst->sun_path[slen+1] - (char*)dst;
- }
- break;
-#endif /* HAVE_UNIX_SOCKETS */
-
- default:
- return _set_errno(EINVAL);
- }
-
- return 0;
-}
-
-static int
-sock_address_from_bsd( SockAddress* a, const void* from, size_t fromlen )
-{
- switch (((struct sockaddr *)from)->sa_family) {
- case AF_INET:
- {
- const struct sockaddr_in* src = from;
-
- if (fromlen < sizeof(*src))
- return _set_errno(EINVAL);
-
- a->family = SOCKET_INET;
- a->u.inet.port = ntohs(src->sin_port);
- a->u.inet.address = ntohl(src->sin_addr.s_addr);
- }
- break;
-
-#ifdef HAVE_IN6_SOCKETS
- case AF_INET6:
- {
- const struct sockaddr_in6* src = from;
-
- if (fromlen < sizeof(*src))
- return _set_errno(EINVAL);
-
- a->family = SOCKET_IN6;
- a->u.in6.port = ntohs(src->sin6_port);
- memcpy(a->u.in6.address, src->sin6_addr.s6_addr, 16);
- }
- break;
-#endif
-
-#ifdef HAVE_UNIX_SOCKETS
- case AF_LOCAL:
- {
- const struct sockaddr_un* src = from;
- char* end;
-
- if (fromlen < sizeof(*src))
- return _set_errno(EINVAL);
-
- /* check that the path is zero-terminated */
- end = memchr(src->sun_path, 0, UNIX_PATH_MAX);
- if (end == NULL)
- return _set_errno(EINVAL);
-
- a->family = SOCKET_UNIX;
- a->u._unix.owner = 1;
- a->u._unix.path = strdup(src->sun_path);
- }
- break;
-#endif
-
- default:
- return _set_errno(EINVAL);
- }
- return 0;
-}
-
-
-int
-sock_address_init_resolve( SockAddress* a, const char* hostname, uint16_t port, int preferIn6 )
-{
- struct addrinfo hints[1];
- struct addrinfo* res;
- int ret;
-
- memset(hints, 0, sizeof(hints));
- hints->ai_family = preferIn6 ? AF_INET6 : AF_UNSPEC;
-
- ret = getaddrinfo(hostname, NULL, hints, &res);
- if (ret != 0) {
- int err;
-
- switch (ret) {
- case EAI_AGAIN: /* server is down */
- case EAI_FAIL: /* server is sick */
- err = EHOSTDOWN;
- break;
-
-#ifdef EAI_NODATA
- case EAI_NODATA:
-#endif
- case EAI_NONAME:
- err = ENOENT;
- break;
-
- case EAI_MEMORY:
- err = ENOMEM;
- break;
-
- default:
- err = EINVAL;
- }
- return _set_errno(err);
- }
-
- /* Parse the returned list of addresses. */
- {
- struct addrinfo* res_ipv4 = NULL;
- struct addrinfo* res_ipv6 = NULL;
- struct addrinfo* r;
-
- /* If preferIn6 is false, we stop on the first IPv4 address,
- * otherwise, we stop on the first IPv6 one
- */
- for (r = res; r != NULL; r = r->ai_next) {
- if (r->ai_family == AF_INET && res_ipv4 == NULL) {
- res_ipv4 = r;
- if (!preferIn6)
- break;
- }
- else if (r->ai_family == AF_INET6 && res_ipv6 == NULL) {
- res_ipv6 = r;
- if (preferIn6)
- break;
- }
- }
-
- /* Select the best address in 'r', which will be NULL
- * if there is no corresponding address.
- */
- if (preferIn6) {
- r = res_ipv6;
- if (r == NULL)
- r = res_ipv4;
- } else {
- r = res_ipv4;
- if (r == NULL)
- r = res_ipv6;
- }
-
- if (r == NULL) {
- ret = _set_errno(ENOENT);
- goto Exit;
- }
-
- /* Convert to a SockAddress */
- ret = sock_address_from_bsd( a, r->ai_addr, r->ai_addrlen );
- if (ret < 0)
- goto Exit;
- }
-
- /* need to set the port */
- switch (a->family) {
- case SOCKET_INET: a->u.inet.port = port; break;
- case SOCKET_IN6: a->u.in6.port = port; break;
- default: ;
- }
-
-Exit:
- freeaddrinfo(res);
- return ret;
-}
-
-/* The Winsock headers for mingw lack some definitions */
-#ifndef AI_ADDRCONFIG
-# define AI_ADDRCONFIG 0
-#endif
-
-SockAddress**
-sock_address_list_create( const char* hostname,
- const char* port,
- unsigned flags )
-{
- SockAddress** list = NULL;
- SockAddress* addr;
- int nn, count, ret;
- struct addrinfo ai, *res, *e;
-
- memset(&ai, 0, sizeof(ai));
- ai.ai_flags |= AI_ADDRCONFIG;
- ai.ai_family = PF_UNSPEC;
-
- if (flags & SOCKET_LIST_FORCE_INET)
- ai.ai_family = PF_INET;
- else if (flags & SOCKET_LIST_FORCE_IN6)
- ai.ai_family = PF_INET6;
-
- if (flags & SOCKET_LIST_PASSIVE)
- ai.ai_flags |= AI_PASSIVE;
- else
- ai.ai_flags |= AI_CANONNAME;
-
- if (flags & SOCKET_LIST_DGRAM)
- ai.ai_socktype = SOCK_DGRAM;
-
- while (1) {
- struct addrinfo hints = ai;
-
- ret = getaddrinfo(hostname, port, &hints, &res);
- if (ret == 0)
- break;
-
- switch (ret) {
-#ifdef EAI_ADDRFAMILY
- case EAI_ADDRFAMILY:
-#endif
- case EAI_NODATA:
- _set_errno(ENOENT);
- break;
- case EAI_FAMILY:
- _set_errno(EAFNOSUPPORT);
- break;
- case EAI_AGAIN:
- _set_errno(EAGAIN);
- break;
-#ifdef EAI_SYSTEM
- case EAI_SYSTEM:
- if (errno == EINTR)
- continue;
- break;
-#endif
- default:
- _set_errno(EINVAL);
- }
- return NULL;
- }
-
- /* allocate result list */
- for (count = 0, e = res; e != NULL; e = e->ai_next)
- count += 1;
-
- AARRAY_NEW(list, count+1);
- AARRAY_NEW(addr, count);
-
- for (nn = 0, e = res; e != NULL; e = e->ai_next) {
-
- ret = sock_address_from_bsd(addr, e->ai_addr, e->ai_addrlen);
- if (ret < 0)
- continue;
-
- list[nn++] = addr++;
- }
- list[nn] = NULL;
- freeaddrinfo(res);
- return list;
-}
-
-SockAddress**
-sock_address_list_create2(const char* host_and_port, unsigned flags )
-{
- char host_name[512];
- const char* actual_host_name = "localhost";
- // Parse host and port name.
- const char* port_name = strchr(host_and_port, ':');
- if (port_name != NULL) {
- int to_copy = MIN((int)sizeof(host_name)-1, port_name - host_and_port);
- if (to_copy != 0) {
- memcpy(host_name, host_and_port, to_copy);
- host_name[to_copy] = '\0';
- actual_host_name = host_name;
- port_name++;
- } else {
- return NULL;
- }
- } else {
- port_name = host_and_port;
- }
- // Make sure that port_name is not empty.
- if (port_name[0] == '\0') {
- return NULL;
- }
- return sock_address_list_create(actual_host_name, port_name, flags);
-}
-
-void
-sock_address_list_free( SockAddress** list )
-{
- int nn;
- SockAddress* addr;
-
- if (list == NULL)
- return;
-
- addr = list[0];
- for (nn = 0; list[nn] != NULL; nn++) {
- sock_address_done(list[nn]);
- list[nn] = NULL;
- }
- AFREE(addr);
- AFREE(list);
-}
-
-int
-sock_address_get_numeric_info( SockAddress* a,
- char* host,
- size_t hostlen,
- char* serv,
- size_t servlen )
-{
- struct sockaddr* saddr;
- socklen_t slen;
- int ret;
-
- switch (a->family) {
- case SOCKET_INET:
- saddr = (struct sockaddr*) &a->u.inet.address;
- slen = sizeof(a->u.inet.address);
- break;
-
-#if HAVE_IN6_SOCKET
- case SOCKET_IN6:
- saddr = (struct sockaddr*) &a->u.in6.address;
- slen = sizeof(a->u.in6.address);
- break;
-#endif
- default:
- return _set_errno(EINVAL);
- }
-
- ret = getnameinfo( saddr, slen, host, hostlen, serv, servlen,
- NI_NUMERICHOST | NI_NUMERICSERV );
-
- switch (ret) {
- case 0:
- break;
- case EAI_AGAIN:
- ret = EAGAIN;
- break;
- default:
- ret = EINVAL;
- }
- return ret;
-}
-
-int
-socket_create( SocketFamily family, SocketType type )
-{
- int ret;
- int sfamily = socket_family_to_bsd(family);
- int stype = socket_type_to_bsd(type);
-
- if (sfamily < 0 || stype < 0) {
- return _set_errno(EINVAL);
- }
-
- QSOCKET_CALL(ret, socket(sfamily, stype, 0));
- if (ret < 0)
- return _fix_errno();
-
- return ret;
-}
-
-
-int
-socket_create_inet( SocketType type )
-{
- return socket_create( SOCKET_INET, type );
-}
-
-#if HAVE_IN6_SOCKETS
-int
-socket_create_in6 ( SocketType type )
-{
- return socket_create( SOCKET_IN6, type );
-}
-#endif
-
-#if HAVE_UNIX_SOCKETS
-int
-socket_create_unix( SocketType type )
-{
- return socket_create( SOCKET_UNIX, type );
-}
-#endif
-
-int socket_can_read(int fd)
-{
-#ifdef _WIN32
- unsigned long opt;
-
- if (ioctlsocket(fd, FIONREAD, &opt) < 0)
- return 0;
-
- return opt;
-#else
- int opt;
-
- if (ioctl(fd, FIONREAD, &opt) < 0)
- return 0;
-
- return opt;
-#endif
-}
-
-#define SOCKET_CALL(cmd) \
- int ret; \
- QSOCKET_CALL(ret, (cmd)); \
- if (ret < 0) \
- return _fix_errno(); \
- return ret; \
-
-int
-socket_send(int fd, const void* buf, int buflen)
-{
- SOCKET_CALL(send(fd, buf, buflen, 0))
-}
-
-int
-socket_send_oob( int fd, const void* buf, int buflen )
-{
- SOCKET_CALL(send(fd, buf, buflen, MSG_OOB));
-}
-
-int
-socket_sendto(int fd, const void* buf, int buflen, const SockAddress* to)
-{
- sockaddr_storage sa;
- socklen_t salen;
-
- if (sock_address_to_bsd(to, &sa, &salen) < 0)
- return -1;
-
- SOCKET_CALL(sendto(fd, buf, buflen, 0, sa.sa, salen));
-}
-
-int
-socket_recv(int fd, void* buf, int len)
-{
- SOCKET_CALL(recv(fd, buf, len, 0));
-}
-
-int
-socket_recvfrom(int fd, void* buf, int len, SockAddress* from)
-{
- sockaddr_storage sa;
- socklen_t salen = sizeof(sa);
- int ret;
-
- QSOCKET_CALL(ret,recvfrom(fd,buf,len,0,sa.sa,&salen));
- if (ret < 0)
- return _fix_errno();
-
- if (sock_address_from_bsd(from, &sa, salen) < 0)
- return -1;
-
- return ret;
-}
-
-int
-socket_connect( int fd, const SockAddress* address )
-{
- sockaddr_storage addr;
- socklen_t addrlen;
-
- if (sock_address_to_bsd(address, &addr, &addrlen) < 0)
- return -1;
-
- SOCKET_CALL(connect(fd,addr.sa,addrlen));
-}
-
-int
-socket_bind( int fd, const SockAddress* address )
-{
- sockaddr_storage addr;
- socklen_t addrlen;
-
- if (sock_address_to_bsd(address, &addr, &addrlen) < 0)
- return -1;
-
- SOCKET_CALL(bind(fd, addr.sa, addrlen));
-}
-
-int
-socket_get_address( int fd, SockAddress* address )
-{
- sockaddr_storage addr;
- socklen_t addrlen = sizeof(addr);
- int ret;
-
- QSOCKET_CALL(ret, getsockname(fd, addr.sa, &addrlen));
- if (ret < 0)
- return _fix_errno();
-
- return sock_address_from_bsd(address, &addr, addrlen);
-}
-
-int
-socket_get_peer_address( int fd, SockAddress* address )
-{
- sockaddr_storage addr;
- socklen_t addrlen = sizeof(addr);
- int ret;
-
- QSOCKET_CALL(ret, getpeername(fd, addr.sa, &addrlen));
- if (ret < 0)
- return _fix_errno();
-
- return sock_address_from_bsd(address, &addr, addrlen);
-}
-
-int
-socket_listen( int fd, int backlog )
-{
- SOCKET_CALL(listen(fd, backlog));
-}
-
-int
-socket_accept( int fd, SockAddress* address )
-{
- sockaddr_storage addr;
- socklen_t addrlen = sizeof(addr);
- int ret;
-
- QSOCKET_CALL(ret, accept(fd, addr.sa, &addrlen));
- if (ret < 0)
- return _fix_errno();
-
- if (address) {
- if (sock_address_from_bsd(address, &addr, addrlen) < 0) {
- socket_close(ret);
- return -1;
- }
- }
- return ret;
-}
-
-static int
-socket_getoption(int fd, int domain, int option, int defaut)
-{
- int ret;
- while (1) {
-#ifdef _WIN32
- DWORD opt = (DWORD)-1;
-#else
- int opt = -1;
-#endif
- socklen_t optlen = sizeof(opt);
- ret = getsockopt(fd, domain, option, (char*)&opt, &optlen);
- if (ret == 0)
- return (int)opt;
- if (errno != EINTR)
- return defaut;
- }
-#undef OPT_CAST
-}
-
-
-SocketType socket_get_type(int fd)
-{
- int so_type = socket_getoption(fd, SOL_SOCKET, SO_TYPE, -1);
- return socket_type_from_bsd(so_type);
-}
-
-int socket_set_nonblock(int fd)
-{
-#ifdef _WIN32
- unsigned long opt = 1;
- return ioctlsocket(fd, FIONBIO, &opt);
-#else
- int flags = fcntl(fd, F_GETFL);
- return fcntl(fd, F_SETFL, flags | O_NONBLOCK);
-#endif
-}
-
-int socket_set_blocking(int fd)
-{
-#ifdef _WIN32
- unsigned long opt = 0;
- return ioctlsocket(fd, FIONBIO, &opt);
-#else
- int flags = fcntl(fd, F_GETFL);
- return fcntl(fd, F_SETFL, flags & ~O_NONBLOCK);
-#endif
-}
-
-static int
-socket_setoption(int fd, int domain, int option, int _flag)
-{
-#ifdef _WIN32
- DWORD flag = (DWORD) _flag;
-#else
- int flag = _flag;
-#endif
- return setsockopt( fd, domain, option, (const char*)&flag, sizeof(flag) );
-}
-
-int socket_set_xreuseaddr(int fd)
-{
-#ifdef _WIN32
- /* on Windows, SO_REUSEADDR is used to indicate that several programs can
- * bind to the same port. this is completely different from the Unix
- * semantics. instead of SO_EXCLUSIVEADDR to ensure that explicitely prevent
- * this.
- */
- return socket_setoption(fd, SOL_SOCKET, SO_EXCLUSIVEADDRUSE, 1);
-#else
- return socket_setoption(fd, SOL_SOCKET, SO_REUSEADDR, 1);
-#endif
-}
-
-
-int socket_set_oobinline(int fd)
-{
- return socket_setoption(fd, SOL_SOCKET, SO_OOBINLINE, 1);
-}
-
-
-int socket_set_nodelay(int fd)
-{
- return socket_setoption(fd, IPPROTO_TCP, TCP_NODELAY, 1);
-}
-
-int socket_set_ipv6only(int fd)
-{
-/* IPV6_ONLY is only supported since Vista on Windows,
- * and the Mingw headers lack its definition anyway.
- */
-#if defined(_WIN32) && !defined(IPV6_V6ONLY)
- return 0;
-#else
- return socket_setoption(fd, IPPROTO_IPV6, IPV6_V6ONLY, 1);
-#endif
-}
-
-
-int socket_get_error(int fd)
-{
- return socket_getoption(fd, SOL_SOCKET, SO_ERROR, -1);
-}
-
-#ifdef _WIN32
-#include <stdlib.h>
-
-static void socket_cleanup(void)
-{
- WSACleanup();
-}
-
-int socket_init(void)
-{
- WSADATA Data;
- int ret, err;
-
- ret = WSAStartup(MAKEWORD(2,2), &Data);
- if (ret != 0) {
- err = WSAGetLastError();
- return -1;
- }
- atexit(socket_cleanup);
- return 0;
-}
-
-#else /* !_WIN32 */
-
-int socket_init(void)
-{
- return 0; /* nothing to do on Unix */
-}
-
-#endif /* !_WIN32 */
-
-#ifdef _WIN32
-
-void
-socket_close( int fd )
-{
- int old_errno = errno;
-
- shutdown( fd, SD_BOTH );
- /* we want to drain the socket before closing it */
- //qemu_set_fd_handler( fd, socket_close_handler, NULL, (void*)fd );
- closesocket(fd);
-
- errno = old_errno;
-}
-
-#else /* !_WIN32 */
-
-#include <unistd.h>
-
-void
-socket_close( int fd )
-{
- int old_errno = errno;
-
- shutdown( fd, SHUT_RDWR );
- close( fd );
-
- errno = old_errno;
-}
-
-#endif /* !_WIN32 */
-
-
-static int
-socket_bind_server( int s, const SockAddress* to, SocketType type )
-{
- socket_set_xreuseaddr(s);
-
- if (socket_bind(s, to) < 0) {
- D("could not bind server socket address %s: %s",
- sock_address_to_string(to), errno_str);
- goto FAIL;
- }
-
- if (type == SOCKET_STREAM) {
- if (socket_listen(s, 4) < 0) {
- D("could not listen server socket %s: %s",
- sock_address_to_string(to), errno_str);
- goto FAIL;
- }
- }
- return s;
-
-FAIL:
- socket_close(s);
- return -1;
-}
-
-
-static int
-socket_connect_client( int s, const SockAddress* to )
-{
- if (socket_connect(s, to) < 0) {
- D( "could not connect client socket to %s: %s\n",
- sock_address_to_string(to), errno_str );
- socket_close(s);
- return -1;
- }
-
- socket_set_nonblock( s );
- return s;
-}
-
-
-static int
-socket_in_server( int address, int port, SocketType type )
-{
- SockAddress addr;
- int s;
-
- sock_address_init_inet( &addr, address, port );
- s = socket_create_inet( type );
- if (s < 0)
- return -1;
-
- return socket_bind_server( s, &addr, type );
-}
-
-
-static int
-socket_in_client( SockAddress* to, SocketType type )
-{
- int s;
-
- s = socket_create_inet( type );
- if (s < 0) return -1;
-
- return socket_connect_client( s, to );
-}
-
-
-int
-socket_loopback_server( int port, SocketType type )
-{
- return socket_in_server( SOCK_ADDRESS_INET_LOOPBACK, port, type );
-}
-
-int
-socket_loopback_client( int port, SocketType type )
-{
- SockAddress addr;
-
- sock_address_init_inet( &addr, SOCK_ADDRESS_INET_LOOPBACK, port );
- return socket_in_client( &addr, type );
-}
-
-
-int
-socket_network_client( const char* host, int port, SocketType type )
-{
- SockAddress addr;
-
- if (sock_address_init_resolve( &addr, host, port, 0) < 0)
- return -1;
-
- return socket_in_client( &addr, type );
-}
-
-
-int
-socket_anyaddr_server( int port, SocketType type )
-{
- return socket_in_server( SOCK_ADDRESS_INET_ANY, port, type );
-}
-
-int
-socket_accept_any( int server_fd )
-{
- int fd;
-
- QSOCKET_CALL(fd, accept( server_fd, NULL, 0 ));
- if (fd < 0) {
- D( "could not accept client connection from fd %d: %s",
- server_fd, errno_str );
- return -1;
- }
-
- /* set to non-blocking */
- socket_set_nonblock( fd );
- return fd;
-}
-
-
-#if HAVE_UNIX_SOCKETS
-
-int
-socket_unix_server( const char* name, SocketType type )
-{
- SockAddress addr;
- int s, ret;
-
- s = socket_create_unix( type );
- if (s < 0)
- return -1;
-
- sock_address_init_unix( &addr, name );
-
- do {
- ret = unlink( name );
- } while (ret < 0 && errno == EINTR);
-
- ret = socket_bind_server( s, &addr, type );
-
- sock_address_done( &addr );
- return ret;
-}
-
-int
-socket_unix_client( const char* name, SocketType type )
-{
- SockAddress addr;
- int s, ret;
-
- s = socket_create_unix(type);
- if (s < 0)
- return -1;
-
- sock_address_init_unix( &addr, name );
-
- ret = socket_connect_client( s, &addr );
-
- sock_address_done( &addr );
- return ret;
-}
-
-#endif /* HAVE_UNIX_SOCKETS */
-
-
-
-int
-socket_pair(int *fd1, int *fd2)
-{
-#ifndef _WIN32
- int fds[2];
- int ret = socketpair(AF_UNIX, SOCK_STREAM, 0, fds);
-
- if (!ret) {
- socket_set_nonblock(fds[0]);
- socket_set_nonblock(fds[1]);
- *fd1 = fds[0];
- *fd2 = fds[1];
- }
- return ret;
-#else /* _WIN32 */
- /* on Windows, select() only works with network sockets, which
- * means we absolutely cannot use Win32 PIPEs to implement
- * socket pairs with the current event loop implementation.
- * We're going to do like Cygwin: create a random pair
- * of localhost TCP sockets and connect them together
- */
- int s0, s1, s2, port;
- struct sockaddr_in sockin;
- socklen_t len;
-
- /* first, create the 'server' socket.
- * a port number of 0 means 'any port between 1024 and 5000.
- * see Winsock bind() documentation for details */
- s0 = socket_loopback_server( 0, SOCK_STREAM );
- if (s0 < 0)
- return -1;
-
- /* now connect a client socket to it, we first need to
- * extract the server socket's port number */
- len = sizeof sockin;
- if (getsockname(s0, (struct sockaddr*) &sockin, &len) < 0) {
- closesocket (s0);
- return -1;
- }
-
- port = ntohs(sockin.sin_port);
- s2 = socket_loopback_client( port, SOCK_STREAM );
- if (s2 < 0) {
- closesocket(s0);
- return -1;
- }
-
- /* we need to accept the connection on the server socket
- * this will create the second socket for the pair
- */
- len = sizeof sockin;
- s1 = accept(s0, (struct sockaddr*) &sockin, &len);
- if (s1 == INVALID_SOCKET) {
- closesocket (s0);
- closesocket (s2);
- return -1;
- }
- socket_set_nonblock(s1);
-
- /* close server socket */
- closesocket(s0);
- *fd1 = s1;
- *fd2 = s2;
- return 0;
-#endif /* _WIN32 */
-}
-
-
-
-int
-socket_mcast_inet_add_membership( int s, uint32_t ip )
-{
- struct ip_mreq imr;
-
- imr.imr_multiaddr.s_addr = htonl(ip);
- imr.imr_interface.s_addr = htonl(INADDR_ANY);
-
- if ( setsockopt( s, IPPROTO_IP, IP_ADD_MEMBERSHIP,
- (const char *)&imr,
- sizeof(struct ip_mreq)) < 0 )
- {
- return _fix_errno();
- }
- return 0;
-}
-
-int
-socket_mcast_inet_drop_membership( int s, uint32_t ip )
-{
- struct ip_mreq imr;
-
- imr.imr_multiaddr.s_addr = htonl(ip);
- imr.imr_interface.s_addr = htonl(INADDR_ANY);
-
- if ( setsockopt( s, IPPROTO_IP, IP_DROP_MEMBERSHIP,
- (const char *)&imr,
- sizeof(struct ip_mreq)) < 0 )
- {
- return _fix_errno();
- }
- return 0;
-}
-
-int
-socket_mcast_inet_set_loop( int s, int enabled )
-{
- return socket_setoption( s, IPPROTO_IP, IP_MULTICAST_LOOP, !!enabled );
-}
-
-int
-socket_mcast_inet_set_ttl( int s, int ttl )
-{
- return socket_setoption( s, IPPROTO_IP, IP_MULTICAST_TTL, ttl );
-}
-
-
-char*
-host_name( void )
-{
- static char buf[256]; /* 255 is the max host name length supported by DNS */
- int ret;
-
- QSOCKET_CALL(ret, gethostname(buf, sizeof(buf)));
-
- if (ret < 0)
- return "localhost";
- else
- return buf;
-}
diff --git a/emulator/opengl/tests/event_injector/sockets.h b/emulator/opengl/tests/event_injector/sockets.h
deleted file mode 100644
index ea48c5f..0000000
--- a/emulator/opengl/tests/event_injector/sockets.h
+++ /dev/null
@@ -1,432 +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.
-*/
-/* headers to use the BSD sockets */
-#ifndef ANDROID_SOCKET_H
-#define ANDROID_SOCKET_H
-
-#include <stddef.h>
-#include <stdint.h>
-#include <errno.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* we're going to hide the implementation details of sockets behind
- * a simple wrapper interface declared here.
- *
- * all socket operations set the global 'errno' variable on error.
- * this is unlike Winsock which instead modifies another internal
- * variable accessed through WSAGetLastError() and WSASetLastError()
- */
-
-/* the wrapper will convert any Winsock error message into an errno
- * code for you. There are however a few standard Unix error codes
- * that are not defined by the MS C library headers, so we add them
- * here. We use the official Winsock error codes, which are documented
- * even though we don't want to include the Winsock headers
- */
-#ifdef _WIN32
-# ifndef EINTR
-# define EINTR 10004
-# endif
-# ifndef EAGAIN
-# define EAGAIN 10035
-# endif
-# ifndef EWOULDBLOCK
-# define EWOULDBLOCK EAGAIN
-# endif
-# ifndef EINPROGRESS
-# define EINPROGRESS 10036
-# endif
-# ifndef EALREADY
-# define EALREADY 10037
-# endif
-# ifndef EDESTADDRREQ
-# define EDESTADDRREQ 10039
-# endif
-# ifndef EMSGSIZE
-# define EMSGSIZE 10040
-# endif
-# ifndef EPROTOTYPE
-# define EPROTOTYPE 10041
-# endif
-# ifndef ENOPROTOOPT
-# define ENOPROTOOPT 10042
-# endif
-# ifndef EAFNOSUPPORT
-# define EAFNOSUPPORT 10047
-# endif
-# ifndef EADDRINUSE
-# define EADDRINUSE 10048
-# endif
-# ifndef EADDRNOTAVAIL
-# define EADDRNOTAVAIL 10049
-# endif
-# ifndef ENETDOWN
-# define ENETDOWN 10050
-# endif
-# ifndef ENETUNREACH
-# define ENETUNREACH 10051
-# endif
-# ifndef ENETRESET
-# define ENETRESET 10052
-# endif
-# ifndef ECONNABORTED
-# define ECONNABORTED 10053
-# endif
-# ifndef ECONNRESET
-# define ECONNRESET 10054
-# endif
-# ifndef ENOBUFS
-# define ENOBUFS 10055
-# endif
-# ifndef EISCONN
-# define EISCONN 10056
-# endif
-# ifndef ENOTCONN
-# define ENOTCONN 10057
-# endif
-# ifndef ESHUTDOWN
-# define ESHUTDOWN 10058
-# endif
-# ifndef ETOOMANYREFS
-# define ETOOMANYREFS 10059
-# endif
-# ifndef ETIMEDOUT
-# define ETIMEDOUT 10060
-# endif
-# ifndef ECONNREFUSED
-# define ECONNREFUSED 10061
-# endif
-# ifndef ELOOP
-# define ELOOP 10062
-# endif
-# ifndef EHOSTDOWN
-# define EHOSTDOWN 10064
-# endif
-# ifndef EHOSTUNREACH
-# define EHOSTUNREACH 10065
-# endif
-#endif /* _WIN32 */
-
-/* Define 'errno_str' as a handy macro to return the string
- * corresponding to a given errno code. On Unix, this is
- * equivalent to strerror(errno), but on Windows, this will
- * take care of Winsock-originated errors as well.
- */
-#ifdef _WIN32
- extern const char* _errno_str(void);
-# define errno_str _errno_str()
-#else
-# define errno_str strerror(errno)
-#endif
-
-/* always enable IPv6 sockets for now.
- * the QEMU internal router is not capable of
- * supporting them, but we plan to replace it
- * with something better in the future.
- */
-#define HAVE_IN6_SOCKETS 1
-
-/* Unix sockets are not available on Win32 */
-#ifndef _WIN32
-# define HAVE_UNIX_SOCKETS 1
-#endif
-
-/* initialize the socket sub-system. this must be called before
- * using any of the declarations below.
- */
-int socket_init( void );
-
-/* return the name of the current host */
-char* host_name( void );
-
-/* supported socket types */
-typedef enum {
- SOCKET_DGRAM = 0,
- SOCKET_STREAM
-} SocketType;
-
-/* supported socket families */
-typedef enum {
- SOCKET_UNSPEC,
- SOCKET_INET,
- SOCKET_IN6,
- SOCKET_UNIX
-} SocketFamily;
-
-/* Generic socket address structure. Note that for Unix
- * sockets, the path is stored in a heap-allocated block,
- * unless the 'owner' field is cleared. If this is the case,
- */
-typedef struct {
- SocketFamily family;
- union {
- struct {
- uint16_t port;
- uint32_t address;
- } inet;
- struct {
- uint16_t port;
- uint8_t address[16];
- } in6;
- struct {
- int owner;
- const char* path;
- } _unix;
- } u;
-} SockAddress;
-
-#define SOCK_ADDRESS_INET_ANY 0x00000000
-#define SOCK_ADDRESS_INET_LOOPBACK 0x7f000001
-
-/* initialize a new IPv4 socket address, the IP address and port are
- * in host endianess.
- */
-void sock_address_init_inet( SockAddress* a, uint32_t ip, uint16_t port );
-
-/* Initialize an IPv6 socket address, the address is in network order
- * and the port in host endianess.
- */
-#if HAVE_IN6_SOCKETS
-void sock_address_init_in6 ( SockAddress* a, const uint8_t* ip6[16], uint16_t port );
-#endif
-
-/* Intialize a Unix socket address, this will copy the 'path' string into the
- * heap. You need to call sock_address_done() to release the copy
- */
-#if HAVE_UNIX_SOCKETS
-void sock_address_init_unix( SockAddress* a, const char* path );
-#endif
-
-/* Finalize a socket address, only needed for now for Unix addresses */
-void sock_address_done( SockAddress* a );
-
-int sock_address_equal( const SockAddress* a, const SockAddress* b );
-
-/* return a static string describing the address */
-const char* sock_address_to_string( const SockAddress* a );
-
-static __inline__
-SocketFamily sock_address_get_family( const SockAddress* a )
-{
- return a->family;
-}
-
-/* return the port number of a given socket address, or -1 if it's a Unix one */
-int sock_address_get_port( const SockAddress* a );
-
-/* set the port number of a given socket address, don't do anything for Unix ones */
-void sock_address_set_port( SockAddress* a, uint16_t port );
-
-/* return the path of a given Unix socket, returns NULL for non-Unix ones */
-const char* sock_address_get_path( const SockAddress* a );
-
-/* return the inet address, or -1 if it's not SOCKET_INET */
-int sock_address_get_ip( const SockAddress* a );
-
-/* bufprint a socket address into a human-readable string */
-char* bufprint_sock_address( char* p, char* end, const SockAddress* a );
-
-/* resolve a hostname or decimal IPv4/IPv6 address into a socket address.
- * returns 0 on success, or -1 on failure. Note that the values or errno
- * set by this function are the following:
- *
- * EINVAL : invalid argument
- * EHOSTDOWN : could not reach DNS server
- * ENOENT : no host with this name, or host doesn't have any IP address
- * ENOMEM : not enough memory to perform request
- */
-int sock_address_init_resolve( SockAddress* a,
- const char* hostname,
- uint16_t port,
- int preferIn6 );
-
-int sock_address_get_numeric_info( SockAddress* a,
- char* host,
- size_t hostlen,
- char* serv,
- size_t servlen );
-
-/* Support for listing all socket addresses of a given host */
-enum {
- SOCKET_LIST_PASSIVE = (1 << 0),
- SOCKET_LIST_FORCE_INET = (1 << 1),
- SOCKET_LIST_FORCE_IN6 = (1 << 2),
- SOCKET_LIST_DGRAM = (1 << 3),
-};
-
-/* resolve a host and service/port name into a list of SockAddress objects.
- * returns a NULL-terminated array of SockAddress pointers on success,
- * or NULL in case of failure, with the value of errno set to one of the
- * following:
- *
- * EINVAL : invalid argument
- * EHOSTDOWN : could not reach DNS server
- * ENOENT : no host with this name, or host doesn't have IP address
- * ENOMEM : not enough memory to perform request
- *
- * other system-level errors can also be set depending on the host sockets
- * implementation.
- *
- * This function loops on EINTR so the caller shouldn't have to check for it.
- */
-SockAddress** sock_address_list_create( const char* hostname,
- const char* port,
- unsigned flags );
-
-/* resolve a string containing host and port name into a list of SockAddress
- * objects. Parameter host_and_port should be in format [host:]port, where
- * 'host' addresses the machine and must be resolvable into an IP address, and
- * 'port' is a decimal numeric value for the port. 'host' is optional, and if
- * ommited, localhost will be used.
- * returns a NULL-terminated array of SockAddress pointers on success,
- * or NULL in case of failure, with the value of errno set to one of the
- * following:
- *
- * EINVAL : invalid argument
- * EHOSTDOWN : could not reach DNS server
- * ENOENT : no host with this name, or host doesn't have IP address
- * ENOMEM : not enough memory to perform request
- *
- * other system-level errors can also be set depending on the host sockets
- * implementation.
- *
- * This function loops on EINTR so the caller shouldn't have to check for it.
- */
-SockAddress** sock_address_list_create2(const char* host_and_port,
- unsigned flags );
-
-void sock_address_list_free( SockAddress** list );
-
-/* create a new socket, return the socket number of -1 on failure */
-int socket_create( SocketFamily family, SocketType type );
-
-/* create a new socket intended for IPv4 communication. returns the socket number,
- * or -1 on failure.
- */
-int socket_create_inet( SocketType type );
-
-/* create a new socket intended for IPv6 communication. returns the socket number,
- * or -1 on failure.
- */
-#if HAVE_IN6_SOCKETS
-int socket_create_in6 ( SocketType type );
-#endif
-
-/* create a unix/local domain socket. returns the socket number,
- * or -1 on failure.
- */
-#if HAVE_UNIX_SOCKETS
-int socket_create_unix( SocketType type );
-#endif
-
-/* return the type of a given socket */
-SocketType socket_get_type(int fd);
-
-/* set SO_REUSEADDR on Unix, SO_EXCLUSIVEADDR on Windows */
-int socket_set_xreuseaddr(int fd);
-
-/* set socket in non-blocking mode */
-int socket_set_nonblock(int fd);
-
-/* set socket in blocking mode */
-int socket_set_blocking(int fd);
-
-/* disable the TCP Nagle algorithm for lower latency */
-int socket_set_nodelay(int fd);
-
-/* send OOB data inline for this socket */
-int socket_set_oobinline(int fd);
-
-/* force listening to IPv6 interfaces only */
-int socket_set_ipv6only(int fd);
-
-/* retrieve last socket error code */
-int socket_get_error(int fd);
-
-/* close an opened socket. Note that this is unlike the Unix 'close' because:
- * - it will properly shutdown the socket in the background
- * - it does not modify errno
- */
-void socket_close( int fd );
-
-/* the following functions are equivalent to the BSD sockets ones
- */
-int socket_recv ( int fd, void* buf, int buflen );
-int socket_recvfrom( int fd, void* buf, int buflen, SockAddress* from );
-
-int socket_send ( int fd, const void* buf, int buflen );
-int socket_send_oob( int fd, const void* buf, int buflen );
-int socket_sendto( int fd, const void* buf, int buflen, const SockAddress* to );
-
-int socket_connect( int fd, const SockAddress* address );
-int socket_bind( int fd, const SockAddress* address );
-int socket_get_address( int fd, SockAddress* address );
-int socket_get_peer_address( int fd, SockAddress* address );
-int socket_listen( int fd, int backlog );
-int socket_accept( int fd, SockAddress* address );
-
-/* returns the number of bytes that can be read from a socket */
-int socket_can_read( int fd );
-
-/* this call creates a pair of non-blocking sockets connected
- * to each other. this is equivalent to calling the Unix function:
- * socketpair(AF_LOCAL,SOCK_STREAM,0,&fds)
- *
- * on Windows, this will use a pair of TCP loopback sockets instead
- * returns 0 on success, -1 on error.
- */
-int socket_pair(int *fd1, int *fd2);
-
-/* create a server socket listening on the host's loopback interface */
-int socket_loopback_server( int port, SocketType type );
-
-/* connect to a port on the host's loopback interface */
-int socket_loopback_client( int port, SocketType type );
-
-/* create a server socket listening to a Unix domain path */
-#if HAVE_UNIX_SOCKETS
-int socket_unix_server( const char* name, SocketType type );
-#endif
-
-/* create a Unix sockets and connects it to a Unix server */
-#if HAVE_UNIX_SOCKETS
-int socket_unix_client( const char* name, SocketType type );
-#endif
-
-/* create an IPv4 client socket and connect it to a given host */
-int socket_network_client( const char* host, int port, SocketType type );
-
-/* create an IPv4 socket and binds it to a given port of the host's interface */
-int socket_anyaddr_server( int port, SocketType type );
-
-/* accept a connection from the host's any interface, return the new socket
- * descriptor or -1 */
-int socket_accept_any( int server_fd );
-
-
-int socket_mcast_inet_add_membership( int s, uint32_t ip );
-int socket_mcast_inet_drop_membership( int s, uint32_t ip );
-int socket_mcast_inet_set_loop( int s, int enabled );
-int socket_mcast_inet_set_ttl( int s, int ttl );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* ANDROID_SOCKET_H */
diff --git a/emulator/opengl/tests/translator_tests/GLES_CM/Android.mk b/emulator/opengl/tests/translator_tests/GLES_CM/Android.mk
deleted file mode 100644
index 1f25a33..0000000
--- a/emulator/opengl/tests/translator_tests/GLES_CM/Android.mk
+++ /dev/null
@@ -1,28 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-
-$(call emugl-begin-host-executable,triangleCM)
-$(call emugl-import,libEGL_translator libGLES_CM_translator)
-
-ifeq ($(HOST_OS),darwin)
- # SDK 10.6+ deprecates __dyld_func_lookup required by dlcompat_init_func
- # in SDL_dlcompat.o this module depends. Instruct linker to resolved it at runtime.
- OSX_VERSION_MAJOR := $(shell echo $(mac_sdk_version) | cut -d . -f 2)
- OSX_VERSION_MAJOR_GREATER_THAN_OR_EQUAL_TO_6 := $(shell [ $(OSX_VERSION_MAJOR) -ge 6 ] && echo true)
- ifeq ($(OSX_VERSION_MAJOR_GREATER_THAN_OR_EQUAL_TO_6),true)
- LOCAL_LDLIBS += -Wl,-undefined,dynamic_lookup
- endif
-endif
-
-LOCAL_SRC_FILES:= \
- triangleCM.cpp
-
-LOCAL_CFLAGS += $(EMUGL_SDL_CFLAGS) -g -O0
-LOCAL_LDLIBS += $(EMUGL_SDL_LDLIBS) -lstdc++
-
-LOCAL_STATIC_LIBRARIES += $(EMUGL_SDL_STATIC_LIBRARIES)
-
-ifeq ($(HOST_OS),darwin)
-$(call emugl-import,libMac_view)
-endif
-
-$(call emugl-end-module)
diff --git a/emulator/opengl/tests/translator_tests/GLES_CM/triangleCM.cpp b/emulator/opengl/tests/translator_tests/GLES_CM/triangleCM.cpp
deleted file mode 100644
index 0e86166..0000000
--- a/emulator/opengl/tests/translator_tests/GLES_CM/triangleCM.cpp
+++ /dev/null
@@ -1,460 +0,0 @@
-/*
-* Copyright 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.
-*/
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-//#define GL_API
-//#define GL_APIENTRY
-
-#undef ANDROID
-#include <EGL/egl.h>
-#include <GLES/gl.h>
-
-#ifdef __APPLE__
-extern "C" void * createGLView(void *nsWindowPtr, int x, int y, int width, int height);
-#endif
-
-#undef HAVE_MALLOC_H
-#include <SDL.h>
-#include <SDL_syswm.h>
-
-
-#define WINDOW_WIDTH 500
-#define WINDOW_HEIGHT 500
-
-#define TEX_WIDTH 256
-#define TEX_HEIGHT 256
-
-
-#define F_to_X(d) ((d) > 32767.65535 ? 32767 * 65536 + 65535 : \
- (d) < -32768.65535 ? -32768 * 65536 + 65535 : \
- ((GLfixed) ((d) * 65536)))
-#define X_to_F(x) ((float)(x))/65536.0f
-
-static EGLint const attribute_list[] = {
- EGL_RED_SIZE, 1,
- EGL_GREEN_SIZE, 1,
- EGL_BLUE_SIZE, 1,
- EGL_NONE
-};
-
-unsigned char *genTexture(int width, int height, int comp)
-{
- unsigned char *img = new unsigned char[width * height * comp];
- unsigned char *ptr = img;
- for (int i = 0; i < height; i++) {
- for (int j = 0; j < width; j++) {
- unsigned char col = ((i / 8 + j / 8) % 2) * 255 ;
- if (j>(width/2)) col/=2;
- for (int c = 0; c < comp; c++) {
- *ptr = col; ptr++;
- }
- }
- }
- return img;
-}
-
-unsigned char *genRedTexture(int width, int height, int comp)
-{
- unsigned char *img = new unsigned char[width * height * comp];
- memset(img,0,width*height*comp);
- unsigned char *ptr = img;
- for (int i = 0; i < height; i++) {
- for (int j = 0; j < width; j++) {
- unsigned char col = ((i / 8 + j / 8) % 2) * 255 ;
- *ptr = col;
- ptr+=comp;
- }
- }
- return img;
-}
-
-//mip 0;
-unsigned char *genPalette4_rgb8(int width, int height,int color)
-{
- int size = width*height/2 + 16*3/*palette size*/;
- unsigned char *img = new unsigned char[size];
-
- memset(img,0,size);
- img[0] = 255; img[1] = 0; img[2] = 0; // red
- img[3] = 0; img[4] = 0; img[5] = 255; //blue
- img[7] = 128; img[8] = 0; img[9] = 128; //fucsia
- //rest of the palette is empty
-
- unsigned char *ptr = img+(16*3);
- for (int i = 0; i < (height*width/2); i++) {
- ptr[i] = (i%2)?0x0|color:0x11|color;
- }
- return img;
-}
-
-void usage(const char *progname)
-{
- fprintf(stderr, "usage: %s [-n <nframes> -i -h]\n", progname);
- fprintf(stderr, "\t-h: this message\n");
- fprintf(stderr, "\t-i: immidate mode\n");
- fprintf(stderr, "\t-n nframes: generate nframes\n");
- fprintf(stderr, "\t-e: use index arrays\n");
- fprintf(stderr, "\t-t: use texture\n");
- fprintf(stderr, "\t-f: use fixed points\n");
- fprintf(stderr, "\t-p: use point size OES extention\n");
-}
-
-#define SWITCH_SOURCE(add)\
- if(useConvertedType){ \
- if(useFixed){ \
- data = (GLvoid*)(fixedVertices+(add)); \
- } else { \
- data = (GLvoid*)(byteVertices +(add)); \
- } \
- } else { \
- data = (GLvoid*)(afVertices+(add)); \
- } \
-
-#ifdef _WIN32
-int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
-#else
-int main(int argc, char **argv)
-#endif
-{
- GLuint ui32Vbo = 0; // Vertex buffer object handle
- GLuint ui32IndexVbo;
- GLuint ui32Texture;
-
- int nframes = 100;
- bool immidateMode = false;
- bool useIndices = true;
- bool useTexture = false;
- bool useCompTexture = false;
- bool useConvertedType = true;
- bool useFixed = false;
- bool usePoints = false;
- bool useCopy = false;
- bool useSubCopy = false;
-
- #ifdef _WIN32
- HWND windowId = NULL;
- #elif __linux__
- Window windowId = 0;
- #elif __APPLE__
- void* windowId = NULL;
- #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(WINDOW_WIDTH,WINDOW_HEIGHT, 32, SDL_HWSURFACE);
- 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;
- #elif __linux__
- windowId = wminfo.info.x11.window;
- #elif __APPLE__
- windowId = createGLView(wminfo.nsWindowPtr,0,0,WINDOW_WIDTH,WINDOW_HEIGHT);
-
- #endif
-
- int major,minor,num_config;
- EGLConfig configs[150];
- EGLSurface egl_surface;
- EGLContext ctx;
- EGLDisplay d = eglGetDisplay(EGL_DEFAULT_DISPLAY);
- eglInitialize(d,&major,&minor);
- printf("DISPLAY == %p major =%d minor = %d\n",d,major,minor);
- eglChooseConfig(d, attribute_list, configs, 150, &num_config);
- printf("config returned %d\n",num_config);
- egl_surface = eglCreateWindowSurface(d,configs[0],windowId,NULL);
- printf("before creating context..\n");
- ctx = eglCreateContext(d,configs[0],EGL_NO_CONTEXT,NULL);
- printf("SURFACE == %p CONTEXT == %p\n",egl_surface,ctx);
- if(eglMakeCurrent(d,egl_surface,egl_surface,ctx)!= EGL_TRUE){
- printf("make current failed\n");
- return false;
- }
- printf("after make current\n");
-
- GLenum err = glGetError();
- if(err != GL_NO_ERROR) {
- printf("error before drawing ->>> %d \n",err);
- } else {
- printf("no error before drawing\n");
- }
-
- if (useTexture) {
-
- glEnable(GL_TEXTURE_2D);
- ui32Texture = 1;
- glBindTexture(GL_TEXTURE_2D, ui32Texture);
- GLenum err = glGetError();
-
- unsigned char *pixels = NULL;
- if(useCompTexture) {
- pixels = genPalette4_rgb8(TEX_WIDTH,TEX_HEIGHT,3);
- glCompressedTexImage2D(GL_TEXTURE_2D,0,GL_PALETTE4_RGB8_OES,TEX_WIDTH,TEX_HEIGHT,0,3*16+TEX_WIDTH*TEX_HEIGHT/2,pixels);
-
- } else {
- pixels = genTexture(TEX_WIDTH, TEX_HEIGHT, 4);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, TEX_WIDTH, TEX_HEIGHT, 0, GL_RGBA, GL_UNSIGNED_BYTE, pixels);
- }
-
- delete pixels;
-
- err = glGetError();
- if(err != GL_NO_ERROR)
- printf("error %d after image \n",err);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- err = glGetError();
- if(err != GL_NO_ERROR)
- printf("error after min filter \n");
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- err = glGetError();
- if(err != GL_NO_ERROR)
- printf("error after mag filter \n");
- glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
- err = glGetError();
- if(err != GL_NO_ERROR)
- printf("error after env mode \n");
-
- if(useCompTexture) {
- pixels = genPalette4_rgb8(TEX_WIDTH,TEX_HEIGHT,1);
- glCompressedTexSubImage2D(GL_TEXTURE_2D,0,TEX_WIDTH/4,TEX_HEIGHT/4,TEX_WIDTH/8,TEX_HEIGHT/8,GL_PALETTE4_RGB8_OES,3*16+(TEX_WIDTH*TEX_HEIGHT/128),pixels);
- } else {
- pixels = genRedTexture(TEX_WIDTH/8, TEX_HEIGHT/8, 4);
- glTexSubImage2D(GL_TEXTURE_2D,0,TEX_WIDTH/4,TEX_HEIGHT/4,TEX_WIDTH/8,TEX_HEIGHT/8,GL_RGBA,GL_UNSIGNED_BYTE,pixels);
- }
- err = glGetError();
- if(err != GL_NO_ERROR)
- printf("error %d after subimage \n",err);
- delete pixels;
-
- }
-
- glClearColor(0.6f, 0.8f, 1.0f, 1.0f); // clear blue
-
- float afVertices[] = { -0.4f,-0.4f,0.0f, // Position
- 1.0f,0.0f,0.0f,1.0f, // Color
- 0.0f, 0.0f, // texture
- 12.f, //point size
-
- 0.4f,-0.4f,0.0f,
- 0.0f,1.0f,0.0f,1.0f,
- 1.0f, 0.0f,
- 47.0f,
-
- 0.0f,0.4f,0.0f,
- 0.0f,0.0f,1.0f,1.0f,
- 0.5f, 1.0f,
- 14.0f
- };
-
-#define MAX_T 1
-#define MID_T 0
-#define MIN_T 0
-
- GLbyte byteVertices[] = { -1,-1,0, // Position
- (GLbyte)255,0,0,(GLbyte)255, // Color
- MIN_T, MIN_T, // texture
- 12, //point size
-
- 1,-1,0,
- 0,(GLbyte)255,0,(GLbyte)255,
- MAX_T,MIN_T,
- 47,
-
- 0,1,0,
- 0,0,(GLbyte)255,(GLbyte)255,
- MID_T, MAX_T,
- 14
- };
-
- GLfixed fixedVertices[] = { F_to_X(-0.4f),F_to_X(-0.4f),F_to_X(0.0f), // Position
- F_to_X(1.0f),F_to_X(0.0f),F_to_X(0.0f),F_to_X(1.0f), // Color
- F_to_X(0.0f),F_to_X(0.0f), // texture
- F_to_X(12.0f),//points size
-
- F_to_X(0.4f),F_to_X(-0.4f),F_to_X(0.0f),
- F_to_X(0.0f),F_to_X(1.0f),F_to_X(0.0f),F_to_X(1.0f),
- F_to_X(1.0f),F_to_X( 0.0f),
- F_to_X(30.0f),
-
- F_to_X(0.0f),F_to_X(0.4f),F_to_X(0.0f),
- F_to_X(0.0f),F_to_X(0.0f),F_to_X(1.0f),F_to_X(1.0f),
- F_to_X(0.5f), F_to_X(1.0f),
- F_to_X(30.0)
- };
-
- unsigned short indices[] = { 2, 1, 0 };
-
- if (!immidateMode) {
- glGenBuffers(1, &ui32Vbo);
- ui32Vbo = 1;
- printf("ui32Vbo = %d\n", ui32Vbo);
-
- glBindBuffer(GL_ARRAY_BUFFER, ui32Vbo);
- void* data = (void*)afVertices;
- unsigned int uiSize = 3*(sizeof(float)*10);
- if(useConvertedType){
- if(useFixed){
- data = (void*)fixedVertices;
- } else {
- data = (void*)byteVertices;
- uiSize = 3*(sizeof(GLbyte)*10);
- }
- }
- glBufferData(GL_ARRAY_BUFFER, uiSize,data, GL_STATIC_DRAW);
-
- ui32IndexVbo = 2;
- glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ui32IndexVbo);
- glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(indices), indices, GL_STATIC_DRAW);
- }
-
- // Draws a triangle for 800 frames
- float angle = 0.0;
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-
- GLvoid* arr = NULL;
- GLenum type;
- GLenum drawType;
- GLenum colorType;
- int size_of;
-
- if(useConvertedType){
- if(useFixed)
- {
- arr = fixedVertices;
- colorType = type = GL_FIXED;
- size_of = sizeof(GLfixed);
- } else {
- arr = byteVertices;
- colorType = GL_UNSIGNED_BYTE;
- type = GL_BYTE;
- size_of = sizeof(GLbyte);
- }
- }else {
- arr = afVertices;
- colorType = type = GL_FLOAT;
- size_of = sizeof(float);
- }
-
- if(usePoints)
- {
- drawType = GL_POINTS;
- }
- else
- drawType = GL_TRIANGLES;
-
- GLvoid* data = NULL;
- for (int i = 0; i < 100; i++) {
-
- glClear(GL_COLOR_BUFFER_BIT);
- glPushMatrix();
- glRotatef(angle, 0.0, 0.0, 1.0);
- angle += 360.0 / nframes;
- // Enable vertex arrays
- glEnableClientState(GL_VERTEX_ARRAY);
- if (immidateMode) {
- glVertexPointer(3,type, size_of * 10, arr);
- } else {
- glVertexPointer(3,type, size_of * 10, 0);
- }
-
- // Set color data in the same way
- glEnableClientState(GL_COLOR_ARRAY);
- if (immidateMode) {
- SWITCH_SOURCE(3)
- glColorPointer(4, colorType, size_of * 10, data);
- } else {
- glColorPointer(4,colorType,size_of * 10, (GLvoid*) (size_of * 3) );
- }
- if (useTexture) {
- glEnableClientState(GL_TEXTURE_COORD_ARRAY);
- if (immidateMode) {
- SWITCH_SOURCE(7)
- glTexCoordPointer(2, type, size_of * 10,data);
- } else {
- glTexCoordPointer(2, type, size_of * 10, (GLvoid*)(size_of * 7));
- }
- }
- if(usePoints)
- {
- glEnableClientState(GL_POINT_SIZE_ARRAY_OES);
- if (immidateMode) {
- SWITCH_SOURCE(9)
- glPointSizePointerOES(type,size_of * 10,data);
- } else {
- glPointSizePointerOES(type,size_of * 10,(GLvoid*)(size_of * 9));
- }
- }
-
- if (useIndices) {
- if (immidateMode) {
- glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
- glDrawElements(drawType, 3, GL_UNSIGNED_SHORT, indices);
- } else {
- glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ui32IndexVbo);
- glDrawElements(drawType, 3, GL_UNSIGNED_SHORT, 0);
- }
- } else {
- glDrawArrays(drawType, 0, 3);
- }
-
- GLenum err = glGetError();
- if(err != GL_NO_ERROR)
- printf(" error %d has occured while drawing\n",err);
-
-
- glPopMatrix();
- eglSwapBuffers(d,egl_surface);
-
- if(useTexture && useCopy)
- glCopyTexImage2D(GL_TEXTURE_2D,0,GL_RGBA,0,0,256,256,0);
- else if(useTexture && useSubCopy)
- glCopyTexSubImage2D(GL_TEXTURE_2D,0,100,100,WINDOW_WIDTH/2,WINDOW_HEIGHT/2,50,50);
- }
- err = glGetError();
- if(err != GL_NO_ERROR)
- printf("error ->>> %d \n",err);
- eglDestroySurface(d,egl_surface);
- eglDestroyContext(d,ctx);
-
-// Just wait until the window is closed
- SDL_Event ev;
- while( SDL_WaitEvent(&ev) ) {
- if (ev.type == SDL_QUIT) {
- break;
- }
- }
- return 0;
-}
-
-
diff --git a/emulator/opengl/tests/translator_tests/GLES_V2/Android.mk b/emulator/opengl/tests/translator_tests/GLES_V2/Android.mk
deleted file mode 100644
index 10b3b0c..0000000
--- a/emulator/opengl/tests/translator_tests/GLES_V2/Android.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-
-$(call emugl-begin-host-executable,triangleV2)
-$(call emugl-import,libEGL_translator libGLES_V2_translator)
-
-LOCAL_SRC_FILES:= \
- triangleV2.cpp
-
-LOCAL_CFLAGS += $(EMUGL_SDL_CFLAGS) -g -O0
-LOCAL_LDLIBS += $(EMUGL_SDL_LDLIBS) -lstdc++
-
-LOCAL_STATIC_LIBRARIES += $(EMUGL_SDL_STATIC_LIBRARIES)
-
-ifeq ($(HOST_OS),darwin)
- # SDK 10.6+ deprecates __dyld_func_lookup required by dlcompat_init_func
- # in SDL_dlcompat.o this module depends. Instruct linker to resolved it at runtime.
- OSX_VERSION_MAJOR := $(shell echo $(mac_sdk_version) | cut -d . -f 2)
- OSX_VERSION_MAJOR_GREATER_THAN_OR_EQUAL_TO_6 := $(shell [ $(OSX_VERSION_MAJOR) -ge 6 ] && echo true)
- ifeq ($(OSX_VERSION_MAJOR_GREATER_THAN_OR_EQUAL_TO_6),true)
- LOCAL_LDLIBS += -Wl,-undefined,dynamic_lookup
- endif
- $(call emugl-import,libMac_view)
-endif
-
-$(call emugl-end-module)
diff --git a/emulator/opengl/tests/translator_tests/GLES_V2/triangleV2.cpp b/emulator/opengl/tests/translator_tests/GLES_V2/triangleV2.cpp
deleted file mode 100644
index 3a8ff0f..0000000
--- a/emulator/opengl/tests/translator_tests/GLES_V2/triangleV2.cpp
+++ /dev/null
@@ -1,443 +0,0 @@
-/*
-* Copyright 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.
-*/
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-//#define GL_API
-//#define GL_APIENTRY
-
-#undef ANDROID
-#include <EGL/egl.h>
-#include <GLES2/gl2.h>
-
-#ifdef __APPLE__
-extern "C" void * createGLView(void *nsWindowPtr, int x, int y, int width, int height);
-#endif
-
-#undef HAVE_MALLOC_H
-#include <SDL.h>
-#include <SDL_syswm.h>
-
-
-#define WINDOW_WIDTH 500
-#define WINDOW_HEIGHT 500
-
-#define TEX_WIDTH 256
-#define TEX_HEIGHT 256
-
-
-#define F_to_X(d) ((d) > 32767.65535 ? 32767 * 65536 + 65535 : \
- (d) < -32768.65535 ? -32768 * 65536 + 65535 : \
- ((GLfixed) ((d) * 65536)))
-#define X_to_F(x) ((float)(x))/65536.0f
-
-//#define __FIXED__
-
-const char *def_vShaderStr =
- "attribute vec4 vPosition; \n"
- "void main() \n"
- "{ \n"
- " gl_Position = vPosition; \n"
- "} \n";
-
-const char *def_fShaderStr =
- "precision mediump float; \n"
- "void main() \n"
- "{ \n"
-#ifndef __FIXED__
- " gl_FragColor = vec4(0.2, 0.5, 0.1, 1.0); \n"
-#else
- " gl_FragColor = vec4(0.4, 0.3, 0.7, 1.0); \n"
-#endif
- "} \n";
-
-static EGLint const attribute_list[] = {
- EGL_RED_SIZE, 1,
- EGL_GREEN_SIZE, 1,
- EGL_BLUE_SIZE, 1,
- EGL_NONE
-};
-
-unsigned char *genTexture(int width, int height, int comp)
-{
- unsigned char *img = new unsigned char[width * height * comp];
- unsigned char *ptr = img;
- for (int i = 0; i < height; i++) {
- for (int j = 0; j < width; j++) {
- unsigned char col = ((i / 8 + j / 8) % 2) * 255 ;
- for (int c = 0; c < comp; c++) {
- *ptr = col; ptr++;
- }
- }
- }
- return img;
-}
-
-unsigned char *genRedTexture(int width, int height, int comp)
-{
- unsigned char *img = new unsigned char[width * height * comp];
- memset(img,0,width*height*comp);
- unsigned char *ptr = img;
- for (int i = 0; i < height; i++) {
- for (int j = 0; j < width; j++) {
- unsigned char col = ((i / 8 + j / 8) % 2) * 255 ;
- *ptr = col;
- ptr+=comp;
- }
- }
- return img;
-}
-
-
-void printUsage(const char *progname)
-{
- fprintf(stderr, "usage: %s [options]\n", progname);
- fprintf(stderr, "\t-vs <filename> - vertex shader to use\n");
- fprintf(stderr, "\t-fs <filename> - fragment shader to use\n");
-}
-
-
-
-GLuint LoadShader(GLenum type,const char *shaderSrc)
-{
- GLuint shader;
- GLint compiled;
- // Create the shader object
- shader = glCreateShader(type);
- if(shader == 0)
- return 0;
- // Load the shader source
- glShaderSource(shader, 1, &shaderSrc, NULL);
- // Compile the shader
- glCompileShader(shader);
- // Check the compile status
- glGetShaderiv(shader, GL_COMPILE_STATUS, &compiled);
- if(!compiled)
- {
- GLint infoLen = 0;
- glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &infoLen);
- if(infoLen > 1)
- {
- char* infoLog = (char*)malloc(sizeof(char) * infoLen);
- glGetShaderInfoLog(shader, infoLen, NULL, infoLog);
- printf("Error compiling shader:\n%s\n", infoLog);
- free(infoLog);
- }
- glDeleteShader(shader);
- return 0;
- }
- return shader;
-}
-
-const char *readShader(const char *fileName)
-{
- FILE *fp = fopen(fileName, "rb");
- if (!fp) return NULL;
-
- int bSize = 1024;
- int nBufs = 1;
- char *buf = (char *)malloc(bSize);
- int n;
- int len = 0;
- n = fread(&buf[0], 1, bSize, fp);
- while( n == bSize ) {
- len += n;
- nBufs++;
- buf = (char *)realloc(buf, bSize * nBufs);
- n = fread(&buf[len], 1, bSize, fp);
- }
- len += n;
-
- buf[len] = '\0';
- return (const char *)buf;
-}
-
-void dumpUniforms(GLuint program)
-{
- GLint numU;
- glGetProgramiv(program, GL_ACTIVE_UNIFORMS, &numU);
- printf("==== Program %d has %d active uniforms ===\n", program, numU);
- char name[512];
- GLsizei len;
- GLint size;
- GLenum type;
- for (int i=0; i<numU; i++) {
- glGetActiveUniform(program, i,
- 512, &len, &size, &type, name);
- printf("\t%s : type=0x%x size=%d\n", name, type, size);
- }
-}
-
-///
-// Initialize the shader and program object
-//
-int Init(const char *vShaderStr, const char *fShaderStr)
-{
- GLuint vertexShader;
- GLuint fragmentShader;
- GLuint programObject;
- GLint linked;
- // Load the vertex/fragment shaders
- vertexShader = LoadShader(GL_VERTEX_SHADER, vShaderStr);
- fragmentShader = LoadShader(GL_FRAGMENT_SHADER, fShaderStr);
- // Create the program object
- programObject = glCreateProgram();
- if(programObject == 0)
- return -1;
- glAttachShader(programObject, vertexShader);
- glAttachShader(programObject, fragmentShader);
- // Bind vPosition to attribute 0
- glBindAttribLocation(programObject, 0, "vPosition");
- // Link the program
- glLinkProgram(programObject);
- // Check the link status
- glGetProgramiv(programObject, GL_LINK_STATUS, &linked);
- if(!linked)
- {
- GLint infoLen = 0;
- glGetProgramiv(programObject, GL_INFO_LOG_LENGTH, &infoLen);
- if(infoLen > 1)
- {
- char* infoLog = (char*)malloc(sizeof(char) * infoLen);
- glGetProgramInfoLog(programObject, infoLen, NULL, infoLog);
- printf("Error linking program:\n%s\n", infoLog);
- free(infoLog);
- }
- glDeleteProgram(programObject);
- return -1;
- }
-
- // dump active uniforms
- dumpUniforms(programObject);
-
- // Store the program object
-#ifndef __FIXED__
- glClearColor(0.0f, 0.0f, 1.0f, 1.0f);
-#else
- glClearColor(1.0f, 0.0f, 0.0f, 1.0f);
-#endif
- return programObject;
-}
-
-
-///
-// Draw a triangle using the shader pair created in Init()
-//
-void Draw(EGLDisplay display,EGLSurface surface,int width,int height,GLuint program)
-{
-#ifndef __FIXED__
- GLfloat vVertices[] = {0.0f, 0.5f, 0.0f,
- -0.5f, -0.5f, 0.0f,
- 0.5f, -0.5f, 0.0f};
-#else
-
- GLfixed vVertices[] = {F_to_X(0.0f), F_to_X(0.5f),F_to_X(0.0f),
- F_to_X(-0.5f),F_to_X(-0.5f), F_to_X(0.0f),
- F_to_X(0.5f),F_to_X(-0.5f),F_to_X(0.0f)};
-#endif
-
- // Set the viewport
- glViewport(0, 0,width,height);
- // Clear the color buffer
- glClear(GL_COLOR_BUFFER_BIT);
- // Use the program object
- glUseProgram(program);
- // Load the vertex data
-#ifndef __FIXED__
- glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, vVertices);
-#else
- glVertexAttribPointer(0, 3, GL_FIXED, GL_FALSE, 0, vVertices);
-#endif
- glEnableVertexAttribArray(0);
- glDrawArrays(GL_TRIANGLES, 0, 3);
- eglSwapBuffers(display,surface);
-}
-
-#ifdef _WIN32
-char **parseCmdLine(char *cmdLine, int *argc)
-{
- int argvSize = 10;
- char **argv = (char **)malloc(argvSize * sizeof(char *));
- *argc = 0;
- int i=0;
- bool prevIsSpace = true;
- int argStart = 0;
-
- argv[(*argc)++] = strdup("playdump");
-
- while(cmdLine[i] != '\0') {
- bool isSpace = (cmdLine[i] == ' ' || cmdLine[i] == '\t');
- if ( !isSpace && prevIsSpace ) {
- argStart = i;
- }
- else if (isSpace && !prevIsSpace) {
- cmdLine[i] = '\0';
- if (*argc >= argvSize) {
- argvSize *= 2;
- argv = (char **)realloc(argv, argvSize * sizeof(char *));
- }
- argv[(*argc)++] = &cmdLine[argStart];
- argStart = i+1;
- }
-
- prevIsSpace = isSpace;
- i++;
- }
-
- if (i > argStart) {
- argv[(*argc)++] = &cmdLine[argStart];
- }
- return argv;
-}
-#endif
-
-#ifdef _WIN32
-int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
-#else
-int main(int argc, char **argv)
-#endif
-{
-#ifdef _WIN32
- int argc;
- char **argv = parseCmdLine(lpCmdLine, &argc);
-#endif
- const char *vShader = def_vShaderStr;
- const char *fShader = def_fShaderStr;
-
- for (int i=1; i<argc; i++) {
- if (!strcmp(argv[i],"-vs")) {
- if (++i >= argc) {
- printUsage(argv[0]);
- return -1;
- }
- vShader = readShader(argv[i]);
- if (!vShader) {
- vShader = def_vShaderStr;
- printf("Failed to load vshader %s, using defualt\n", argv[i]);
- }
- else {
- printf("Using vshader %s\n", argv[i]);
- }
- }
- else if (!strcmp(argv[i],"-fs")) {
- if (++i >= argc) {
- printUsage(argv[0]);
- return -1;
- }
- fShader = readShader(argv[i]);
- if (!fShader) {
- fShader = def_fShaderStr;
- printf("Failed to load fshader %s, using defualt\n", argv[i]);
- }
- else {
- printf("Using fshader %s\n", argv[i]);
- }
- }
- else {
- printUsage(argv[0]);
- return -1;
- }
- }
-
- #ifdef _WIN32
- HWND windowId = NULL;
- #elif __linux__
- Window windowId = 0;
- #elif __APPLE__
- void* windowId = NULL;
- #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(WINDOW_WIDTH,WINDOW_HEIGHT, 32, SDL_HWSURFACE);
- 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;
- #elif __linux__
- windowId = wminfo.info.x11.window;
- #elif __APPLE__
- windowId = createGLView(wminfo.nsWindowPtr,0,0,WINDOW_WIDTH,WINDOW_HEIGHT);
- #endif
-
- int major,minor,num_config;
- int attrib_list[] ={
- EGL_CONTEXT_CLIENT_VERSION, 2,
- EGL_NONE
- };
- EGLConfig configs[150];
- EGLSurface egl_surface;
- EGLContext ctx;
- EGLDisplay d = eglGetDisplay(EGL_DEFAULT_DISPLAY);
- eglInitialize(d,&major,&minor);
- printf("DISPLAY == %p major =%d minor = %d\n",d,major,minor);
- eglChooseConfig(d, attribute_list, configs, 150, &num_config);
- printf("config returned %d\n",num_config);
- egl_surface = eglCreateWindowSurface(d,configs[0],windowId,NULL);
- ctx = eglCreateContext(d,configs[0],EGL_NO_CONTEXT,attrib_list);
- printf("SURFACE == %p CONTEXT == %p\n",egl_surface,ctx);
- if(eglMakeCurrent(d,egl_surface,egl_surface,ctx)!= EGL_TRUE){
- printf("make current failed\n");
- return false;
- }
- printf("after make current\n");
-
- GLenum err = glGetError();
- if(err != GL_NO_ERROR) {
- printf("error before drawing ->>> %d \n",err);
- } else {
- printf("no error before drawing\n");
- }
-
- int program = Init(vShader, fShader);
- if(program < 0){
- printf("failed init shaders\n");
- return false;
- }
-
- Draw(d,egl_surface,WINDOW_WIDTH,WINDOW_HEIGHT,program);
-
- err = glGetError();
- if(err != GL_NO_ERROR)
- printf("error ->>> %d \n",err);
- eglDestroySurface(d,egl_surface);
- eglDestroyContext(d,ctx);
-
-// Just wait until the window is closed
- SDL_Event ev;
- while( SDL_WaitEvent(&ev) ) {
- if (ev.type == SDL_QUIT) {
- break;
- }
- }
- return 0;
-}
-
-
diff --git a/emulator/opengl/tests/translator_tests/MacCommon/Android.mk b/emulator/opengl/tests/translator_tests/MacCommon/Android.mk
deleted file mode 100644
index 4c4ae6b..0000000
--- a/emulator/opengl/tests/translator_tests/MacCommon/Android.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-ifeq ($(HOST_OS),darwin)
-$(call emugl-begin-host-static-library,libMac_view)
-
-LIBMACVIEW_FRAMEWORKS := AppKit AudioToolbox AudioUnit
-LIBMACVIEW_PREFIX := -Wl,-framework,
-
-$(call emugl-export,LDLIBS,$(foreach _framework,$(LIBMACVIEW_FRAMEWORKS),$(LIBMACVIEW_PREFIX)$(_framework)))
-LOCAL_SRC_FILES := setup_gl.m
-LOCAL_CFLAGS += -g -O0
-$(call emugl-end-module)
-endif # HOST_OS == darwin
diff --git a/emulator/opengl/tests/translator_tests/MacCommon/setup_gl.m b/emulator/opengl/tests/translator_tests/MacCommon/setup_gl.m
deleted file mode 100644
index a300943..0000000
--- a/emulator/opengl/tests/translator_tests/MacCommon/setup_gl.m
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
-* Copyright 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.
-*/
-
-#include <stdio.h>
-#include <Cocoa/Cocoa.h>
-
- void * createGLView(void *nsWindowPtr, int x, int y, int width, int height)
-{
- NSRect contentRect = NSMakeRect(x, y, width, height);
- NSView *glView = [[NSView alloc] initWithFrame:contentRect];
- if (glView == nil) {
- printf("couldn't create opengl view\n");
- return nil;
- }
- [glView setAutoresizingMask: NSViewWidthSizable | NSViewHeightSizable];
- NSWindow *win = (NSWindow *)nsWindowPtr;
- [[win contentView] addSubview:glView];
- [win makeKeyAndOrderFront:nil];
- return (void *)glView;
-}
-
-
diff --git a/emulator/opengl/tests/ut_rendercontrol_dec/Android.mk b/emulator/opengl/tests/ut_rendercontrol_dec/Android.mk
deleted file mode 100644
index b94bd44..0000000
--- a/emulator/opengl/tests/ut_rendercontrol_dec/Android.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-$(call emugl-begin-host-shared-library,libut_rendercontrol_dec)
-$(call emugl-import, libOpenglCodecCommon)
-$(call emugl-gen-decoder,$(LOCAL_PATH),ut_rendercontrol)
-$(call emugl-end-module)
diff --git a/emulator/opengl/tests/ut_rendercontrol_dec/ut_rendercontrol.attrib b/emulator/opengl/tests/ut_rendercontrol_dec/ut_rendercontrol.attrib
deleted file mode 100644
index c47a9f9..0000000
--- a/emulator/opengl/tests/ut_rendercontrol_dec/ut_rendercontrol.attrib
+++ /dev/null
@@ -1,4 +0,0 @@
-GLOBAL
- base_opcode 10000
- encoder_headers <stdint.h>
-
diff --git a/emulator/opengl/tests/ut_rendercontrol_dec/ut_rendercontrol.in b/emulator/opengl/tests/ut_rendercontrol_dec/ut_rendercontrol.in
deleted file mode 100644
index 0d5942f..0000000
--- a/emulator/opengl/tests/ut_rendercontrol_dec/ut_rendercontrol.in
+++ /dev/null
@@ -1,11 +0,0 @@
-GL_ENTRY(int, createContext, uint32_t pid, uint32_t handle, uint32_t shareCtx, int version)
-GL_ENTRY(int, createSurface, uint32_t pid, uint32_t handle)
-GL_ENTRY(int, makeCurrentContext, uint32_t pid, uint32_t drawSurface, uint32_t readSurface, uint32_t ctxHandle)
-GL_ENTRY(void, swapBuffers, uint32_t pid, uint32_t surface)
-GL_ENTRY(int, destroyContext, uint32_t pid, uint32_t handle)
-GL_ENTRY(int, destroySurface, uint32_t pid, uint32_t handle)
-
-
-
-
-
diff --git a/emulator/opengl/tests/ut_rendercontrol_dec/ut_rendercontrol.types b/emulator/opengl/tests/ut_rendercontrol_dec/ut_rendercontrol.types
deleted file mode 100644
index 9d945ab..0000000
--- a/emulator/opengl/tests/ut_rendercontrol_dec/ut_rendercontrol.types
+++ /dev/null
@@ -1,2 +0,0 @@
-uint32_t 32 0x%08x false
-
diff --git a/emulator/opengl/tests/ut_rendercontrol_dec/ut_rendercontrol_types.h b/emulator/opengl/tests/ut_rendercontrol_dec/ut_rendercontrol_types.h
deleted file mode 100644
index 9b7864d..0000000
--- a/emulator/opengl/tests/ut_rendercontrol_dec/ut_rendercontrol_types.h
+++ /dev/null
@@ -1,17 +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.
-*/
-
-#include <stdint.h>
diff --git a/emulator/opengl/tests/ut_rendercontrol_enc/Android.mk b/emulator/opengl/tests/ut_rendercontrol_enc/Android.mk
deleted file mode 100644
index ae234b2..0000000
--- a/emulator/opengl/tests/ut_rendercontrol_enc/Android.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-$(call emugl-begin-shared-library,libut_rendercontrol_enc)
-$(call emugl-import,libOpenglCodecCommon)
-$(call emugl-gen-encoder,$(LOCAL_PATH),ut_rendercontrol)
-$(call emugl-export,C_INCLUDES,$(LOCAL_PATH))
-$(call emugl-end-module)
-
diff --git a/emulator/opengl/tests/ut_renderer/Android.mk b/emulator/opengl/tests/ut_renderer/Android.mk
deleted file mode 100644
index 91608b2..0000000
--- a/emulator/opengl/tests/ut_renderer/Android.mk
+++ /dev/null
@@ -1,30 +0,0 @@
-LOCAL_PATH:=$(call my-dir)
-
-ifeq ($(HOST_OS), linux)
-
-$(call emugl-begin-host-executable,ut_renderer)
-$(call emugl-import,libut_rendercontrol_dec libGLESv1_dec libGLESv2_dec libEGL_host_wrapper libOpenglRender)
-
-LOCAL_SRC_FILES := ut_renderer.cpp \
- RenderingThread.cpp \
- ReadBuffer.cpp \
- Renderer.cpp \
- RendererContext.cpp \
- RendererSurface.cpp \
- X11Windowing.cpp
-
-# define PVR_WAR to support imgtec PVR opengl-ES implementation
-#
-# specifically this MACRO enables code that work arounds a bug
-# in the implementation where glTextureParameter(...,GL_TEXTURE_RECT,...)
-# is called would cause a crash if the texture dimensions have not been
-# defined yet.
-
-LOCAL_CFLAGS += -DPVR_WAR
-#LOCAL_CFLAGS += -g -O0
-
-LOCAL_LDLIBS += -lpthread -lX11 -lrt
-
-$(call emugl-end-module)
-
-endif # HOST_OS == linux
diff --git a/emulator/opengl/tests/ut_renderer/NativeWindowing.h b/emulator/opengl/tests/ut_renderer/NativeWindowing.h
deleted file mode 100644
index 9468066..0000000
--- a/emulator/opengl/tests/ut_renderer/NativeWindowing.h
+++ /dev/null
@@ -1,28 +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.
-*/
-#ifndef _NATIVE_WINDOWING_H
-#define _NATIVE_WINDOWING_H
-
-#include <EGL/egl.h>
-
-class NativeWindowing {
-public:
- virtual NativeDisplayType getNativeDisplay() = 0;
- virtual NativeWindowType createNativeWindow(NativeDisplayType dpy, int width, int height) = 0;
- virtual int destroyNativeWindow(NativeDisplayType dpy, NativeWindowType win) = 0;
-};
-
-#endif
diff --git a/emulator/opengl/tests/ut_renderer/ReadBuffer.cpp b/emulator/opengl/tests/ut_renderer/ReadBuffer.cpp
deleted file mode 100644
index e0073c0..0000000
--- a/emulator/opengl/tests/ut_renderer/ReadBuffer.cpp
+++ /dev/null
@@ -1,53 +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.
-*/
-#include "ReadBuffer.h"
-#include <string.h>
-#include <assert.h>
-
-ReadBuffer::ReadBuffer(SocketStream *stream, size_t bufsize)
-{
- m_size = bufsize;
- m_stream = stream;
- m_buf = new unsigned char[m_size];
- m_validData = 0;
- m_readPtr = m_buf;
-}
-
-ReadBuffer::~ReadBuffer()
-{
- delete m_buf;
-}
-
-int ReadBuffer::getData()
-{
- if (m_validData > 0) {
- memcpy(m_buf, m_readPtr, m_validData);
- }
- m_readPtr = m_buf;
- // get fresh data into the buffer;
- int stat = m_stream->recv(m_buf + m_validData, m_size - m_validData);
- if (stat > 0) {
- m_validData += (size_t) stat;
- }
- return stat;
-}
-
-void ReadBuffer::consume(size_t amount)
-{
- assert(amount <= m_validData);
- m_validData -= amount;
- m_readPtr += amount;
-}
diff --git a/emulator/opengl/tests/ut_renderer/ReadBuffer.h b/emulator/opengl/tests/ut_renderer/ReadBuffer.h
deleted file mode 100644
index b039b19..0000000
--- a/emulator/opengl/tests/ut_renderer/ReadBuffer.h
+++ /dev/null
@@ -1,36 +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.
-*/
-#ifndef _READ_BUFFER_H
-#define _READ_BUFFER_H
-
-#include "SocketStream.h"
-
-class ReadBuffer {
-public:
- ReadBuffer(SocketStream *stream, size_t bufSize);
- ~ReadBuffer();
- int getData(); // get fresh data from the stream
- unsigned char *buf() { return m_readPtr; } // return the next read location
- size_t validData() { return m_validData; } // return the amount of valid data in readptr
- void consume(size_t amount); // notify that 'amount' data has been consumed;
-private:
- unsigned char *m_buf;
- unsigned char *m_readPtr;
- size_t m_size;
- size_t m_validData;
- SocketStream *m_stream;
-};
-#endif
diff --git a/emulator/opengl/tests/ut_renderer/Renderer.cpp b/emulator/opengl/tests/ut_renderer/Renderer.cpp
deleted file mode 100644
index 1102014..0000000
--- a/emulator/opengl/tests/ut_renderer/Renderer.cpp
+++ /dev/null
@@ -1,183 +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.
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <assert.h>
-#include "RenderingThread.h"
-#include "Renderer.h"
-
-// include operating-system dependent windowing system impelemntation
-#ifdef _WIN32
-# error "WINDOWS IS NOT SUPPORTED AT THE MOMENT"
-#elif defined __APPLE__
-# error "Apple OS-X IS NOT SUPPORTED"
-#elif defined (__unix__)
-# include "X11Windowing.h"
-#endif
-
-
-
-
-
-Renderer * Renderer::m_instance = NULL;
-
-Renderer * Renderer::instance()
-{
- if (m_instance == NULL) m_instance = new Renderer;
- return m_instance;
-}
-
-Renderer::Renderer()
-{
- // Unix specific, use your platform specific windowing implementation
-#ifdef __unix__
- m_nw = new X11Windowing;
-#endif
-
- m_dpy = eglGetDisplay(m_nw->getNativeDisplay());
- EGLint major, minor;
- eglInitialize(m_dpy, &major, &minor);
- fprintf(stderr, "egl initialized : %d.%d\n", major, minor);
-}
-
-int Renderer::createSurface(RenderingThread *thread, const ClientHandle & handle)
-{
- emugl::Mutex::AutoLock(this->m_mutex);
-
- assert(m_surfaces.find(handle) == m_surfaces.end());
- if (handle.handle == 0) {
- fprintf(stderr, "trying to create surface for EGL_NO_SURFACE !!!\n");
- return -1;
- } else {
- RendererSurface *surface = RendererSurface::create(m_dpy, RendererSurface::CONFIG_DEPTH, m_nw);
- if (surface == NULL) {
- printf("failed to create surface !!\n");
- return -1;
- }
- m_surfaces.insert(SurfaceMap::value_type(handle, surface));
- }
- return 0;
-}
-
-int Renderer::destroySurface(RenderingThread *thread, const ClientHandle &handle)
-{
- emugl::Mutex::AutoLock(this->m_mutex);
-
- SurfaceMap::iterator i = m_surfaces.find(handle);
- if (i == m_surfaces.end()) {
- printf("removing surface that doesn't exists\n");
- return -1;
- }
- if (i->second->destroy(m_nw)) {
- m_surfaces.erase(handle);
- }
- return 0;
-}
-
-int Renderer::createContext(RenderingThread *thread, const ClientHandle &handle, ClientHandle shareCtx, int version)
-{
- emugl::Mutex::AutoLock(this->m_mutex);
-
- assert(m_ctxs.find(handle) == m_ctxs.end());
- RendererContext *shared = NULL;
- if (shareCtx.handle != 0) {
- ContextMap::iterator sctx = m_ctxs.find(shareCtx);
- if (sctx != m_ctxs.end()) {
- shared = sctx->second;
- }
- }
-
- RendererContext *ctx =
- RendererContext::create(m_dpy,
- RendererSurface::getEglConfig(m_dpy, RendererSurface::CONFIG_DEPTH),
- shared, version);
- if (ctx == NULL) {
- fprintf(stderr, "failed to create context\n");
- return -1;
- }
- m_ctxs.insert(ContextMap::value_type(handle, ctx));
- return 0;
-}
-
-int Renderer::destroyContext(RenderingThread *thread, const ClientHandle &handle)
-{
- emugl::Mutex::AutoLock(this->m_mutex);
-
- ContextMap::iterator i = m_ctxs.find(handle);
- if (i == m_ctxs.end()) {
- printf("removing context that doesn't exists\n");
- return -1;
- }
- if (i->second->destroy()) {
- m_ctxs.erase(handle);
- }
- return 0;
-}
-
-int Renderer::makeCurrent(RenderingThread *thread,
- const ClientHandle &drawSurface,
- const ClientHandle &readSurface,
- const ClientHandle & ctx)
-{
- emugl::Mutex::AutoLock(this->m_mutex);
-
- RendererContext *currentContext = thread->currentContext();
-
- ContextMap::iterator c = m_ctxs.find(ctx);
- EGLContext eglContext;
- if (ctx.handle != 0 && c != m_ctxs.end()) {
- if (c->second != currentContext) {
- // new context is set
- if (currentContext != NULL) currentContext->unref();
- c->second->ref();
- eglContext = c->second->eglContext();
- thread->setCurrentContext(c->second);
- thread->glDecoder().setContextData(&c->second->decoderContextData());
- thread->gl2Decoder().setContextData(&c->second->decoderContextData());
- } else {
- // same context is already set
- eglContext = c->second->eglContext();
- }
- } else {
- eglContext = EGL_NO_CONTEXT;
- if (currentContext != NULL) currentContext->unref();
- thread->setCurrentContext(NULL);
- thread->glDecoder().setContextData(NULL);
- thread->gl2Decoder().setContextData(NULL);
- }
-
- EGLSurface draw = EGL_NO_SURFACE;
- EGLSurface read = EGL_NO_SURFACE;
- SurfaceMap::iterator i;
- i = m_surfaces.find(drawSurface); if (i != m_surfaces.end()) draw = i->second->eglSurface();
- i = m_surfaces.find(readSurface); if (i != m_surfaces.end()) read = i->second->eglSurface();
-
- return eglMakeCurrent(m_dpy, draw, read, eglContext);
-}
-
-int Renderer::swapBuffers(RenderingThread *thread,
- const ClientHandle &surface)
-{
- emugl::Mutex::AutoLock(this->m_mutex);
-
- SurfaceMap::iterator s = m_surfaces.find(surface);
- if (s == m_surfaces.end()) {
- fprintf(stderr, "swapping buffers for non existing surface\n");
- return -1;
- }
- return eglSwapBuffers(m_dpy, s->second->eglSurface());
-}
diff --git a/emulator/opengl/tests/ut_renderer/Renderer.h b/emulator/opengl/tests/ut_renderer/Renderer.h
deleted file mode 100644
index 81f4077..0000000
--- a/emulator/opengl/tests/ut_renderer/Renderer.h
+++ /dev/null
@@ -1,62 +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.
-*/
-#ifndef _RENDERER_H_
-#define _RENDERER_H_
-#include <map>
-#include "RendererSurface.h"
-#include "RendererContext.h"
-#include "NativeWindowing.h"
-#include "emugl/common/mutex.h"
-
-class RenderingThread;
-
-class Renderer {
-public:
-
- class ClientHandle {
- public:
- unsigned int pid;
- unsigned int handle;
- ClientHandle(unsigned int _pid, unsigned int _handle) : pid(_pid), handle(_handle) {}
-
- bool operator< (const ClientHandle & p) const {
- bool val = (pid == p.pid) ? handle < p.handle : pid < p.pid;
- return val;
- }
- };
-
- static Renderer *instance();
- int createSurface(RenderingThread *thread, const ClientHandle & handle);
- int destroySurface(RenderingThread *thread, const ClientHandle &handle);
- int createContext(RenderingThread *thread, const ClientHandle & ctx, const ClientHandle shareCtx, int version);
- int destroyContext(RenderingThread *thread,const ClientHandle & ctx);
- int makeCurrent(RenderingThread *thread,
- const ClientHandle & drawSurface, const ClientHandle & readSurface, const ClientHandle & ctx);
- int swapBuffers(RenderingThread *thread, const ClientHandle & surface);
-
-private:
- typedef std::map<ClientHandle, RendererSurface *> SurfaceMap;
- typedef std::map<ClientHandle, RendererContext *> ContextMap;
- static Renderer *m_instance;
- Renderer();
- SurfaceMap m_surfaces;
- ContextMap m_ctxs;
- NativeWindowing *m_nw;
- EGLDisplay m_dpy;
-
- emugl::Mutex m_mutex; // single global mutex for the renderer class;
-};
-#endif
diff --git a/emulator/opengl/tests/ut_renderer/RendererContext.cpp b/emulator/opengl/tests/ut_renderer/RendererContext.cpp
deleted file mode 100644
index 0f93acd..0000000
--- a/emulator/opengl/tests/ut_renderer/RendererContext.cpp
+++ /dev/null
@@ -1,66 +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.
-*/
-#include "RendererContext.h"
-#include <stdio.h>
-#include <stdlib.h>
-
-RendererContext * RendererContext::create(EGLDisplay dpy, EGLConfig config, RendererContext *shareCtx, int version)
-{
- EGLContext ctx;
- EGLContext shared = shareCtx == NULL ? EGL_NO_CONTEXT : shareCtx->eglContext();
-
- EGLint context_attributes[] = { EGL_CONTEXT_CLIENT_VERSION, 1, EGL_NONE };
- context_attributes[1] = version;
-
- ctx = eglCreateContext(dpy, config, shared, context_attributes);
- if (eglGetError() != EGL_SUCCESS) return NULL;
-
- return new RendererContext(dpy, ctx, version);
-}
-
-int RendererContext::destroy()
-{
- if (count() <= 0) {
- eglDestroyContext(m_dpy, m_ctx);
- return 1;
- }
- return 0;
-}
-
-#ifdef PVR_WAR
-void RendererContext::setActiveTexture(GLenum texture)
-{
- m_activeTexture = texture - GL_TEXTURE0;
-}
-
-void RendererContext::setTex2DBind(GLuint texture)
-{
- m_tex2DBind[m_activeTexture] = texture;
-}
-
-GLuint RendererContext::getTex2DBind()
-{
- return m_tex2DBind[m_activeTexture];
-}
-
-void RendererContext::addPendingCropRect(const int *rect)
-{
- PendingCropRect *r = new PendingCropRect;
- r->texture = m_tex2DBind[m_activeTexture];
- memcpy(r->rect, rect, 4*sizeof(int));
- m_pendingCropRects.insert(r);
-}
-#endif
diff --git a/emulator/opengl/tests/ut_renderer/RendererContext.h b/emulator/opengl/tests/ut_renderer/RendererContext.h
deleted file mode 100644
index bb24a2e..0000000
--- a/emulator/opengl/tests/ut_renderer/RendererContext.h
+++ /dev/null
@@ -1,127 +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.
-*/
-#ifndef _RENDERER_CONTEXT_H_
-#define _RENDERER_CONTEXT_H_
-
-#include "RendererObject.h"
-#include "GLDecoderContextData.h"
-
-#include <EGL/egl.h>
-#define GL_API
-#define GL_APIENTRY
-#include <GLES/gl.h>
-#include <string.h>
-
-#ifdef PVR_WAR
-#include <set>
-struct PendingCropRect
-{
- GLuint texture;
- int rect[4];
-};
-
-typedef std::set<PendingCropRect *> PendingCropRectSet;
-#endif
-
-class RendererContext : public RendererObject {
-public:
- static RendererContext *create(EGLDisplay dpy, EGLConfig config, RendererContext *shareCtx, int version);
- EGLContext eglContext() { return m_ctx; }
- int destroy();
- GLDecoderContextData & decoderContextData() { return m_contextData; }
-#ifdef PVR_WAR
- void setActiveTexture(GLenum texture);
- GLenum getActiveTexture() { return GL_TEXTURE0 + m_activeTexture; }
- void setTex2DBind(GLuint texture);
- void setTex2DEnable(bool enable) {
- m_tex2DEnable[m_activeTexture] = enable;
- }
- bool isTex2DEnable(int texunit) { return m_tex2DEnable[texunit]; }
- GLuint getTex2DBind();
- void addPendingCropRect(const int *rect);
- PendingCropRectSet &getPendingCropRects() { return m_pendingCropRects; }
-
- void setClientActiveTexture(GLenum texture) { m_clientActiveTexture = texture - GL_TEXTURE0; }
- GLenum getClientActiveTexture() { return m_clientActiveTexture + GL_TEXTURE0; }
- void enableClientState(GLenum cap, bool enable) {
- switch(cap) {
- case GL_VERTEX_ARRAY:
- m_clientStateEnable[0] = enable;
- break;
- case GL_NORMAL_ARRAY:
- m_clientStateEnable[1] = enable;
- break;
- case GL_COLOR_ARRAY:
- m_clientStateEnable[2] = enable;
- break;
- case GL_POINT_SIZE_ARRAY_OES:
- m_clientStateEnable[3] = enable;
- break;
- case GL_TEXTURE_COORD_ARRAY:
- m_clientStateEnable[4 + m_clientActiveTexture] = enable;
- break;
- }
- }
-
- bool getClientState(GLenum cap, int texUnit) {
- switch(cap) {
- case GL_VERTEX_ARRAY:
- return m_clientStateEnable[0];
- case GL_NORMAL_ARRAY:
- return m_clientStateEnable[1];
- case GL_COLOR_ARRAY:
- return m_clientStateEnable[2];
- case GL_POINT_SIZE_ARRAY_OES:
- return m_clientStateEnable[3];
- break;
- case GL_TEXTURE_COORD_ARRAY:
- return m_clientStateEnable[4 + texUnit];
- break;
- }
- return false;
- }
-#endif
-
-private:
- EGLDisplay m_dpy;
- EGLContext m_ctx;
- GLDecoderContextData m_contextData;
- int m_version;
-
- RendererContext(EGLDisplay dpy, EGLContext ctx, int version) :
- m_dpy(dpy),
- m_ctx(ctx),
- m_version(version)
- {
-#ifdef PVR_WAR
- m_activeTexture = 0;
- m_clientActiveTexture = 0;
- memset(m_tex2DBind, 0, 8*sizeof(GLuint));
- memset(m_tex2DEnable, 0, 8*sizeof(bool));
- memset(m_clientStateEnable, 0, 16*sizeof(bool));
-#endif
- }
-
-#ifdef PVR_WAR
- int m_tex2DBind[8];
- bool m_tex2DEnable[8];
- int m_activeTexture;
- int m_clientActiveTexture;
- bool m_clientStateEnable[16];
- PendingCropRectSet m_pendingCropRects;
-#endif
-};
-#endif
diff --git a/emulator/opengl/tests/ut_renderer/RendererObject.h b/emulator/opengl/tests/ut_renderer/RendererObject.h
deleted file mode 100644
index 18c89be..0000000
--- a/emulator/opengl/tests/ut_renderer/RendererObject.h
+++ /dev/null
@@ -1,29 +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.
-*/
-#ifndef _RENDERER_OBJECT_H_
-#define _RENDERER_OBJECT_H_
-
-class RendererObject {
-public:
- RendererObject() { m_count = 0; }
-
- int count() { return m_count; }
- void ref() { m_count++; }
- void unref() { m_count--; }
-private:
- int m_count;
-};
-#endif
diff --git a/emulator/opengl/tests/ut_renderer/RendererSurface.cpp b/emulator/opengl/tests/ut_renderer/RendererSurface.cpp
deleted file mode 100644
index 7d8d8c6..0000000
--- a/emulator/opengl/tests/ut_renderer/RendererSurface.cpp
+++ /dev/null
@@ -1,108 +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.
-*/
-#include "RendererSurface.h"
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "NativeWindowing.h"
-
-#define MAX_ATTRIB 100
-
-
-EGLConfig RendererSurface::getEglConfig(EGLDisplay eglDisplay, SurfaceConfig config)
-{
- EGLConfig eglConfig;
- int nConfigs;
-
- EGLint attrib[MAX_ATTRIB];
- int pos =0;
-
- attrib[pos++] = EGL_SURFACE_TYPE; attrib[pos++] = EGL_WINDOW_BIT;
- if (config & CONFIG_DEPTH) {attrib[pos++] = EGL_DEPTH_SIZE; attrib[pos++] = 1;}
- attrib[pos++] = EGL_NONE;
-
- if (!eglChooseConfig(eglDisplay, attrib, &eglConfig, 1, &nConfigs)) {
- return 0;
- }
- /***/
- int ibuf;
- if (eglGetConfigAttrib(eglDisplay, eglConfig, EGL_BUFFER_SIZE, &ibuf)) {
- fprintf(stderr, "EGL COLOR Buffer size: %d\n", ibuf);
- } else {
- fprintf(stderr, "eglGetConfigAttrib error: %d\n", eglGetError());
- }
- if (eglGetConfigAttrib(eglDisplay, eglConfig, EGL_DEPTH_SIZE, &ibuf)) {
- fprintf(stderr, "EGL DEPTH Buffer size: %d\n", ibuf);
- } else {
- fprintf(stderr, "eglGetConfigAttrib error: %d\n", eglGetError());
- }
- /***/
-
-
- if (nConfigs != 1) {
- return 0;
- }
- return eglConfig;
-}
-
-RendererSurface * RendererSurface::create(EGLDisplay eglDisplay, SurfaceConfig config, NativeWindowing *nw)
-{
- int width = 0, height = 0;
- const char* env;
-
- env = getenv("ANDROID_WINDOW_WIDTH");
- if (env && *env) {
- width = atoi(env);
- }
- env = getenv("ANDROID_WINDOW_HEIGHT");
- if (env && *env) {
- height = atoi(env);
- }
- if (width <= 160)
- width = DEFAULT_WIDTH;
- if (height <= 160)
- height = DEFAULT_HEIGHT;
-
- printf("%s: Using width=%d height=%d\n", __FUNCTION__, width, height);
-
- EGLConfig eglConfig = getEglConfig(eglDisplay, config);
- if (eglConfig == 0) {
- return NULL;
- }
-
- NativeWindowType window = nw->createNativeWindow(nw->getNativeDisplay(), width, height);
- if (window == 0) {
- return NULL;
- }
-
- EGLSurface eglSurface = eglCreateWindowSurface(eglDisplay,
- eglConfig,
- window, NULL);
-
- if (eglGetError() != EGL_SUCCESS) {
- return NULL;
- }
-
- return new RendererSurface(eglDisplay, window, eglSurface, eglConfig);
-}
-
-int RendererSurface::destroy(NativeWindowing *nw)
-{
- eglDestroySurface(m_eglDisplay, m_eglSurface);
- nw->destroyNativeWindow(nw->getNativeDisplay(), m_window);
- return 1;
-}
-
diff --git a/emulator/opengl/tests/ut_renderer/RendererSurface.h b/emulator/opengl/tests/ut_renderer/RendererSurface.h
deleted file mode 100644
index 4f6709c..0000000
--- a/emulator/opengl/tests/ut_renderer/RendererSurface.h
+++ /dev/null
@@ -1,52 +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.
-*/
-#ifndef _RENDERER_SURFACE_H_
-#define _RENDERER_SURFACE_H_
-
-#include <EGL/egl.h>
-#include "NativeWindowing.h"
-#include "RendererObject.h"
-
-#define DEFAULT_HEIGHT 480
-#define DEFAULT_WIDTH 320
-
-class RendererSurface : public RendererObject {
-public:
- typedef enum { CONFIG_DEPTH = 1 << 0 } SurfaceConfig;
-
- EGLSurface eglSurface() { return m_eglSurface; }
- EGLConfig eglConfig() { return m_config; }
- EGLDisplay eglDisplay() { return m_eglDisplay; }
-
- static RendererSurface * create(EGLDisplay eglDisplay, SurfaceConfig config, NativeWindowing *nw);
- static EGLConfig getEglConfig(EGLDisplay eglDisplay, SurfaceConfig config);
-
- int destroy(NativeWindowing *nw);
-
-private:
- RendererSurface(EGLDisplay display, NativeWindowType window, EGLSurface surface, EGLConfig config) :
- m_eglDisplay(display),
- m_config(config),
- m_window(window),
- m_eglSurface(surface)
- {}
-
- EGLDisplay m_eglDisplay;
- EGLConfig m_config;
- NativeWindowType m_window;
- EGLSurface m_eglSurface;
-};
-#endif
diff --git a/emulator/opengl/tests/ut_renderer/RenderingThread.cpp b/emulator/opengl/tests/ut_renderer/RenderingThread.cpp
deleted file mode 100644
index 70eee20..0000000
--- a/emulator/opengl/tests/ut_renderer/RenderingThread.cpp
+++ /dev/null
@@ -1,387 +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.
-*/
-#include "RenderingThread.h"
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include <pthread.h>
-#include "ReadBuffer.h"
-#include "Renderer.h"
-#include "TimeUtils.h"
-
-#include <GLES/glext.h>
-
-__thread RenderingThread * RenderingThread::m_tls;
-
-#ifdef PVR_WAR
-void RenderingThread::s_glTexParameteriv(GLenum target, GLenum param, const int *p)
-{
- if (target == GL_TEXTURE_2D && param == GL_TEXTURE_CROP_RECT_OES) {
- m_tls->m_currentContext->addPendingCropRect(p);
- } else {
- m_tls->m_glTexParameteriv(target, param, p);
- }
-}
-
-void RenderingThread::s_glDrawTexfOES(GLfloat x, GLfloat y, GLfloat z, GLfloat w, GLfloat h)
-{
- m_tls->applyPendingCropRects();
- m_tls->m_glDrawTexfOES(x, y, z, w, h);
- m_tls->fixTextureEnable();
-}
-
-void RenderingThread::s_glDrawTexsOES(GLshort x, GLshort y, GLshort z, GLshort w, GLshort h)
-{
- m_tls->applyPendingCropRects();
- m_tls->m_glDrawTexsOES(x, y, z, w, h);
- m_tls->fixTextureEnable();
-}
-
-void RenderingThread::s_glDrawTexiOES(GLint x, GLint y, GLint z, GLint w, GLint h)
-{
- m_tls->applyPendingCropRects();
- m_tls->m_glDrawTexiOES(x, y, z, w, h);
- m_tls->fixTextureEnable();
-}
-
-void RenderingThread::s_glDrawTexxOES(GLfixed x, GLfixed y, GLfixed z, GLfixed w, GLfixed h)
-{
- m_tls->applyPendingCropRects();
- m_tls->m_glDrawTexxOES(x, y, z, w, h);
- m_tls->fixTextureEnable();
-}
-
-void RenderingThread::s_glDrawTexfvOES(const GLfloat *coords)
-{
- m_tls->applyPendingCropRects();
- m_tls->m_glDrawTexfvOES(coords);
- m_tls->fixTextureEnable();
-}
-
-void RenderingThread::s_glDrawTexsvOES(const GLshort *coords)
-{
- m_tls->applyPendingCropRects();
- m_tls->m_glDrawTexsvOES(coords);
- m_tls->fixTextureEnable();
-}
-
-void RenderingThread::s_glDrawTexivOES(const GLint *coords)
-{
- m_tls->applyPendingCropRects();
- m_tls->m_glDrawTexivOES(coords);
- m_tls->fixTextureEnable();
-}
-
-void RenderingThread::s_glDrawTexxvOES(const GLfixed *coords)
-{
- m_tls->applyPendingCropRects();
- m_tls->m_glDrawTexxvOES(coords);
- m_tls->fixTextureEnable();
-}
-
-
-void RenderingThread::s_glActiveTexture(GLenum texture)
-{
- if (texture - GL_TEXTURE0 >= m_tls->m_backendCaps.maxTextureUnits) return;
-
- m_tls->m_currentContext->setActiveTexture(texture);
- m_tls->m_glActiveTexture(texture);
-}
-
-void RenderingThread::s_glBindTexture(GLenum target, GLuint texture)
-{
- if (target == GL_TEXTURE_2D) m_tls->m_currentContext->setTex2DBind(texture);
- m_tls->m_glBindTexture(target, texture);
-}
-
-void RenderingThread::s_glEnable(GLenum cap)
-{
- if (cap == GL_TEXTURE_2D) m_tls->m_currentContext->setTex2DEnable(true);
- m_tls->m_glEnable(cap);
-}
-
-void RenderingThread::s_glDisable(GLenum cap)
-{
- if (cap == GL_TEXTURE_2D) m_tls->m_currentContext->setTex2DEnable(false);
- m_tls->m_glDisable(cap);
-}
-
-void RenderingThread::s_glClientActiveTexture(GLenum texture)
-{
- if (texture - GL_TEXTURE0 >= m_tls->m_backendCaps.maxTextureUnits) return;
- m_tls->m_currentContext->setClientActiveTexture(texture);
- m_tls->m_glClientActiveTexture(texture);
-}
-
-void RenderingThread::s_glEnableClientState(GLenum cap)
-{
- m_tls->m_currentContext->enableClientState(cap, true);
- m_tls->m_glEnableClientState(cap);
-}
-
-void RenderingThread::s_glDisableClientState(GLenum cap)
-{
- m_tls->m_currentContext->enableClientState(cap, false);
- m_tls->m_glDisableClientState(cap);
-}
-
-void RenderingThread::applyPendingCropRects()
-{
- PendingCropRectSet &rset = m_currentContext->getPendingCropRects();
- if (rset.size() > 0) {
- GLuint currBindedTex = m_currentContext->getTex2DBind();
- for (PendingCropRectSet::iterator i = rset.begin();
- i != rset.end();
- i++) {
- m_glBindTexture(GL_TEXTURE_2D, (*i)->texture);
- m_glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_CROP_RECT_OES, (int *)(*i)->rect);
- delete (*i);
- }
- m_glBindTexture(GL_TEXTURE_2D, currBindedTex);
- rset.clear();
- }
-}
-
-void RenderingThread::fixTextureEnable()
-{
- // restore texture units enable state
- for (unsigned int i=0; i<m_backendCaps.maxTextureUnits; i++) {
- m_glActiveTexture(GL_TEXTURE0 + i);
- if (m_currentContext->isTex2DEnable(i)) {
- m_glEnable(GL_TEXTURE_2D);
- }
- else {
- m_glDisable(GL_TEXTURE_2D);
- }
- m_glClientActiveTexture(GL_TEXTURE0 + i);
- if (m_currentContext->getClientState(GL_TEXTURE_COORD_ARRAY, i)) {
- m_glEnableClientState(GL_TEXTURE_COORD_ARRAY);
- }
- else {
- m_glDisableClientState(GL_TEXTURE_COORD_ARRAY);
- }
- }
- // restore current active texture
- m_glActiveTexture(m_currentContext->getActiveTexture());
- m_glClientActiveTexture(m_currentContext->getClientActiveTexture());
-
- // restore other client state enable bits
- if (m_currentContext->getClientState(GL_VERTEX_ARRAY, 0)) {
- m_glEnableClientState(GL_VERTEX_ARRAY);
- }
- else {
- m_glDisableClientState(GL_VERTEX_ARRAY);
- }
-
- if (m_currentContext->getClientState(GL_NORMAL_ARRAY, 0)) {
- m_glEnableClientState(GL_NORMAL_ARRAY);
- }
- else {
- m_glDisableClientState(GL_NORMAL_ARRAY);
- }
-
- if (m_currentContext->getClientState(GL_COLOR_ARRAY, 0)) {
- m_glEnableClientState(GL_COLOR_ARRAY);
- }
- else {
- m_glDisableClientState(GL_COLOR_ARRAY);
- }
-
- if (m_currentContext->getClientState(GL_POINT_SIZE_ARRAY_OES, 0)) {
- m_glEnableClientState(GL_POINT_SIZE_ARRAY_OES);
- }
- else {
- m_glDisableClientState(GL_POINT_SIZE_ARRAY_OES);
- }
-}
-#endif
-
-
-int RenderingThread::s_createContext(uint32_t pid, uint32_t handle, uint32_t shareCtx, int version)
-{
- return Renderer::instance()->createContext(m_tls, Renderer::ClientHandle(pid, handle),
- Renderer::ClientHandle(pid, shareCtx),
- version);
-
-}
-
-
-int RenderingThread::s_createSurface(uint32_t pid, uint32_t handle)
-{
- return Renderer::instance()->createSurface(m_tls, Renderer::ClientHandle(pid, handle));
-}
-
-int RenderingThread::s_destroySurface(uint32_t pid, uint32_t handle)
-{
- return Renderer::instance()->destroySurface(m_tls, Renderer::ClientHandle(pid, handle));
-}
-
-int RenderingThread::s_destroyContext(uint32_t pid, uint32_t handle)
-{
- return Renderer::instance()->destroyContext(m_tls, Renderer::ClientHandle(pid, handle));
-}
-
-
-int RenderingThread::s_makeCurrent(uint32_t pid, uint32_t drawSurface, uint32_t readSurface, uint32_t ctx)
-{
- int ret = Renderer::instance()->makeCurrent(m_tls,
- Renderer::ClientHandle(pid, drawSurface),
- Renderer::ClientHandle(pid, readSurface),
- Renderer::ClientHandle(pid, ctx));
-
- if (ret && ctx) {
- m_tls->initBackendCaps();
- }
-
- return ret;
-}
-
-void RenderingThread::s_swapBuffers(uint32_t pid, uint32_t surface)
-{
- Renderer::instance()->swapBuffers(m_tls, Renderer::ClientHandle(pid, surface));
-}
-
-
-RenderingThread::RenderingThread(SocketStream *stream) :
- m_stream(stream),
- m_currentContext(NULL)
-{
- m_backendCaps.initialized = false;
-}
-
-int RenderingThread::start(void)
-{
- if (pthread_create(&m_thread, NULL, s_thread, this) < 0) {
- perror("pthread_create");
- return -1;
- }
- return 0;
-}
-
-
-void * RenderingThread::s_thread(void *data)
-{
- RenderingThread *self = (RenderingThread *)data;
- m_tls = self;
- return self->thread();
-}
-
-void RenderingThread::initBackendCaps()
-{
- if (m_backendCaps.initialized) return;
-
- m_glDec.glGetIntegerv(GL_MAX_TEXTURE_UNITS, (GLint *)&m_backendCaps.maxTextureUnits);
- m_backendCaps.initialized = true;
-}
-
-void *RenderingThread::thread()
-{
-
- // initialize our decoders;
- m_glDec.initGL();
-
-#ifdef PVR_WAR
- m_glTexParameteriv = m_glDec.set_glTexParameteriv(s_glTexParameteriv);
- m_glDrawTexfOES = m_glDec.set_glDrawTexfOES(s_glDrawTexfOES);
- m_glDrawTexsOES = m_glDec.set_glDrawTexsOES(s_glDrawTexsOES);
- m_glDrawTexiOES = m_glDec.set_glDrawTexiOES(s_glDrawTexiOES);
- m_glDrawTexxOES = m_glDec.set_glDrawTexxOES(s_glDrawTexxOES);
- m_glDrawTexfvOES = m_glDec.set_glDrawTexfvOES(s_glDrawTexfvOES);
- m_glDrawTexsvOES = m_glDec.set_glDrawTexsvOES(s_glDrawTexsvOES);
- m_glDrawTexivOES = m_glDec.set_glDrawTexivOES(s_glDrawTexivOES);
- m_glDrawTexxvOES = m_glDec.set_glDrawTexxvOES(s_glDrawTexxvOES);
- m_glActiveTexture = m_glDec.set_glActiveTexture(s_glActiveTexture);
- m_glBindTexture = m_glDec.set_glBindTexture(s_glBindTexture);
- m_glEnable = m_glDec.set_glEnable(s_glEnable);
- m_glDisable = m_glDec.set_glDisable(s_glDisable);
- m_glClientActiveTexture = m_glDec.set_glClientActiveTexture(s_glClientActiveTexture);
- m_glEnableClientState = m_glDec.set_glEnableClientState(s_glEnableClientState);
- m_glDisableClientState = m_glDec.set_glDisableClientState(s_glDisableClientState);
-#endif
-
- m_gl2Dec.initGL();
-
- m_utDec.set_swapBuffers(s_swapBuffers);
- m_utDec.set_createContext(s_createContext);
- m_utDec.set_destroyContext(s_destroyContext);
- m_utDec.set_createSurface(s_createSurface);
- m_utDec.set_destroySurface(s_destroySurface);
- m_utDec.set_makeCurrentContext(s_makeCurrent);
-
- ReadBuffer readBuf(m_stream, DECODER_BUF_SIZE);
-
- int stats_totalBytes = 0;
- long long stats_t0 = GetCurrentTimeMS();
-
- while (1) {
-
- int stat = readBuf.getData();
- if (stat == 0) {
- fprintf(stderr, "client shutdown\n");
- break;
- } else if (stat < 0) {
- perror("getData");
- break;
- }
-
- //
- // log received bandwidth statistics
- //
- stats_totalBytes += readBuf.validData();
- long long dt = GetCurrentTimeMS() - stats_t0;
- if (dt > 1000) {
- float dts = (float)dt / 1000.0f;
- printf("Used Bandwidth %5.3f MB/s\n", ((float)stats_totalBytes / dts) / (1024.0f*1024.0f));
- stats_totalBytes = 0;
- stats_t0 = GetCurrentTimeMS();
- }
-
- bool progress = true;
- while (progress) {
- progress = false;
- // we need at least one header (8 bytes) in our buffer
- if (readBuf.validData() >= 8) {
- size_t last = m_glDec.decode(readBuf.buf(), readBuf.validData(), m_stream);
- if (last > 0) {
- progress = true;
- readBuf.consume(last);
- }
- }
-
- if (readBuf.validData() >= 8) {
- size_t last = m_gl2Dec.decode(readBuf.buf(), readBuf.validData(), m_stream);
- if (last > 0) {
- readBuf.consume(last);
- progress = true;
- }
- }
-
- if (readBuf.validData() >= 8) {
- size_t last = m_utDec.decode(readBuf.buf(), readBuf.validData(), m_stream);
- if (last > 0) {
- readBuf.consume(last);
- progress = true;
- }
- }
- }
- }
- // shutdown
- if (m_currentContext != NULL) {
- m_currentContext->unref();
- }
-
- return NULL;
-}
diff --git a/emulator/opengl/tests/ut_renderer/RenderingThread.h b/emulator/opengl/tests/ut_renderer/RenderingThread.h
deleted file mode 100644
index 0b4ebe6..0000000
--- a/emulator/opengl/tests/ut_renderer/RenderingThread.h
+++ /dev/null
@@ -1,117 +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.
-*/
-#ifndef _RENDERING_THREAD_H_
-#define _RENDERING_THREAD_H_
-
-#include "SocketStream.h"
-#include "GLDecoder.h"
-#include "GL2Decoder.h"
-#include "ut_rendercontrol_dec.h"
-#include <pthread.h>
-
-#define GL_API
-#define GL_APIENTRY
-
-#include <GLES/egl.h>
-#include <GLES/gl.h>
-
-
-#define WINDOW_WIDTH 320
-#define WINDOW_HEIGHT 480
-
-#define DECODER_BUF_SIZE (4 * 1024 * 1024)
-
-class RendererContext;
-
-class RenderingThread {
-public:
- RenderingThread(SocketStream *stream);
- int start();
- void *thread();
- RendererContext *currentContext() { return m_currentContext; }
- void setCurrentContext(RendererContext *ctx) { m_currentContext = ctx; }
- GLDecoder & glDecoder() { return m_glDec; }
- GL2Decoder & gl2Decoder() { return m_gl2Dec; }
-
-private:
- void initBackendCaps();
-
-private:
- GLDecoder m_glDec;
- ut_rendercontrol_decoder_context_t m_utDec;
- GL2Decoder m_gl2Dec;
-
- SocketStream *m_stream;
- pthread_t m_thread;
- RendererContext * m_currentContext;
-
- struct BackendCaps {
- bool initialized;
- GLuint maxTextureUnits;
- } m_backendCaps;
-
- static void * s_thread(void *data);
- static __thread RenderingThread *m_tls;
-
- static int s_createContext(uint32_t pid, uint32_t handle, uint32_t shareCtx, int version);
- static int s_createSurface(uint32_t pid, uint32_t handle);
- static int s_destroySurface(uint32_t pid, uint32_t handle);
- static int s_destroyContext(uint32_t pid, uint32_t handle);
- static int s_makeCurrent(uint32_t pid, uint32_t drawSurface, uint32_t readSurface, uint32_t ctx);
- static void s_swapBuffers(uint32_t pid, uint32_t surface);
-#ifdef PVR_WAR
- static void s_glTexParameteriv(GLenum target, GLenum param, const int *p);
- static void s_glDrawTexfOES(GLfloat x, GLfloat y, GLfloat z, GLfloat w, GLfloat h);
- static void s_glDrawTexsOES(GLshort x, GLshort y, GLshort z, GLshort w, GLshort h);
- static void s_glDrawTexiOES(GLint x, GLint y, GLint z, GLint w, GLint h);
- static void s_glDrawTexxOES(GLfixed x, GLfixed y, GLfixed z, GLfixed w, GLfixed h);
- static void s_glDrawTexfvOES(const GLfloat *coords);
- static void s_glDrawTexsvOES(const GLshort *coords);
- static void s_glDrawTexivOES(const GLint *coords);
- static void s_glDrawTexxvOES(const GLfixed *coords);
-
- static void s_glActiveTexture(GLenum texture);
- static void s_glBindTexture(GLenum target, GLuint texture);
- static void s_glEnable(GLenum cap);
- static void s_glDisable(GLenum cap);
- static void s_glClientActiveTexture(GLenum texture);
- static void s_glEnableClientState(GLenum cap);
- static void s_glDisableClientState(GLenum cap);
-
- void applyPendingCropRects();
- void fixTextureEnable();
-
- glTexParameteriv_server_proc_t m_glTexParameteriv;
- glDrawTexfOES_server_proc_t m_glDrawTexfOES;
- glDrawTexiOES_server_proc_t m_glDrawTexiOES;
- glDrawTexsOES_server_proc_t m_glDrawTexsOES;
- glDrawTexxOES_server_proc_t m_glDrawTexxOES;
- glDrawTexfvOES_server_proc_t m_glDrawTexfvOES;
- glDrawTexivOES_server_proc_t m_glDrawTexivOES;
- glDrawTexsvOES_server_proc_t m_glDrawTexsvOES;
- glDrawTexxvOES_server_proc_t m_glDrawTexxvOES;
- glActiveTexture_server_proc_t m_glActiveTexture;
- glBindTexture_server_proc_t m_glBindTexture;
- glEnable_server_proc_t m_glEnable;
- glDisable_server_proc_t m_glDisable;
- glClientActiveTexture_server_proc_t m_glClientActiveTexture;
- glEnableClientState_server_proc_t m_glEnableClientState;
- glDisableClientState_server_proc_t m_glDisableClientState;
-#endif
-
-};
-
-#endif
diff --git a/emulator/opengl/tests/ut_renderer/X11RendererSurface.cpp b/emulator/opengl/tests/ut_renderer/X11RendererSurface.cpp
deleted file mode 100644
index 121ee87..0000000
--- a/emulator/opengl/tests/ut_renderer/X11RendererSurface.cpp
+++ /dev/null
@@ -1,69 +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.
-*/
-#include "X11RendererSurface.h"
-
-NativeDisplayType X11RendererSurface::getNativeDisplay()
-{
- if (m_display == NULL) {
- m_display = XOpenDisplay(NULL);
- }
- return NativeDisplayType(m_display);
-}
-
-int X11RendererSurface::destoryNativeWindow(NativeWindowType win)
-{
- if (m_display == NULL) return -1;
-
- Window x11Window = (Window)(win);
- return XDestroyWindow(m_display, x11Window);
-}
-
-NativeWindowType GlesX11Win::createNativeWindow()
-{
-
- getNativeDisplay();
- if (m_display == NULL) {
- return -1;
- }
-
- long defaultScreen = DefaultScreen( dpy );
- Window rootWindow = RootWindow(dpy, defaultScreen);
- int depth = DefaultDepth(dpy, defaultScreen);
- XVisualInfo *visualInfo = new XVisualInfo;
-
- XMatchVisualInfo(m_display, defaultScreen, , dpeth, TrueColor, visualInfo);
- if (visualInfo == NULL) {
- fprintf(stderr, "couldn't find matching visual\n");
- return -1;
- }
-
- Colormap x11Colormap = XCreateColormap(m_display, rootWindow, visualInfo->visual, AllocNone);
- XSetWindowAttributes sWA;
- sWA.Colormap = x11Colormap;
- sWA.event_mask = StructureNotifyMask | ExposureMask;
- unsigned int eventMask = CWBackPixel | CWBorderPixel | CWEventMask | CWColormap;
-
- Window win = XCreateWindow( m_display,
- rootWindow,
- 0, 0, width, height,
- 0, CopyFromParent, InputOutput,
- CopyFromParent, eventMask, &sWA);
-
- XMapWindow(m_display, win);
- XFlush(m_display);
- return NativeWindowType(win);
-}
-
diff --git a/emulator/opengl/tests/ut_renderer/X11RendererSurface.h b/emulator/opengl/tests/ut_renderer/X11RendererSurface.h
deleted file mode 100644
index be9bcec..0000000
--- a/emulator/opengl/tests/ut_renderer/X11RendererSurface.h
+++ /dev/null
@@ -1,37 +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.
-*/
-#ifndef _X11_RENDERER_SURFACE_H_
-#define _X11_RENDERER_SURFACE_H_
-
-#include <X11/Xutil.h>
-#include <X11/Xlib.h>
-#include <EGL/egl.h>
-
-include "RendererSurface.h"
-
-class X11RendererSurface : public RendererSurface
-{
-public:
- X11RendererSurface() : RendererSurface() {
- m_display = NULL;
- }
- NativeDisplayType getNativeDisplay();
- NativeWindowType createNativeWindow();
- int destroyNativeWindow(NativeWindowType win);
-private:
- Display m_display;
-};
-#endif
diff --git a/emulator/opengl/tests/ut_renderer/X11Windowing.cpp b/emulator/opengl/tests/ut_renderer/X11Windowing.cpp
deleted file mode 100644
index cc94fdd..0000000
--- a/emulator/opengl/tests/ut_renderer/X11Windowing.cpp
+++ /dev/null
@@ -1,131 +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.
-*/
-#include "X11Windowing.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-
-#define DEBUG 0
-#if DEBUG
-# define D(...) printf(__VA_ARGS__), printf("\n")
-#else
-# define D(...) ((void)0)
-#endif
-
-/* Try to remember the window position between creates/destroys */
-static int X11_wmXPos = 100;
-static int X11_wmYPos = 100;
-
-static int X11_wmXAdjust = 0;
-static int X11_wmYAdjust = 0;
-
-static void
-get_window_pos( Display *disp, Window win, int *px, int *py )
-{
- Window child;
-
- XTranslateCoordinates( disp, win, DefaultRootWindow(disp), 0, 0, px, py, &child );
-}
-
-
-static void
-set_window_pos(Display *disp, Window win, int x, int y)
-{
- int xNew, yNew;
- int xAdjust = X11_wmXAdjust;
- int yAdjust = X11_wmYAdjust;
-
- /* this code is tricky because some window managers, but not all,
- * will translate the final window position by a given offset
- * corresponding to the frame decoration.
- *
- * so we first try to move the window, get the position that the
- * window manager has set, and if they are different, re-position the
- * window again with an adjustment.
- *
- * this causes a slight flicker since the window 'jumps' very
- * quickly from one position to the other.
- */
-
- D("%s: move to [%d,%d] adjusted to [%d,%d]", __FUNCTION__,
- x, y, x+xAdjust, y+yAdjust);
- XMoveWindow(disp, win, x + xAdjust, y + yAdjust);
- XSync(disp, True);
- get_window_pos(disp, win, &xNew, &yNew);
- if (xNew != x || yNew != y) {
- X11_wmXAdjust = xAdjust = x - xNew;
- X11_wmYAdjust = yAdjust = y - yNew;
- D("%s: read pos [%d,%d], recomputing adjust=[%d,%d] moving to [%d,%d]\n",
- __FUNCTION__, xNew, yNew, xAdjust, yAdjust, x+xAdjust, y+yAdjust);
- XMoveWindow(disp, win, x + xAdjust, y + yAdjust );
- }
- XSync(disp, False);
-}
-
-
-NativeDisplayType X11Windowing::getNativeDisplay()
-{
- Display *dpy = XOpenDisplay(NULL);
- return (NativeDisplayType)dpy;
-}
-
-NativeWindowType X11Windowing::createNativeWindow(NativeDisplayType _dpy, int width, int height)
-{
- Display *dpy = (Display *) _dpy;
-
- long defaultScreen = DefaultScreen( dpy );
- Window rootWindow = RootWindow(dpy, defaultScreen);
- int depth = DefaultDepth(dpy, defaultScreen);
- XVisualInfo *visualInfo = new XVisualInfo;
-
- XMatchVisualInfo(dpy, defaultScreen, depth, TrueColor, visualInfo);
- if (visualInfo == NULL) {
- fprintf(stderr, "couldn't find matching visual\n");
- return NULL;
- }
-
- Colormap x11Colormap = XCreateColormap(dpy, rootWindow, visualInfo->visual, AllocNone);
- XSetWindowAttributes sWA;
- sWA.colormap = x11Colormap;
- sWA.event_mask = StructureNotifyMask | ExposureMask;
- sWA.background_pixel = 0;
- sWA.border_pixel = 0;
- unsigned int attributes_mask = CWBackPixel | CWBorderPixel | CWEventMask | CWColormap;
-
- Window win = XCreateWindow( dpy,
- rootWindow,
- X11_wmXPos, X11_wmYPos, width, height,
- 0, CopyFromParent, InputOutput,
- CopyFromParent, attributes_mask, &sWA);
-
- XMapWindow(dpy, win);
- XFlush(dpy);
- set_window_pos(dpy, win, X11_wmXPos, X11_wmYPos);
- return NativeWindowType(win);
-}
-
-int X11Windowing::destroyNativeWindow(NativeDisplayType _dpy, NativeWindowType _win)
-{
- Display *dpy = (Display *)_dpy;
- Window win = (Window)_win;
- get_window_pos(dpy, win, &X11_wmXPos, &X11_wmYPos);
- D("%s: Saved window position [%d, %d]\n", __FUNCTION__, X11_wmXPos, X11_wmYPos);
- XDestroyWindow(dpy, win);
- XFlush(dpy);
- return 0;
-}
diff --git a/emulator/opengl/tests/ut_renderer/X11Windowing.h b/emulator/opengl/tests/ut_renderer/X11Windowing.h
deleted file mode 100644
index 0f0c76b..0000000
--- a/emulator/opengl/tests/ut_renderer/X11Windowing.h
+++ /dev/null
@@ -1,27 +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.
-*/
-#ifndef _X11WINDOWING_H_
-#define _X11WINDOWING_H_
-
-#include "NativeWindowing.h"
-
-class X11Windowing : public NativeWindowing {
- NativeDisplayType getNativeDisplay();
- NativeWindowType createNativeWindow(NativeDisplayType _dpy, int width, int height);
- int destroyNativeWindow(NativeDisplayType dpy, NativeWindowType win);
-};
-
-#endif
diff --git a/emulator/opengl/tests/ut_renderer/ut_renderer.cpp b/emulator/opengl/tests/ut_renderer/ut_renderer.cpp
deleted file mode 100644
index f2b2bc3..0000000
--- a/emulator/opengl/tests/ut_renderer/ut_renderer.cpp
+++ /dev/null
@@ -1,63 +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.
-*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include "codec_defs.h"
-#include "RenderingThread.h"
-#include "TcpStream.h"
-#ifndef _WIN32
-#include "UnixStream.h"
-#endif
-
-
-int main(int argc, char **argv)
-{
-#ifdef _WIN32
- TcpStream *socket = new TcpStream();
-
- if (socket->listen(CODEC_SERVER_PORT) < 0) {
- perror("listen");
- exit(1);
- }
-#else
- UnixStream *socket = new UnixStream();
-
- if (socket->listen(CODEC_SERVER_PORT) < 0) {
- perror("listen");
- exit(1);
- }
-#endif
-
- printf("waiting for client connection on port: %d\n", CODEC_SERVER_PORT);
- while (1) {
- // wait for client connection
- SocketStream *glStream = socket->accept();
- if (glStream == NULL) {
- printf("failed to get client.. aborting\n");
- exit(3);
- }
- printf("Got client connection, creating a rendering thread;\n");
- // create a thread to handle this connection
- RenderingThread *rt = new RenderingThread(glStream);
- rt->start();
- }
-
- return 0;
-}
-
-