Revert "drm_hwcomposer: remove GLCompositor and the GLWorker thread"

This reverts commit abebc7a78fe8a4df6495c8e5064719dc92b04004.

For now until we figure out a more stable solution for SF/hwc

Change-Id: I7a505fc67873f943704e8b48db4167b9beca7691
diff --git a/gl_compositor.h b/gl_compositor.h
new file mode 100644
index 0000000..450ca67
--- /dev/null
+++ b/gl_compositor.h
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2015 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.
+ */
+
+#include <stdint.h>
+#include <stdint.h>
+#include "compositor.h"
+
+struct hwc_layer_1;
+struct hwc_import_context;
+
+namespace android {
+
+class GLComposition;
+
+class GLCompositor : public Compositor, public Targeting {
+ public:
+  GLCompositor();
+  virtual ~GLCompositor();
+
+  virtual int Init();
+  virtual Targeting *targeting();
+  virtual int CreateTarget(sp<android::GraphicBuffer> &buffer);
+  virtual void SetTarget(int target);
+  virtual void ForgetTarget(int target);
+  virtual Composition *CreateComposition(Importer *importer);
+  virtual int QueueComposition(Composition *composition);
+  virtual int Composite();
+
+ private:
+  struct priv_data;
+  struct texture_from_handle;
+
+  struct priv_data *priv_;
+
+  int BeginContext();
+  int EndContext();
+  int GenerateShaders();
+  int DoComposition(GLComposition *composition);
+  int DoFenceWait(int acquireFenceFd);
+  int CreateTextureFromHandle(buffer_handle_t handle,
+                              struct texture_from_handle *tex);
+  void DestroyTextureFromHandle(const struct texture_from_handle &tex);
+  void CheckAndDestroyTarget(int target_handle);
+
+  friend GLComposition;
+};
+
+}  // namespace android