summaryrefslogtreecommitdiffstats
path: root/services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.h
diff options
context:
space:
mode:
authorJesse Hall <jessehall@google.com>2013-03-14 14:29:29 -0700
committerJesse Hall <jessehall@google.com>2013-03-18 14:21:16 -0700
commit99c7dbb24994df2f3e175f7b25dd2c9dd92a72f0 (patch)
treed49c7660b0e8de474c00f9b842830c3770af95ba /services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.h
parent4c00cc11141da7d159eb2323b186ed344115c0f1 (diff)
downloadframeworks_native-99c7dbb24994df2f3e175f7b25dd2c9dd92a72f0.zip
frameworks_native-99c7dbb24994df2f3e175f7b25dd2c9dd92a72f0.tar.gz
frameworks_native-99c7dbb24994df2f3e175f7b25dd2c9dd92a72f0.tar.bz2
Add DisplaySurface abstraction
DisplayDevice now has a DisplaySurface instead of using FramebufferSurface directly. FramebufferSurface implements DisplaySurface, and so does the new VirtualDisplaySurface class. DisplayDevice now always has a surface, not just for virtual displays. In this change VirtualDisplaySurface is just a stub; buffers still go directly from GLES to the final consumer. Bug: 8384764 Change-Id: I57cb668edbc6c37bfebda90b9222d435bf589f37
Diffstat (limited to 'services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.h')
-rw-r--r--services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.h b/services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.h
new file mode 100644
index 0000000..db886ed
--- /dev/null
+++ b/services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.h
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2013 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_SF_VIRTUAL_DISPLAY_SURFACE_H
+#define ANDROID_SF_VIRTUAL_DISPLAY_SURFACE_H
+
+#include <utils/String8.h>
+#include "DisplaySurface.h"
+
+// ---------------------------------------------------------------------------
+namespace android {
+// ---------------------------------------------------------------------------
+
+class HWComposer;
+
+class VirtualDisplaySurface : public DisplaySurface {
+public:
+ VirtualDisplaySurface(HWComposer& hwc, int disp,
+ const sp<IGraphicBufferProducer>& sink,
+ const String8& name);
+
+ virtual sp<IGraphicBufferProducer> getIGraphicBufferProducer() const;
+
+ virtual status_t compositionComplete();
+ virtual status_t advanceFrame();
+ virtual status_t setReleaseFenceFd(int fenceFd);
+ virtual void dump(String8& result) const;
+
+private:
+ virtual ~VirtualDisplaySurface();
+
+ // immutable after construction
+ HWComposer& mHwc;
+ int mDisplayId;
+ sp<IGraphicBufferProducer> mSink;
+ String8 mName;
+};
+
+// ---------------------------------------------------------------------------
+} // namespace android
+// ---------------------------------------------------------------------------
+
+#endif // ANDROID_SF_VIRTUAL_DISPLAY_SURFACE_H
+