sdm: Add support to GL based WB.
-- Mark all layers to GPU.
-- Program FBT to GPU for CSC.
CRs-Fixed: 2547250
Change-Id: I707fc25ef590f158b4576c91c710706198d06f01
diff --git a/composer/gl_color_convert.h b/composer/gl_color_convert.h
new file mode 100644
index 0000000..2080a97
--- /dev/null
+++ b/composer/gl_color_convert.h
@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 2019, The Linux Foundation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of The Linux Foundation nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef __GL_COLOR_CONVERT_H__
+#define __GL_COLOR_CONVERT_H__
+
+#include <gralloc_priv.h>
+
+namespace sdm {
+
+enum GLRenderTarget {
+ kTargetRGBA,
+ kTargetYUV,
+};
+
+struct GLRect {
+ float left = 0.0f;
+ float top = 0.0f;
+ float right = 0.0f;
+ float bottom = 0.0f;
+};
+
+class GLColorConvert {
+ public:
+ static GLColorConvert* GetInstance(GLRenderTarget target, bool secure);
+ static void Destroy(GLColorConvert* intf);
+
+ virtual int Blit(const private_handle_t *src_hnd, const private_handle_t *dst_hnd,
+ const GLRect &src_rect, const GLRect &dst_rect, int src_acquire_fence_fd,
+ int dst_acquire_fence_fd, int *release_fence_fd) = 0;
+ protected:
+ virtual ~GLColorConvert() { }
+};
+
+} // namespace sdm
+
+#endif // __GL_COLOR_CONVERT_H__