| |   |
| 131 | 131 | |
| 132 | 132 | // create the native surface |
| 133 | 133 | sp<Surface> s = session()->createSurface(getpid(), 0, dinfo.w, dinfo.h, |
| PIXEL_FORMAT_RGB_565); |
| PIXEL_FORMAT_RGB_565, ISurfaceComposer::eGPU); |
| 135 | 135 | session()->openTransaction(); |
| 136 | 136 | s->setLayer(0x40000000); |
| 137 | 137 | session()->closeTransaction(); |
| … | … | |
| 167 | 167 | glEnable(GL_TEXTURE_2D); |
| 168 | 168 | glTexEnvx(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); |
| 169 | 169 | |
| glViewport(0, 0, mWidth, mHeight); |
| glOrthof(0.0f, (GLfloat) mWidth, 0.0f, (GLfloat) mHeight, -1.0f, 1.0f); |
|
| 170 | 173 | return NO_ERROR; |
| 171 | 174 | } |
| 172 | 175 | |
| … | … | |
| 178 | 178 | Thread::requestExit(); |
| 179 | 179 | } |
| 180 | 180 | |
| static void DrawTex(GLfloat x, GLfloat y, GLfloat z, GLfloat w, GLfloat h) |
| { |
| const GLfloat texs[4][2] = { |
| { 0.0f, 0.0f }, |
| { 1.0f, 0.0f }, |
| { 1.0f, 1.0f }, |
| { 0.0f, 1.0f }, |
| }; |
| GLfloat verts[4][3]; |
|
| verts[0][0] = x; |
| verts[0][1] = y; |
| verts[0][2] = z; |
| verts[1][0] = x + w; |
| verts[1][1] = y; |
| verts[1][2] = z; |
| verts[2][0] = x + w; |
| verts[2][1] = y + h; |
| verts[2][2] = z; |
| verts[3][0] = x; |
| verts[3][1] = y + h; |
| verts[3][2] = z; |
|
| glVertexPointer(3, GL_FLOAT, 0, verts); |
| glTexCoordPointer(2, GL_FLOAT, 0, texs); |
| glEnableClientState(GL_VERTEX_ARRAY); |
| glEnableClientState(GL_TEXTURE_COORD_ARRAY); |
|
| glDrawArrays(GL_TRIANGLE_FAN, 0, 4); |
|
| glDisableClientState(GL_VERTEX_ARRAY); |
| glDisableClientState(GL_TEXTURE_COORD_ARRAY); |
| } |
|
| 181 | 215 | bool BootAnimation::threadLoop() { |
| 182 | 216 | bool r = android(); |
| 183 | 217 | eglMakeCurrent(mDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); |
| … | … | |
| 257 | 257 | |
| 258 | 258 | glDisable(GL_BLEND); |
| 259 | 259 | glBindTexture(GL_TEXTURE_2D, mAndroid[1].name); |
| glDrawTexiOES(x, yc, 0, mAndroid[1].w, mAndroid[1].h); |
| glDrawTexiOES(x + mAndroid[1].w, yc, 0, mAndroid[1].w, mAndroid[1].h); |
| DrawTex(x, yc, 0, mAndroid[1].w, mAndroid[1].h); |
| DrawTex(x + mAndroid[1].w, yc, 0, mAndroid[1].w, mAndroid[1].h); |
| 262 | 262 | |
| 263 | 263 | glEnable(GL_BLEND); |
| 264 | 264 | glBindTexture(GL_TEXTURE_2D, mAndroid[0].name); |
| glDrawTexiOES(xc, yc, 0, mAndroid[0].w, mAndroid[0].h); |
| DrawTex(xc, yc, 0, mAndroid[0].w, mAndroid[0].h); |
| 266 | 266 | |
| 267 | 267 | eglSwapBuffers(mDisplay, mSurface); |
| 268 | 268 | |