Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a59da09d authored by Ethan Yonker's avatar Ethan Yonker Committed by Dees Troy
Browse files

Add qcom overlay graphics support to minui

graphics_overlay.cpp is based on a mix of AOSP code for
graphics_fbdev.cpp along with overlay graphics code from CAF that
was brought into earlier versions of TWRP and then further adapted
and improved before being brought into this patch set.

Also added a rule to build a minuitest binary for testing the
minui engine to ensure proper operation on a device.

Change-Id: I3972d3a6baa7002615319421ac07d9299c3cec69
parent e96182e0
Loading
Loading
Loading
Loading
+17 −2
Original line number Diff line number Diff line
@@ -4,10 +4,12 @@ include $(CLEAR_VARS)
LOCAL_SRC_FILES := \
    events.cpp \
    graphics.cpp \
    graphics_adf.cpp \
    graphics_drm.cpp \
    graphics_fbdev.cpp \
    resources.cpp \
    graphics_overlay.cpp

LOCAL_C_INCLUDES := external/libcxx/include external/libpng

ifeq ($(TW_TARGET_USES_QCOM_BSP), true)
  LOCAL_CFLAGS += -DMSM_BSP
@@ -23,13 +25,16 @@ ifeq ($(TW_TARGET_USES_QCOM_BSP), true)
  endif
else
  LOCAL_C_INCLUDES += $(commands_recovery_local_path)/minui/include
  # The header files required for adf graphics can cause compile errors
  # with adf graphics.
  LOCAL_SRC_FILES += graphics_adf.cpp
  LOCAL_WHOLE_STATIC_LIBRARIES += libadf
endif

ifeq ($(TW_NEW_ION_HEAP), true)
  LOCAL_CFLAGS += -DNEW_ION_HEAP
endif

LOCAL_WHOLE_STATIC_LIBRARIES += libadf
LOCAL_WHOLE_STATIC_LIBRARIES += libdrm
LOCAL_STATIC_LIBRARIES += libpng

@@ -77,3 +82,13 @@ LOCAL_MODULE := libminui
LOCAL_WHOLE_STATIC_LIBRARIES += libminui
LOCAL_SHARED_LIBRARIES := libpng
include $(BUILD_SHARED_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := minuitest
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT_SBIN)
LOCAL_SRC_FILES := main.cpp
LOCAL_STATIC_LIBRARIES := libbinder libminui libpng libz libutils libstdc++ libcutils liblog libm libc
LOCAL_C_INCLUDES := external/libcxx/include external/libpng
LOCAL_FORCE_STATIC_EXECUTABLE := true
include $(BUILD_EXECUTABLE)
+22 −2
Original line number Diff line number Diff line
@@ -470,18 +470,37 @@ void gr_flip() {
int gr_init(void)
{
    gr_init_font();
    gr_draw = NULL;

    gr_backend = open_overlay();
    if (gr_backend) {
        gr_draw = gr_backend->init(gr_backend);
        if (!gr_draw) {
            gr_backend->exit(gr_backend);
        } else
            printf("Using overlay graphics.\n");
    }

#ifndef MSM_BSP
    if (!gr_draw) {
        gr_backend = open_adf();
        if (gr_backend) {
            gr_draw = gr_backend->init(gr_backend);
            if (!gr_draw) {
                gr_backend->exit(gr_backend);
            } else
                printf("Using adf graphics.\n");
        }
    }
#else
	printf("Skipping adf graphics because TW_TARGET_USES_QCOM_BSP := true\n");
#endif

    if (!gr_draw) {
        gr_backend = open_drm();
        gr_draw = gr_backend->init(gr_backend);
        if (gr_draw)
            printf("Using drm graphics.\n");
    }

    if (!gr_draw) {
@@ -489,7 +508,8 @@ int gr_init(void)
        gr_draw = gr_backend->init(gr_backend);
        if (gr_draw == NULL) {
            return -1;
        }
        } else
            printf("Using fbdev graphics.\n");
    }

    overscan_offset_x = gr_draw->width * overscan_percent / 100;
+1 −0
Original line number Diff line number Diff line
@@ -39,5 +39,6 @@ struct minui_backend {
minui_backend* open_fbdev();
minui_backend* open_adf();
minui_backend* open_drm();
minui_backend* open_overlay();

#endif
+692 −0

File added.

Preview size limit exceeded, changes collapsed.

minui/main.cpp

0 → 100644
+113 −0

File added.

Preview size limit exceeded, changes collapsed.