#!/system/bin/sh

# // Array
NAME="Celestial-Renderer | Kzyo"
VERSION="None"
ANDROIDVERSION=$(getprop ro.build.version.release)
DATE="14 March 2024"
DEVICES=$(getprop ro.product.board)
MANUFACTURER=$(getprop ro.product.manufacturer)
API=$(getprop ro.build.version.sdk)
RENDER=$(getprop debug.hwui.renderer)

# // set debug
set_debug_prop() {
    setprop debug.$1 "$2"
}

# // Flash Repeat
repeat() {
    su -c "$1"
}

# // menu renderer type
renderer_Type() {
 while true; do
    clear
    echo -e ""
	echo -e "[ ! ] Use enter for main menu\n"
	echo -e "- Menu For Rendering Type : "
	echo -e "1. OpenGL\n  OpenGL [ Open Graphics Library ] is a cross-language, cross-platform\n  application programming interface [ API ] for rendering 2D and 3D\n  vector graphics.\n2. SkiaGL\n  Skia Graphics Engine or SkiaGL is a 2D graphics library\n3. Vulkan\n  Vulkan is a low-overhead, cross-platform graphics API, open\n  standard for 3D graphics and 3D computing.\n4. SkiaVK\n  Skia Graphics Engine or SkiaVK is a 2D graphics library\n"
	echo -n "Select the Number : "
   
     opengl() {
        set_debug_prop "renderengine.backend" openglthreaded
        set_debug_prop "hwui.renderer" opengl
     }
     skiavk() {
        set_debug_prop "renderengine.backend" skiavkthreaded
        set_debug_prop "hwui.renderer" skiavk
     }
     skiagl() {
        set_debug_prop "renderengine.backend" skiaglthreaded
        set_debug_prop "hwui.renderer" skiagl
        setprop "renderthread.skia.reduceopstasksplitting" true
     }
     vulkan() {
        set_debug_prop "renderengine.backend" skiavkthreaded
        set_debug_prop "hwui.renderer" vulkan
     }
  read selected_prompt
	clear
	
  case $selected_prompt in
    1) opengl;;
	2) skiagl;;
	3) vulkan;;
	4) skiavk;;
    esac
		clear && break
        repeat "renderer"
	done

}

# // menu donate
donate() {
 while true; do
    clear
    echo -e ""
    echo -e "[ ! ] Use enter for main menu\n"
	echo -e "1. Go To Donate\n"
	echo -n "Select the Number : "
   
     donate() {
        am start -a android.intent.action.VIEW -d https://sociabuzz.com/dikyganteng_/tribe
     }
  read selected_prompt
	clear
	
  case $selected_prompt in
    1) donate;;
    esac
		clear && break
        repeat "renderer"
	done

}

# // menu choice or main menu
celestial_Tweak () {
    while true; do
          clear
      echo -e "\e[38;2;255;228;225m"
      sleep 0.2
      echo -e "░█▀▀█ ── ░█▀▀█ ░█▀▀▀ ░█▄─░█ ░█▀▀▄ ░█▀▀▀ ░█▀▀█ 
░█─── ▀▀ ░█▄▄▀ ░█▀▀▀ ░█░█░█ ░█─░█ ░█▀▀▀ ░█▄▄▀ 
░█▄▄█ ── ░█─░█ ░█▄▄▄ ░█──▀█ ░█▄▄▀ ░█▄▄▄ ░█─░█\n"
      echo -e "       Simple Script For Renderer\n"
      sleep 0.2
      echo -e "***************************************"
      echo -e "• Name            : ${NAME}"
      echo -e "• Version         : ${VERSION}"
      echo -e "• Android Version : ${ANDROIDVERSION}"
      echo -e "• Build Date      : ${DATE}"
      echo -e "***************************************"
      echo -e "• Devices         : ${DEVICES}"
      echo -e "• Manufacturer    : ${MANUFACTURER}"
      echo -e "***************************************\n"
      sleep 0.2
      echo -e "- Preparing Existing Tweak Features..\n"
      sleep 2
	  echo -e "[ - ] Celestial Renderer 🍃"
      echo -e "1.Rendering Type         : [${RENDER}]"
      echo -e "2.Donate"
      echo -e "3.Exit\n"
      sleep 0.3
      echo -n " -> Select the number : "
  
  read selected_prompt
	clear
	
  case $selected_prompt in
    1) renderer_Type;;
    2) donate;;
	3) clear && break ;;
		esac
        repeat "renderer"
		clear && break
	done
}

case $1 in
"-s");;
*) celestial_Tweak;;
esac

# // Sync to data in the rare case a device crashes
sync

                      # bye bye......
                # thanks all contributors...