update surfaceflinger, libui and libagl to the new gralloc api

- Currently the lock/unlock path is naive and is done for each drawing operation (glDrawElements and glDrawArrays). this should be improved eventually.
- factor all the lock/unlock code in SurfaceBuffer.
- fixed "showupdate" so it works even when we don't have preserving eglSwapBuffers().
- improved the situation with the dirty-region and fixed a problem that caused GL apps to not update.
- make use of LightRefBase() where needed, instead of duplicating its implementation
- add LightRefBase::getStrongCount()
- renamed EGLNativeWindowSurface.cpp to FramebufferNativeWindow.cpp

- disabled copybits test, since it clashes with the new gralloc api

- Camera/Video will be fixed later when we rework the overlay apis
diff --git a/libs/surfaceflinger/LayerBuffer.cpp b/libs/surfaceflinger/LayerBuffer.cpp
index 9339b87..8be91c9 100644
--- a/libs/surfaceflinger/LayerBuffer.cpp
+++ b/libs/surfaceflinger/LayerBuffer.cpp
@@ -380,37 +380,37 @@
 
 void LayerBuffer::BufferSource::onDraw(const Region& clip) const 
 {
-    sp<Buffer> buffer(getBuffer());
+    // FIXME: we should get a native buffer here 
+    /*
+    sp<Buffer> ourBbuffer(getBuffer());
     if (UNLIKELY(buffer == 0))  {
         // nothing to do, we don't have a buffer
         mLayer.clearWithOpenGL(clip);
         return;
     }
 
-    status_t err = NO_ERROR;
-    NativeBuffer src(buffer->getBuffer());
-    const Rect& transformedBounds = mLayer.getTransformedBounds();
-
     // FIXME: We should model this after the overlay stuff
-    
     if (UNLIKELY(mTextureName == -1LU)) {
         mTextureName = mLayer.createTexture();
     }
-    GLuint w = 0;
-    GLuint h = 0;
-    GGLSurface t;
-    t.version = sizeof(GGLSurface);
-    t.width  = src.crop.r;
-    t.height = src.crop.b;
-    t.stride = src.img.w;
-    t.vstride= src.img.h;
-    t.format = src.img.format;
-    t.data = (GGLubyte*)(intptr_t(src.img.base) + src.img.offset);
-    const Region dirty(Rect(t.width, t.height));
 
     // FIXME: Use EGLImage extension for this
-    mLayer.loadTexture(dirty, mTextureName, t, w, h);
-    mLayer.drawWithOpenGL(clip, mTextureName, t, mBufferHeap.transform);
+    
+    
+    
+    GGLSurface t;
+    status_t res = buffer->lock(&t, GRALLOC_USAGE_SW_READ_RARELY);
+    if (res == NO_ERROR) {
+        GLuint w = 0;
+        GLuint h = 0;
+        const Region dirty(Rect(buffer->width, buffer->height));
+        mLayer.loadTexture(dirty, mTextureName, t, w, h);
+        buffer->unlock();
+    }
+    if (res == NO_ERROR) {
+        mLayer.drawWithOpenGL(clip, mTextureName, buffer, mBufferHeap.transform);
+    }
+    */
 }