summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>2011-12-27 18:55:11 +0059
committerBernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>2012-03-29 09:41:13 +0200
commitb57e38692beb08d8ad6e0af817e377b5bbd4175c (patch)
treeca10168a6d47f697c007182524a658ce8a81e9d6
parent909fa9a54bc4519aa12f85576c708dc97c04ef7e (diff)
downloadbase-b57e38692beb08d8ad6e0af817e377b5bbd4175c.tar.gz
frameworks/base: Unify branches
This adds the changes from the linaro_android_4.0.3_snowball branch, surrounded by ifdefs to prevent them from breaking other boards. This should obsolete the linaro_android_4.0.3_* branches. Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org> Change-Id: I9158b85b4790c8d85947878e1743789b01d4add7
-rw-r--r--opengl/libs/Android.mk4
-rw-r--r--opengl/libs/EGL/eglApi.cpp30
-rw-r--r--opengl/libs/EGL/egl_entries.in2
-rw-r--r--services/surfaceflinger/Android.mk4
-rw-r--r--services/surfaceflinger/SurfaceFlinger.cpp10
5 files changed, 50 insertions, 0 deletions
diff --git a/opengl/libs/Android.mk b/opengl/libs/Android.mk
index 9c1a10e21438..5399be678ef2 100644
--- a/opengl/libs/Android.mk
+++ b/opengl/libs/Android.mk
@@ -36,6 +36,10 @@ LOCAL_CFLAGS += -DGL_GLEXT_PROTOTYPES -DEGL_EGLEXT_PROTOTYPES
LOCAL_CFLAGS += -fvisibility=hidden
LOCAL_CFLAGS += -DEGL_TRACE=1
+ifeq ($(TARGET_BOARD_PLATFORM), snowball)
+LOCAL_CFLAGS += -DTARGET_BOARD_SNOWBALL=1
+endif
+
ifeq ($(TARGET_BOARD_PLATFORM),msm7k)
LOCAL_CFLAGS += -DADRENO130=1
endif
diff --git a/opengl/libs/EGL/eglApi.cpp b/opengl/libs/EGL/eglApi.cpp
index 2b0ed5dfd654..e5004e1e5033 100644
--- a/opengl/libs/EGL/eglApi.cpp
+++ b/opengl/libs/EGL/eglApi.cpp
@@ -51,6 +51,26 @@ using namespace android;
#define EGL_VERSION_HW_ANDROID 0x3143
+#ifdef TARGET_BOARD_SNOWBALL
+static char const * const sVendorString = "Android";
+static char const * const sVersionString = "1.4 Android META-EGL";
+static char const * const sClientApiString = "OpenGL ES";
+static char const * const sExtensionString =
+ "EGL_KHR_image "
+ "EGL_KHR_image_base "
+ "EGL_KHR_image_pixmap "
+ "EGL_KHR_gl_texture_2D_image "
+ "EGL_KHR_gl_texture_cubemap_image "
+ "EGL_KHR_gl_renderbuffer_image "
+ "EGL_KHR_fence_sync "
+ "EGL_ANDROID_image_native_buffer "
+ "EGL_ANDROID_swap_rectangle "
+#ifndef TARGET_BOARD_SNOWBALL
+ "EGL_NV_system_time "
+#endif
+ ;
+#endif
+
struct extention_map_t {
const char* name;
__eglMustCastToProperFunctionPointerType address;
@@ -65,10 +85,12 @@ static const extention_map_t sExtentionMap[] = {
(__eglMustCastToProperFunctionPointerType)&eglCreateImageKHR },
{ "eglDestroyImageKHR",
(__eglMustCastToProperFunctionPointerType)&eglDestroyImageKHR },
+#ifndef TARGET_BOARD_SNOWBALL
{ "eglGetSystemTimeFrequencyNV",
(__eglMustCastToProperFunctionPointerType)&eglGetSystemTimeFrequencyNV },
{ "eglGetSystemTimeNV",
(__eglMustCastToProperFunctionPointerType)&eglGetSystemTimeNV },
+#endif
};
// accesses protected by sExtensionMapMutex
@@ -971,6 +993,12 @@ const char* eglQueryString(EGLDisplay dpy, EGLint name)
case EGL_VERSION:
return dp->getVersionString();
case EGL_EXTENSIONS:
+#ifdef TARGET_BOARD_SNOWBALL
+ if (NULL != dp->disp[IMPL_HARDWARE].queryString.extensions)
+ return dp->disp[IMPL_HARDWARE].queryString.extensions;
+ else
+ return sExtensionString;
+#endif
return dp->getExtensionString();
case EGL_CLIENT_APIS:
return dp->getClientApiString();
@@ -1444,6 +1472,7 @@ EGLBoolean eglGetSyncAttribKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute
/* ANDROID extensions entry-point go here */
+#ifndef TARGET_BOARD_SNOWBALL
// ----------------------------------------------------------------------------
// NVIDIA extensions
// ----------------------------------------------------------------------------
@@ -1486,3 +1515,4 @@ EGLuint64NV eglGetSystemTimeNV()
return setErrorQuiet(EGL_BAD_DISPLAY, 0);
}
+#endif
diff --git a/opengl/libs/EGL/egl_entries.in b/opengl/libs/EGL/egl_entries.in
index bdd2a7eec552..9ebdecf8fd21 100644
--- a/opengl/libs/EGL/egl_entries.in
+++ b/opengl/libs/EGL/egl_entries.in
@@ -63,7 +63,9 @@ EGL_ENTRY(EGLBoolean, eglGetSyncAttribKHR, EGLDisplay, EGLSyncKHR, EGLint,
EGL_ENTRY(EGLBoolean, eglSetSwapRectangleANDROID, EGLDisplay, EGLSurface, EGLint, EGLint, EGLint, EGLint)
EGL_ENTRY(EGLClientBuffer, eglGetRenderBufferANDROID, EGLDisplay, EGLSurface)
+#ifndef TARGET_BOARD_SNOWBALL
/* NVIDIA extensions */
EGL_ENTRY(EGLuint64NV, eglGetSystemTimeFrequencyNV, void)
EGL_ENTRY(EGLuint64NV, eglGetSystemTimeNV, void)
+#endif
diff --git a/services/surfaceflinger/Android.mk b/services/surfaceflinger/Android.mk
index f63c0c12c22c..7a7a57936794 100644
--- a/services/surfaceflinger/Android.mk
+++ b/services/surfaceflinger/Android.mk
@@ -20,6 +20,10 @@ LOCAL_SRC_FILES:= \
LOCAL_CFLAGS:= -DLOG_TAG=\"SurfaceFlinger\"
LOCAL_CFLAGS += -DGL_GLEXT_PROTOTYPES -DEGL_EGLEXT_PROTOTYPES
+ifeq ($(TARGET_BOARD_PLATFORM), snowball)
+LOCAL_CFLAGS += -DTARGET_BOARD_SNOWBALL=1
+endif
+
ifeq ($(TARGET_BOARD_PLATFORM), omap3)
LOCAL_CFLAGS += -DNO_RGBX_8888
endif
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index 24bd2a63ed61..0da75c4cacc6 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -1778,14 +1778,24 @@ status_t SurfaceFlinger::renderScreenToTextureLocked(DisplayID dpy,
GLuint name, tname;
glGenTextures(1, &tname);
glBindTexture(GL_TEXTURE_2D, tname);
+#ifdef TARGET_BOARD_SNOWBALL
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB,
+ hw_w, hw_h, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);
+#else
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB,
hw_w, hw_h, 0, GL_RGB, GL_UNSIGNED_BYTE, 0);
+#endif
if (glGetError() != GL_NO_ERROR) {
while ( glGetError() != GL_NO_ERROR ) ;
GLint tw = (2 << (31 - clz(hw_w)));
GLint th = (2 << (31 - clz(hw_h)));
+#ifdef TARGET_BOARD_SNOWBALL
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB,
+ tw, th, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);
+#else
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB,
tw, th, 0, GL_RGB, GL_UNSIGNED_BYTE, 0);
+#endif
u = GLfloat(hw_w) / tw;
v = GLfloat(hw_h) / th;
}