1 /** 2 * @file lv_pxp_utils.c 3 * 4 */ 5 6 /** 7 * Copyright 2023-2024 NXP 8 * 9 * SPDX-License-Identifier: MIT 10 */ 11 12 /********************* 13 * INCLUDES 14 *********************/ 15 16 #include "lv_pxp_utils.h" 17 18 #if LV_USE_PXP 19 #if LV_USE_DRAW_PXP || LV_USE_ROTATE_PXP 20 21 /********************* 22 * DEFINES 23 *********************/ 24 25 /********************** 26 * TYPEDEFS 27 **********************/ 28 29 /********************** 30 * STATIC PROTOTYPES 31 **********************/ 32 33 /********************** 34 * MACROS 35 **********************/ 36 37 /********************** 38 * GLOBAL FUNCTIONS 39 **********************/ 40 pxp_get_out_px_format(lv_color_format_t cf)41pxp_output_pixel_format_t pxp_get_out_px_format(lv_color_format_t cf) 42 { 43 pxp_output_pixel_format_t out_px_format = kPXP_OutputPixelFormatRGB565; 44 45 switch(cf) { 46 case LV_COLOR_FORMAT_RGB565: 47 out_px_format = kPXP_OutputPixelFormatRGB565; 48 break; 49 case LV_COLOR_FORMAT_RGB888: 50 out_px_format = kPXP_OutputPixelFormatRGB888P; 51 break; 52 case LV_COLOR_FORMAT_ARGB8888: 53 out_px_format = kPXP_OutputPixelFormatARGB8888; 54 break; 55 case LV_COLOR_FORMAT_XRGB8888: 56 out_px_format = kPXP_OutputPixelFormatRGB888; 57 break; 58 59 default: 60 PXP_ASSERT_MSG(false, "Unsupported color format."); 61 break; 62 } 63 64 return out_px_format; 65 } 66 pxp_get_as_px_format(lv_color_format_t cf)67pxp_as_pixel_format_t pxp_get_as_px_format(lv_color_format_t cf) 68 { 69 pxp_as_pixel_format_t as_px_format = kPXP_AsPixelFormatRGB565; 70 71 switch(cf) { 72 case LV_COLOR_FORMAT_RGB565: 73 as_px_format = kPXP_AsPixelFormatRGB565; 74 break; 75 case LV_COLOR_FORMAT_RGB888: 76 PXP_ASSERT_MSG(false, "Unsupported color format."); 77 break; 78 case LV_COLOR_FORMAT_ARGB8888: 79 as_px_format = kPXP_AsPixelFormatARGB8888; 80 break; 81 case LV_COLOR_FORMAT_XRGB8888: 82 as_px_format = kPXP_AsPixelFormatRGB888; 83 break; 84 85 default: 86 PXP_ASSERT_MSG(false, "Unsupported color format."); 87 break; 88 } 89 90 return as_px_format; 91 } 92 93 #if LV_USE_DRAW_PXP pxp_get_ps_px_format(lv_color_format_t cf)94pxp_ps_pixel_format_t pxp_get_ps_px_format(lv_color_format_t cf) 95 { 96 pxp_ps_pixel_format_t ps_px_format = kPXP_PsPixelFormatRGB565; 97 98 switch(cf) { 99 case LV_COLOR_FORMAT_RGB565: 100 ps_px_format = kPXP_PsPixelFormatRGB565; 101 break; 102 case LV_COLOR_FORMAT_RGB888: 103 PXP_ASSERT_MSG(false, "Unsupported color format."); 104 break; 105 case LV_COLOR_FORMAT_ARGB8888: 106 #if (!(defined(FSL_FEATURE_PXP_HAS_NO_EXTEND_PIXEL_FORMAT) && FSL_FEATURE_PXP_HAS_NO_EXTEND_PIXEL_FORMAT)) && \ 107 (!(defined(FSL_FEATURE_PXP_V3) && FSL_FEATURE_PXP_V3)) 108 ps_px_format = kPXP_PsPixelFormatARGB8888; 109 #else 110 PXP_ASSERT_MSG(false, "Unsupported color format."); 111 #endif 112 break; 113 case LV_COLOR_FORMAT_XRGB8888: 114 #if (!(defined(FSL_FEATURE_PXP_HAS_NO_EXTEND_PIXEL_FORMAT) && FSL_FEATURE_PXP_HAS_NO_EXTEND_PIXEL_FORMAT)) && \ 115 (!(defined(FSL_FEATURE_PXP_V3) && FSL_FEATURE_PXP_V3)) 116 ps_px_format = kPXP_PsPixelFormatARGB8888; 117 #else 118 ps_px_format = kPXP_PsPixelFormatRGB888; 119 #endif 120 break; 121 122 default: 123 PXP_ASSERT_MSG(false, "Unsupported color format."); 124 break; 125 } 126 127 return ps_px_format; 128 } 129 pxp_buf_aligned(const void * buf,uint32_t stride)130bool pxp_buf_aligned(const void * buf, uint32_t stride) 131 { 132 /* Test for pointer alignment */ 133 if((uintptr_t)buf % 64) 134 return false; 135 136 /* Test for invalid stride (no stride alignment required) */ 137 if(stride == 0) 138 return false; 139 140 return true; 141 } 142 143 /********************** 144 * STATIC FUNCTIONS 145 **********************/ 146 147 #endif /*LV_USE_DRAW_PXP*/ 148 #endif /*LV_USE_DRAW_PXP || LV_USE_ROTATE_PXP*/ 149 #endif /*LV_USE_PXP*/ 150