Merge change 26891 into eclair
* changes: Make tritex test run with latest OpenGL driver.
This commit is contained in:
@@ -2,7 +2,7 @@ LOCAL_PATH:= $(call my-dir)
|
|||||||
include $(CLEAR_VARS)
|
include $(CLEAR_VARS)
|
||||||
|
|
||||||
LOCAL_SRC_FILES:= \
|
LOCAL_SRC_FILES:= \
|
||||||
tritex.c
|
tritex.cpp
|
||||||
|
|
||||||
LOCAL_SHARED_LIBRARIES := \
|
LOCAL_SHARED_LIBRARIES := \
|
||||||
libcutils \
|
libcutils \
|
||||||
|
|||||||
@@ -6,10 +6,16 @@
|
|||||||
|
|
||||||
#include <EGL/egl.h>
|
#include <EGL/egl.h>
|
||||||
#include <GLES/gl.h>
|
#include <GLES/gl.h>
|
||||||
|
#include <GLES/glext.h>
|
||||||
|
|
||||||
|
#include <ui/FramebufferNativeWindow.h>
|
||||||
|
#include <ui/EGLUtils.h>
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
|
using namespace android;
|
||||||
|
|
||||||
EGLDisplay eglDisplay;
|
EGLDisplay eglDisplay;
|
||||||
EGLSurface eglSurface;
|
EGLSurface eglSurface;
|
||||||
@@ -117,6 +123,7 @@ int init_gl_surface(void)
|
|||||||
EGLConfig myConfig = {0};
|
EGLConfig myConfig = {0};
|
||||||
EGLint attrib[] =
|
EGLint attrib[] =
|
||||||
{
|
{
|
||||||
|
EGL_SURFACE_TYPE, EGL_PBUFFER_BIT|EGL_WINDOW_BIT,
|
||||||
EGL_DEPTH_SIZE, 16,
|
EGL_DEPTH_SIZE, 16,
|
||||||
EGL_NONE
|
EGL_NONE
|
||||||
};
|
};
|
||||||
@@ -132,15 +139,12 @@ int init_gl_surface(void)
|
|||||||
printf("eglInitialize failed\n");
|
printf("eglInitialize failed\n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( eglChooseConfig(eglDisplay, attrib, &myConfig, 1, &numConfigs) != EGL_TRUE )
|
EGLNativeWindowType window = android_createDisplaySurface();
|
||||||
{
|
EGLUtils::selectConfigForNativeWindow(eglDisplay, attrib, window, &myConfig);
|
||||||
printf("eglChooseConfig failed\n");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( (eglSurface = eglCreateWindowSurface(eglDisplay, myConfig,
|
if ( (eglSurface = eglCreateWindowSurface(eglDisplay, myConfig,
|
||||||
android_createDisplaySurface(), 0)) == EGL_NO_SURFACE )
|
window, 0)) == EGL_NO_SURFACE )
|
||||||
{
|
{
|
||||||
printf("eglCreateWindowSurface failed\n");
|
printf("eglCreateWindowSurface failed\n");
|
||||||
return 0;
|
return 0;
|
||||||
@@ -239,12 +243,12 @@ void render(int quads)
|
|||||||
0, FIXED_ONE
|
0, FIXED_ONE
|
||||||
};
|
};
|
||||||
|
|
||||||
const GLushort template[] = { 0, 1, 2, 0, 2, 3 };
|
const GLushort quadIndices[] = { 0, 1, 2, 0, 2, 3 };
|
||||||
|
|
||||||
|
|
||||||
GLushort* indices = (GLushort*)malloc(quads*sizeof(template));
|
GLushort* indices = (GLushort*)malloc(quads*sizeof(quadIndices));
|
||||||
for (i=0 ; i<quads ; i++)
|
for (i=0 ; i<quads ; i++)
|
||||||
memcpy(indices+(sizeof(template)/sizeof(indices[0]))*i, template, sizeof(template));
|
memcpy(indices+(sizeof(quadIndices)/sizeof(indices[0]))*i, quadIndices, sizeof(quadIndices));
|
||||||
|
|
||||||
glVertexPointer(3, GL_FLOAT, 0, vertices);
|
glVertexPointer(3, GL_FLOAT, 0, vertices);
|
||||||
glTexCoordPointer(2, GL_FIXED, 0, texCoords);
|
glTexCoordPointer(2, GL_FIXED, 0, texCoords);
|
||||||
@@ -262,7 +266,7 @@ void render(int quads)
|
|||||||
for (j=0 ; j<10 ; j++) {
|
for (j=0 ; j<10 ; j++) {
|
||||||
printf("loop %d / 10 (%d quads / loop)\n", j, quads);
|
printf("loop %d / 10 (%d quads / loop)\n", j, quads);
|
||||||
|
|
||||||
int nelem = sizeof(template)/sizeof(template[0]);
|
int nelem = sizeof(quadIndices)/sizeof(quadIndices[0]);
|
||||||
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);
|
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);
|
||||||
glDrawElements(GL_TRIANGLES, nelem*quads, GL_UNSIGNED_SHORT, indices);
|
glDrawElements(GL_TRIANGLES, nelem*quads, GL_UNSIGNED_SHORT, indices);
|
||||||
eglSwapBuffers(eglDisplay, eglSurface);
|
eglSwapBuffers(eglDisplay, eglSurface);
|
||||||
Reference in New Issue
Block a user