summaryrefslogtreecommitdiffstats
path: root/include/ui/Surface.h
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2009-03-03 18:28:45 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2009-03-03 18:28:45 -0800
commitd83a98f4ce9cfa908f5c54bbd70f03eec07e7553 (patch)
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904 /include/ui/Surface.h
parent076357b8567458d4b6dfdcf839ef751634cd2bfb (diff)
downloadframeworks_base-d83a98f4ce9cfa908f5c54bbd70f03eec07e7553.zip
frameworks_base-d83a98f4ce9cfa908f5c54bbd70f03eec07e7553.tar.gz
frameworks_base-d83a98f4ce9cfa908f5c54bbd70f03eec07e7553.tar.bz2
auto import from //depot/cupcake/@135843
Diffstat (limited to 'include/ui/Surface.h')
-rw-r--r--include/ui/Surface.h137
1 files changed, 0 insertions, 137 deletions
diff --git a/include/ui/Surface.h b/include/ui/Surface.h
deleted file mode 100644
index 33953a9..0000000
--- a/include/ui/Surface.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ANDROID_UI_SURFACE_H
-#define ANDROID_UI_SURFACE_H
-
-#include <stdint.h>
-#include <sys/types.h>
-
-#include <utils/RefBase.h>
-#include <utils/threads.h>
-
-#include <ui/ISurface.h>
-#include <ui/PixelFormat.h>
-#include <ui/Region.h>
-#include <ui/ISurfaceFlingerClient.h>
-
-namespace android {
-
-// ---------------------------------------------------------------------------
-
-class Rect;
-class SurfaceComposerClient;
-
-class Surface : public RefBase
-{
-
-public:
- struct SurfaceInfo {
- uint32_t w;
- uint32_t h;
- uint32_t bpr;
- PixelFormat format;
- void* bits;
- void* base;
- uint32_t reserved[2];
- };
-
- bool isValid() const { return this && mToken>=0 && mClient!=0; }
- SurfaceID ID() const { return mToken; }
-
- status_t lock(SurfaceInfo* info, bool blocking = true);
- status_t lock(SurfaceInfo* info, Region* dirty, bool blocking = true);
- status_t unlockAndPost();
- status_t unlock();
-
- void* heapBase(int i) const;
- uint32_t getFlags() const { return mFlags; }
-
- // setSwapRectangle() is mainly used by EGL
- void setSwapRectangle(const Rect& r);
- const Rect& swapRectangle() const;
- status_t nextBuffer(SurfaceInfo* info);
-
- sp<Surface> dup() const;
- static sp<Surface> readFromParcel(Parcel* parcel);
- static status_t writeToParcel(const sp<Surface>& surface, Parcel* parcel);
- static bool isSameSurface(const sp<Surface>& lhs, const sp<Surface>& rhs);
-
- status_t setLayer(int32_t layer);
- status_t setPosition(int32_t x, int32_t y);
- status_t setSize(uint32_t w, uint32_t h);
- status_t hide();
- status_t show(int32_t layer = -1);
- status_t freeze();
- status_t unfreeze();
- status_t setFlags(uint32_t flags, uint32_t mask);
- status_t setTransparentRegionHint(const Region& transparent);
- status_t setAlpha(float alpha=1.0f);
- status_t setMatrix(float dsdx, float dtdx, float dsdy, float dtdy);
- status_t setFreezeTint(uint32_t tint);
-
- uint32_t getIdentity() const { return mIdentity; }
-private:
- friend class SurfaceComposerClient;
-
- // camera and camcorder need access to the ISurface binder interface for preview
- friend class Camera;
- friend class MediaRecorder;
- // mediaplayer needs access to ISurface for display
- friend class MediaPlayer;
- friend class Test;
- const sp<ISurface>& getISurface() const { return mSurface; }
-
- // can't be copied
- Surface& operator = (Surface& rhs);
- Surface(const Surface& rhs);
-
- Surface(const sp<SurfaceComposerClient>& client,
- const sp<ISurface>& surface,
- const ISurfaceFlingerClient::surface_data_t& data,
- uint32_t w, uint32_t h, PixelFormat format, uint32_t flags,
- bool owner = true);
-
- Surface(Surface const* rhs);
-
- ~Surface();
-
- Region dirtyRegion() const;
- void setDirtyRegion(const Region& region) const;
-
- // this locks protects calls to lockSurface() / unlockSurface()
- // and is called by SurfaceComposerClient.
- Mutex& getLock() const { return mSurfaceLock; }
-
- sp<SurfaceComposerClient> mClient;
- sp<ISurface> mSurface;
- sp<IMemoryHeap> mHeap[2];
- SurfaceID mToken;
- uint32_t mIdentity;
- PixelFormat mFormat;
- uint32_t mFlags;
- const bool mOwner;
- mutable void* mSurfaceHeapBase[2];
- mutable Region mDirtyRegion;
- mutable Rect mSwapRectangle;
- mutable uint8_t mBackbufferIndex;
- mutable Mutex mSurfaceLock;
-};
-
-}; // namespace android
-
-#endif // ANDROID_UI_SURFACE_H
-