BootAnimation.h revision bc7261130a51dc9f3461d3970eee1b923bcbf193
12580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi/* 22580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi * Copyright (C) 2007 The Android Open Source Project 32580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi * 42580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi * Licensed under the Apache License, Version 2.0 (the "License"); 52580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi * you may not use this file except in compliance with the License. 62580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi * You may obtain a copy of the License at 72580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi * 82580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi * http://www.apache.org/licenses/LICENSE-2.0 92580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi * 102580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi * Unless required by applicable law or agreed to in writing, software 112580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi * distributed under the License is distributed on an "AS IS" BASIS, 122580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 132580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi * See the License for the specific language governing permissions and 142580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi * limitations under the License. 152580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi */ 162580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi 17e19b1ac57c116c8592d64a83b1f1484a5b1898edJorim Jaggi#ifndef ANDROID_BOOTANIMATION_H 182580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi#define ANDROID_BOOTANIMATION_H 192580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi 202580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi#include <stdint.h> 212580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi#include <sys/types.h> 222580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi 232580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi#include <utils/threads.h> 242580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi#include <utils/AssetManager.h> 252580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi 262580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi#include <ui/ISurfaceComposer.h> 272580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi#include <ui/SurfaceComposerClient.h> 282580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi 292580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi#include <EGL/egl.h> 302580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi#include <GLES/gl.h> 312580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi 322580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggiclass SkBitmap; 332580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi 342580a976ec93a01ed00fae51364ad872bc591d95Jorim Jagginamespace android { 352580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi 362580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggiclass AssetManager; 372580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi 382580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi// --------------------------------------------------------------------------- 392580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi 402580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggiclass BootAnimation : public Thread, public IBinder::DeathRecipient 412580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi{ 422580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggipublic: 432580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi BootAnimation(); 442580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi virtual ~BootAnimation(); 452580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi 462580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi sp<SurfaceComposerClient> session() const; 472580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi 482580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggiprivate: 492580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi virtual bool threadLoop(); 502580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi virtual status_t readyToRun(); 512580a976ec93a01ed00fae51364ad872bc591d95Jorim Jaggi virtual void onFirstRef(); 52 virtual void binderDied(const wp<IBinder>& who); 53 54 struct Texture { 55 GLint w; 56 GLint h; 57 GLuint name; 58 }; 59 60 status_t initTexture(Texture* texture, AssetManager& asset, const char* name); 61 bool android(); 62 63 sp<SurfaceComposerClient> mSession; 64 AssetManager mAssets; 65 Texture mAndroid[2]; 66 int mWidth; 67 int mHeight; 68 EGLDisplay mDisplay; 69 EGLDisplay mContext; 70 EGLDisplay mSurface; 71 sp<SurfaceControl> mFlingerSurfaceControl; 72 sp<Surface> mFlingerSurface; 73}; 74 75// --------------------------------------------------------------------------- 76 77}; // namespace android 78 79#endif // ANDROID_BOOTANIMATION_H 80