surfaceflinger: Add support for extension lib

 * Supports changed z fod order
 * Supports changed fod usage bits

TheScarastic: Adapt to extension lib

Co-authored-by: TheScarastic <warabhishek@gmail.com>
Change-Id: Id95aa73e06b4223a6b4f05c69fa2fc494f9a97b1
diff --git a/services/surfaceflinger/BufferQueueLayer.cpp b/services/surfaceflinger/BufferQueueLayer.cpp
index f35a4fd..062f927 100644
--- a/services/surfaceflinger/BufferQueueLayer.cpp
+++ b/services/surfaceflinger/BufferQueueLayer.cpp
@@ -18,6 +18,7 @@
 #define LOG_TAG "BufferQueueLayer"
 #define ATRACE_TAG ATRACE_TAG_GRAPHICS
 #include <compositionengine/Display.h>
+#include <compositionengine/FodExtension.h>
 #include <compositionengine/Layer.h>
 #include <compositionengine/OutputLayer.h>
 #include <compositionengine/impl/LayerCompositionState.h>
@@ -560,11 +561,19 @@
         return BAD_VALUE;
     }
 
+    uint32_t usageBits = 0;
+
+    if (mName == FOD_LAYER_NAME) {
+        usageBits = getFodUsageBits(usageBits, false);
+    } else if (mName == FOD_TOUCHED_LAYER_NAME) {
+        usageBits = getFodUsageBits(usageBits, true);
+    }
+
     mFormat = format;
 
     setDefaultBufferSize(w, h);
     mConsumer->setDefaultBufferFormat(format);
-    mConsumer->setConsumerUsageBits(getEffectiveUsage(0));
+    mConsumer->setConsumerUsageBits(getEffectiveUsage(usageBits));
 
     return NO_ERROR;
 }