666 lines
40 KiB
C
666 lines
40 KiB
C
#include "typedef.h"
|
||
#include "rect.h"
|
||
#include "res/resfile.h"
|
||
|
||
#include "dbi.h"
|
||
#include "jlgpu_math.h" // matrix
|
||
#include "jlgpu_driver.h" // gpu driver
|
||
#include "ui_resource.h" // JL UI resource
|
||
#include "ui_expand/ui_expand.h" // macro defined
|
||
|
||
#include "gpu_port.h" // module head file
|
||
#include "gpu_draw.h" // custom draw head file
|
||
|
||
#include "ui_core.h"
|
||
#include "ui_measure.h"
|
||
|
||
#include "ui/lcd/lcd_drive.h"
|
||
#include "res/mem_var.h"
|
||
#include "football.h"
|
||
|
||
#include "gpu_demo.h"
|
||
|
||
#if defined GPU_DEMO_RES_ENABLE && GPU_DEMO_RES_ENABLE
|
||
|
||
struct gpu_port_demo_priv {
|
||
struct lcd_interface *lcd;
|
||
struct lcd_info info;
|
||
|
||
pJLGPUTaskHead_t gpu_task_head;
|
||
uint8_t *buf1;
|
||
uint8_t *buf2;
|
||
/* uint8_t cur_buf; */
|
||
};
|
||
|
||
static struct gpu_port_demo_priv priv = {0};
|
||
|
||
#define __this (&priv)
|
||
|
||
struct img_info_jl {
|
||
//图片基本参数
|
||
int left;
|
||
int top;
|
||
|
||
char *path; //资源文件的路径
|
||
u32 image_id;
|
||
|
||
//旋转参数
|
||
u8 rotate_en; //旋转使能
|
||
short rotate_cx; //图片旋转中心(相对于图片的坐标,不是相对于屏幕)
|
||
short rotate_cy;
|
||
short rotate_dx; //旋转后图片中心点的坐标(相对于屏幕)
|
||
short rotate_dy;
|
||
float rotate_angle; //旋转的角度
|
||
|
||
//缩放参数
|
||
u8 scale_en;
|
||
float ratio_w; //图片宽的缩放倍数
|
||
float ratio_h; //图片高的缩放倍数
|
||
};
|
||
|
||
#define PAGE0_c186_MENU_29SET 0x000001 // images\menu_29set.png
|
||
|
||
typedef enum {
|
||
IMAGE_FROM_RAM = 0,
|
||
IMAGE_FROM_FLASH,
|
||
} IMAGE_FROM;
|
||
|
||
static void *gpu_port_demo_malloc(int size, u32 ram_type, u32 module_type)
|
||
{
|
||
void *buf = (void *)malloc(size);
|
||
|
||
return buf;
|
||
}
|
||
|
||
static void gpu_port_demo_free(void *buf, u32 ram_type, u32 module_type)
|
||
{
|
||
free(buf);
|
||
}
|
||
|
||
static void gpu_port_demo_lcd_init(void)
|
||
{
|
||
__this->lcd = lcd_get_hdl();
|
||
ASSERT(__this->lcd);
|
||
ASSERT(__this->lcd->init);
|
||
ASSERT(__this->lcd->get_screen_info);
|
||
ASSERT(__this->lcd->buffer_malloc);
|
||
ASSERT(__this->lcd->buffer_free);
|
||
ASSERT(__this->lcd->draw);
|
||
ASSERT(__this->lcd->set_draw_area);
|
||
ASSERT(__this->lcd->backlight_ctrl);
|
||
|
||
if (__this->lcd->init) {
|
||
extern const struct ui_devices_cfg ui_cfg_data;
|
||
__this->lcd->init((void *)&ui_cfg_data);
|
||
}
|
||
|
||
if (__this->lcd->get_screen_info) {
|
||
__this->lcd->get_screen_info(&__this->info);
|
||
}
|
||
|
||
if (__this->lcd->clear_screen) {
|
||
__this->lcd->clear_screen(0x000000, 0, __this->info.width - 1, 0, __this->info.height - 1);
|
||
}
|
||
|
||
|
||
if (__this->lcd->backlight_ctrl) {
|
||
__this->lcd->backlight_ctrl(100);
|
||
}
|
||
|
||
mem_var_init(3 * 1024, false);
|
||
ui_resfile_info_init(gpu_port_demo_malloc, gpu_port_demo_free); // UI 资源管理
|
||
}
|
||
|
||
//初始化gpu_port模块接口
|
||
static void gpu_port_demo_port_init(void)
|
||
{
|
||
jlgpu_module_init(gpu_port_demo_malloc, gpu_port_demo_free, __this->info.width, __this->info.height);
|
||
}
|
||
|
||
void gpu_port_demo_task_init(int gpu_out_format)
|
||
{
|
||
//创建任务链
|
||
__this->gpu_task_head = jlgpu_create_task_list_head();
|
||
if (!__this->gpu_task_head) {
|
||
printf("<gpu_port_demo> gpu create task list head fail!!! ");
|
||
return;
|
||
}
|
||
|
||
//设置任务链输出的格式
|
||
jlgpu_set_task_list_out_format(__this->gpu_task_head, gpu_out_format);
|
||
|
||
}
|
||
|
||
void gpu_port_demo_task_free(void)
|
||
{
|
||
if (__this->gpu_task_head) {
|
||
//删除任务链
|
||
jlgpu_delete_task_list_head(__this->gpu_task_head);
|
||
__this->gpu_task_head = NULL;
|
||
}
|
||
}
|
||
|
||
static u8 icon_48x49_rgb565[4704] ALIGNED(4) = {//format:r5g3 g3b5
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0x20, 0x60, 0x28, 0x81,
|
||
0x28, 0x81, 0x20, 0x60, 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x08, 0x00, 0x40, 0xE1, 0x81, 0xC3, 0xB2, 0x65, 0xDA, 0xE6, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xDA, 0xE6, 0xB2, 0x65, 0x81, 0xC3, 0x40, 0xE1, 0x08, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xA1, 0x9A, 0x04,
|
||
0xE3, 0x06, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xE3, 0x06,
|
||
0x9A, 0x04, 0x30, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xC1, 0xB2, 0x64, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xB2, 0x64, 0x38, 0xC1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x10, 0x40, 0xA2, 0x04, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xA2, 0x04, 0x10, 0x40, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x40, 0xE1, 0xDA, 0xE6, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xDA, 0xE6, 0x40, 0xE1, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x79, 0x83, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0x79, 0x83,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0xE3,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0x91, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0xE3, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0x89, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x83, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0x71, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xC1, 0xEB, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0xCA, 0xF3, 0xEA, 0xF3, 0xEA, 0xF3, 0xEA, 0xF3, 0xEA,
|
||
0xF3, 0xEA, 0xF3, 0xEA, 0xF3, 0xEA, 0xF3, 0xEA, 0xF3, 0x67, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xEB, 0x26, 0x40, 0xC1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0xDA, 0xC5, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xFE, 0x77, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBE, 0xF3, 0xC9, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xDA, 0xC5, 0x08, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0xE3, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF4, 0xEF, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0x91, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x28, 0x81, 0xEB, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x67, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF5, 0x31, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xEB, 0x26, 0x28, 0x81, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0xA2, 0x24, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0xA9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0x72, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xA2, 0x24, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x18, 0x60, 0xEB, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0xEA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFA, 0xFE, 0x15, 0xFD, 0xB3,
|
||
0xFD, 0xD4, 0xFE, 0x98, 0xFF, 0xBE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xB4, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xEB, 0x26, 0x20, 0x60, 0x00, 0x00,
|
||
0x00, 0x00, 0x79, 0x83, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF4, 0x4C, 0xFF, 0xFF, 0xFE, 0x15, 0xF4, 0x4C, 0xF5, 0x31, 0xFE, 0x36, 0xFE, 0x98,
|
||
0xFE, 0x77, 0xFD, 0xB3, 0xF4, 0x8D, 0xF5, 0x10, 0xFF, 0x9D, 0xFE, 0x15, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0x79, 0xA3, 0x00, 0x00,
|
||
0x00, 0x00, 0xCA, 0xA5, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0xC9, 0xF4, 0x6C, 0xF3, 0x68, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0xA9, 0xF4, 0xAE, 0xFE, 0x36, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3B, 0xF4, 0xCF, 0xF4, 0x4C, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0xEA, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xCA, 0xA5, 0x00, 0x00,
|
||
0x20, 0x80, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xFD, 0xF4, 0xFF, 0x3B, 0xF5, 0x10, 0xF3, 0x47, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF4, 0x0B, 0xFF, 0x7D, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0x92, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF4, 0xAE, 0xFF, 0xFF, 0xFD, 0xB3,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0x20, 0x80,
|
||
0x61, 0x42, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xFD, 0xB4, 0xFF, 0x9E, 0xFF, 0x5C, 0xF4, 0xCF, 0xF3, 0x47, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0xC9, 0xFF, 0x9D, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF5, 0x51, 0xF4, 0x0B,
|
||
0xF4, 0x2B, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF4, 0x4C, 0xFF, 0xDE, 0xFF, 0xFF, 0xFD, 0x92,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0x61, 0x42,
|
||
0x91, 0xE4, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0xA9, 0xFD, 0xF5, 0xFF, 0xDF, 0xFF, 0x3B, 0xF4, 0x8E, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xFE, 0xB9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xB3,
|
||
0xFE, 0xFA, 0xF3, 0x26, 0xF3, 0x26, 0xF4, 0x0B, 0xFF, 0xBE, 0xFF, 0xFF, 0xFD, 0xF5, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0x91, 0xE4,
|
||
0xBA, 0x64, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x68, 0xFD, 0x72, 0xFF, 0xBE, 0xFF, 0x7C, 0xF5, 0x10, 0xF3, 0x26, 0xF3, 0x26, 0xF4, 0x6D,
|
||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFA,
|
||
0xF5, 0x10, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x77,
|
||
0xF3, 0xA9, 0xF3, 0x26, 0xF3, 0x26, 0xF4, 0xCF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF5, 0x10, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xBA, 0x64,
|
||
0xD2, 0xC5, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF5, 0x31, 0xFF, 0x5C, 0xFF, 0x9D, 0xF5, 0x51, 0xF3, 0x88, 0xF3, 0x26, 0xF3, 0x26, 0xFE, 0x36,
|
||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFA, 0xF3, 0x68,
|
||
0xF3, 0xCA, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||
0xF3, 0x68, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF5, 0x31, 0xFF, 0xFF, 0xFF, 0xDF, 0xF4, 0x8D,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xD2, 0xC5,
|
||
0xE3, 0x06, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xFE, 0x98, 0xFF, 0xFF, 0xFF, 0x5C, 0xF4, 0x2B, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xFF, 0x5C,
|
||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFA, 0xF3, 0x68, 0xF3, 0xCA,
|
||
0xFF, 0x7D, 0xFF, 0xFF, 0xFE, 0x98, 0xFF, 0xBE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||
0xF4, 0x8D, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x68, 0xFF, 0x9D, 0xFF, 0xFF, 0xFE, 0xB9,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xE3, 0x06,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF4, 0x6C, 0xFE, 0xD9, 0xFF, 0xDE, 0xFE, 0x57, 0xF3, 0xEA, 0xF3, 0x26, 0xF3, 0x26, 0xFF, 0xFF,
|
||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFA, 0xF3, 0x68, 0xF3, 0xCA, 0xFF, 0x7D,
|
||
0xFF, 0xFF, 0xFD, 0x72, 0xF3, 0x26, 0xFE, 0x57, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||
0xF5, 0x10, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x47, 0xFE, 0xB9, 0xFF, 0xFF, 0xFF, 0x5C, 0xF3, 0x88,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xEB, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x47, 0xF5, 0x10, 0xFF, 0xBE, 0xFF, 0x9D, 0xFD, 0x51, 0xF3, 0x26, 0xF3, 0x26, 0xFF, 0xFF,
|
||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0x88, 0xF3, 0xCA, 0xFF, 0x7C, 0xFF, 0xFF,
|
||
0xFD, 0x72, 0xF3, 0x26, 0xF5, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||
0xF5, 0x10, 0xF3, 0x26, 0xF3, 0x26, 0xFD, 0x51, 0xFF, 0xFF, 0xFF, 0xFF, 0xF4, 0x4C, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xEB, 0x26,
|
||
0xE2, 0xE6, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF4, 0x6C, 0xFE, 0xD9, 0xFF, 0xDE, 0xFE, 0x57, 0xF3, 0xEA, 0xF3, 0x26, 0xF3, 0x26, 0xFF, 0x5C,
|
||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x98, 0xFF, 0x7D, 0xFF, 0xFF, 0xFD, 0x72,
|
||
0xF3, 0x26, 0xF5, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||
0xF4, 0x8D, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x47, 0xFE, 0xD9, 0xFF, 0xFF, 0xFF, 0x5C, 0xF3, 0x88,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xE2, 0xE6,
|
||
0xCA, 0xA5, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xFE, 0x98, 0xFF, 0xFF, 0xFF, 0x5C, 0xF4, 0x2B, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xFE, 0x56,
|
||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xD4, 0xF3, 0x26,
|
||
0xF5, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||
0xF3, 0x88, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x68, 0xFF, 0x9D, 0xFF, 0xFF, 0xFE, 0xB9,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xCA, 0xA5,
|
||
0xAA, 0x44, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF5, 0x31, 0xFF, 0x5C, 0xFF, 0x9D, 0xF5, 0x51, 0xF3, 0x88, 0xF3, 0x26, 0xF3, 0x26, 0xF4, 0x8D,
|
||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x16, 0xFD, 0x72,
|
||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x78,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF5, 0x31, 0xFF, 0xFF, 0xFF, 0xDF, 0xF4, 0x8D,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xAA, 0x24,
|
||
0x81, 0xA3, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x68, 0xFD, 0x72, 0xFF, 0xBE, 0xFF, 0x7C, 0xF5, 0x10, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xFE, 0xD9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF5, 0x10,
|
||
0xFE, 0x98, 0xF3, 0x26, 0xF3, 0x26, 0xF4, 0xCF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF5, 0x10, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0x81, 0xA3,
|
||
0x49, 0x02, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0xA9, 0xFD, 0xF5, 0xFF, 0xDF, 0xFF, 0x3B, 0xF4, 0x8E, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0xC9, 0xFF, 0x9D, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0x72, 0xF4, 0xCF,
|
||
0xF5, 0x10, 0xF3, 0x26, 0xF3, 0x26, 0xF4, 0x0B, 0xFF, 0xBE, 0xFF, 0xFF, 0xFD, 0xF5, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0x49, 0x02,
|
||
0x08, 0x20, 0xEB, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xFD, 0xB4, 0xFF, 0x9E, 0xFF, 0x5C, 0xF4, 0xCF, 0xF3, 0x47, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF4, 0x2B, 0xFF, 0x9D, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xB3, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF4, 0x4C, 0xFF, 0xDE, 0xFF, 0xFF, 0xFD, 0x92,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xEB, 0x26, 0x08, 0x20,
|
||
0x00, 0x00, 0xB2, 0x44, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xFD, 0xF4, 0xFF, 0x3B, 0xF5, 0x10, 0xF3, 0x47, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0xA9, 0xF4, 0xCF, 0xFE, 0x57, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x5C, 0xF4, 0xF0, 0xF4, 0x6D, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF4, 0xAE, 0xFF, 0xFF, 0xFD, 0xB3,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xB2, 0x44, 0x00, 0x00,
|
||
0x00, 0x00, 0x59, 0x22, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0xC9, 0xF4, 0x6C, 0xF3, 0x68, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF4, 0x4C, 0xFF, 0xFF, 0xFE, 0x15, 0xF4, 0x6D, 0xFD, 0x72, 0xFE, 0x57, 0xFE, 0xB9,
|
||
0xFE, 0x98, 0xFD, 0xD4, 0xF4, 0xAE, 0xF5, 0x31, 0xFF, 0x9D, 0xFE, 0x15, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0xEA, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0x59, 0x22, 0x00, 0x00,
|
||
0x00, 0x00, 0x08, 0x00, 0xDA, 0xE6, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0xEA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1A, 0xFE, 0x15, 0xFD, 0xB3,
|
||
0xFD, 0xD4, 0xFE, 0x98, 0xFF, 0xBE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xB4, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xDA, 0xE6, 0x08, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x71, 0x83, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0xA9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0x72, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0x71, 0x83, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0xDA, 0xE6, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x67, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF5, 0x31, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xDA, 0xE6, 0x08, 0x20, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x22, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF4, 0xEF, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0x59, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0x44, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xFE, 0x77, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9D, 0xF3, 0xA9, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xAA, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x20, 0xD2, 0xC5, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0xC9, 0xF3, 0xCA, 0xF3, 0xCA, 0xF3, 0xCA, 0xF3, 0xCA,
|
||
0xF3, 0xCA, 0xF3, 0xCA, 0xF3, 0xCA, 0xF3, 0xCA, 0xF3, 0x67, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xD2, 0xC5, 0x10, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xA1, 0xE3, 0x06, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xE3, 0x06, 0x30, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xE1, 0xEB, 0x06,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xEB, 0x06, 0x40, 0xC1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xC1,
|
||
0xE3, 0x06, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xE2, 0xE6,
|
||
0x38, 0xC1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x28, 0x81, 0xCA, 0xA5, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xCA, 0xA5, 0x28, 0x81,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x08, 0x20, 0x9A, 0x04, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0x9A, 0x04, 0x08, 0x20, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0xE2, 0xCA, 0xA5, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xCA, 0xA5, 0x48, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x42, 0xCA, 0xA5, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xCA, 0xA5, 0x59, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xC1,
|
||
0x91, 0xE4, 0xDA, 0xE6, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26,
|
||
0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xF3, 0x26, 0xDA, 0xE6, 0x91, 0xE4,
|
||
0x38, 0xC1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x28, 0x81, 0x59, 0x22, 0x81, 0xA3, 0xA2, 0x24, 0xBA, 0x65, 0xC2, 0x85,
|
||
0xC2, 0x85, 0xBA, 0x65, 0xA2, 0x24, 0x81, 0xA3, 0x59, 0x22, 0x28, 0x81, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||
};
|
||
|
||
//创建绘制背景颜色任务
|
||
static void gpu_port_demo_create_bg_task(struct rect draw_rect, u32 color)
|
||
{
|
||
u8 a = (color >> 24) & 0xff;
|
||
u8 r = (color >> 16) & 0xff;
|
||
u8 g = (color >> 8) & 0xff;
|
||
u8 b = (color) & 0xff;
|
||
|
||
//创建gpu绘制任务
|
||
jlgpu_task_fill_param_init(0, 0, a, r, g, b);
|
||
memcpy(&task_param.draw, &draw_rect, sizeof(struct rect));
|
||
jlgpu_get_win_rect(&task_param.area); // 限制区域是整个GPU窗口区域
|
||
|
||
printf("<%s>----param->head:0x%p\n", __func__, __this->gpu_task_head);
|
||
|
||
jlgpu_create_task(__this->gpu_task_head, &task_param);
|
||
}
|
||
|
||
//创建绘制图片的任务
|
||
static void gpu_port_demo_create_jlimg_task(struct img_info_jl *imgjl)
|
||
{
|
||
//打开资源文件
|
||
UI_RESFILE *fp = res_fopen(imgjl->path, "r");
|
||
if (!fp) {
|
||
printf("%s fp is null", __func__);
|
||
ASSERT(0);
|
||
}
|
||
//获取文件的flash table
|
||
struct flash_file_info file_info;
|
||
ui_res_flash_info_get(&file_info, imgjl->path, "res", true);
|
||
jlgpu_task_texture_param_init(0, 0);
|
||
//获取图片信息
|
||
int err = jlui_res_get_image_info(0, (imgjl->image_id & 0xffff), fp, &task_param.image, &task_param.info);
|
||
if (err) {
|
||
ASSERT(0);
|
||
}
|
||
printf("<%s>--------format:%d, offset:0x%x\n", __func__, task_param.image.format, task_param.image.offset);
|
||
|
||
if ((task_param.image.format == PIXEL_FMT_AL88)
|
||
|| (task_param.image.format == PIXEL_FMT_AL44)
|
||
|| (task_param.image.format == PIXEL_FMT_AL22)
|
||
|| (task_param.image.format == PIXEL_FMT_L8)
|
||
|| (task_param.image.format == PIXEL_FMT_L4)
|
||
|| (task_param.image.format == PIXEL_FMT_L2)
|
||
|| (task_param.image.format == PIXEL_FMT_L1)
|
||
|| (task_param.image.format == PIXEL_FMT_A8)
|
||
|| (task_param.image.format == PIXEL_FMT_A4)
|
||
|| (task_param.image.format == PIXEL_FMT_A2)
|
||
|| (task_param.image.format == PIXEL_FMT_A1)
|
||
) {
|
||
int tab_size = get_clut_format_tabsize(task_param.image.format, task_param.image.clut_format);
|
||
task_param.image.offset += tab_size;
|
||
task_param.image.len -= tab_size;
|
||
}
|
||
ui_res_get_image_flash_info(&task_param.info, &file_info, &task_param.image);
|
||
|
||
printf("<%s>--------format:%d, offset:0x%x\n", __func__, task_param.image.format, task_param.info.offset);
|
||
|
||
printf("<%s>--------size:%d * %d\n", __func__, task_param.image.width, task_param.image.height);
|
||
|
||
task_param.draw.width = task_param.image.width;
|
||
task_param.draw.height = task_param.image.height;
|
||
task_param.draw.left = imgjl->left;
|
||
task_param.draw.top = imgjl->top;
|
||
jlgpu_get_win_rect(&task_param.area); // 限制区域是整个GPU窗口区域
|
||
|
||
if (task_param.image.format == PIXEL_FMT_JPEG) {
|
||
//暂未处理
|
||
} else {
|
||
task_param.format = res_format_to_gpu(task_param.image.format);
|
||
task_param.task_type = GPU_TASK_IMAGE;
|
||
}
|
||
|
||
task_param.clut_format = task_param.image.clut_format;
|
||
task_param.has_clut = task_param.image.has_clut;
|
||
task_param.texture.data = (u8 *)task_param.info.offset;
|
||
task_param.texture.mmu_tab_base = (u8 *)task_param.info.tab;
|
||
|
||
printf("<%s>--------format:%d, offset:0x%08x\n", __func__, task_param.image.format, (u32)task_param.texture.data);
|
||
//配置图片旋转参数
|
||
if (imgjl->rotate_en) {
|
||
task_param.rotate_en = 1;
|
||
task_param.texture.tran.rotate_cx = imgjl->rotate_cx; //图片旋转中心(这里的坐标是相对于图片而不是相对于屏幕)
|
||
task_param.texture.tran.rotate_cy = imgjl->rotate_cy;
|
||
task_param.texture.tran.rotate_dx = imgjl->rotate_dx; //旋转之后中心点的坐标
|
||
task_param.texture.tran.rotate_dy = imgjl->rotate_dy;
|
||
task_param.texture.tran.rotate_angle = imgjl->rotate_angle;
|
||
}
|
||
|
||
//配置图片缩放参数
|
||
if (imgjl->scale_en) {
|
||
task_param.scale_en = 1;
|
||
task_param.texture.tran.ratio_w = imgjl->ratio_w; //宽的缩放倍数
|
||
task_param.texture.tran.ratio_h = imgjl->ratio_h; //高的缩放倍数
|
||
}
|
||
|
||
jlgpu_create_task(__this->gpu_task_head, &task_param);
|
||
|
||
if (fp) {
|
||
res_fclose(fp);
|
||
}
|
||
}
|
||
|
||
void gpu_port_demo_draw_jlimage(struct img_info_jl *imgjl, u32 background)
|
||
{
|
||
//输出配置
|
||
int width = __this->info.width;
|
||
int height = __this->info.height;
|
||
int out_format = GPU_FORMAT_RGB565;
|
||
int out_bpp = gpu_get_format_bpp(out_format) / 8;
|
||
int out_stride = width * out_bpp;
|
||
int block_height = 16; //分块输出到屏幕上,每块的大小(width * block_height)
|
||
|
||
//申请输出的缓存空间
|
||
__this->buf1 = (uint8_t *)zalloc(block_height * out_stride);
|
||
__this->buf2 = (uint8_t *)zalloc((height % block_height) * out_stride);
|
||
|
||
struct rect draw_task_rect = {0};
|
||
//创建绘制背景颜色的任务
|
||
if (background) {
|
||
draw_task_rect.left = 0;
|
||
draw_task_rect.top = 0;
|
||
draw_task_rect.width = __this->info.width;
|
||
draw_task_rect.height = __this->info.height;
|
||
gpu_port_demo_create_bg_task(draw_task_rect, background);
|
||
}
|
||
|
||
//创建绘制图片的任务
|
||
gpu_port_demo_create_jlimg_task(imgjl);
|
||
|
||
//设置输出buf并且显示到屏幕上
|
||
int block_num = 0;
|
||
block_num = (height % block_height) ? (height / block_height + 1) : (height / block_height);
|
||
//设置推屏区域
|
||
lcd_set_draw_area(0, width - 1, 0, height - 1);
|
||
|
||
struct rect draw_rect = {0};
|
||
int draw_height;
|
||
for (int i = 0; i < block_num; i++) {
|
||
if ((i + 1) * block_height < height) {
|
||
draw_height = block_height;
|
||
} else {
|
||
draw_height = height - (i * block_height);
|
||
}
|
||
|
||
draw_rect.left = 0;
|
||
draw_rect.top = i * block_height;
|
||
draw_rect.width = width;
|
||
draw_rect.height = draw_height;
|
||
|
||
memset(__this->buf1, 0, draw_rect.width * draw_rect.height * 2);
|
||
|
||
jlgpu_set_task_list_out_buf(__this->gpu_task_head, __this->buf1, &draw_rect, 0, 0);
|
||
jlgpu_task_list_run(__this->gpu_task_head);
|
||
/* jlgpu_dump_task_head(__this->gpu_task_head); */
|
||
|
||
|
||
if (!i) {
|
||
/* 开始推屏时使用 kistart */
|
||
lcd_draw_kistart(__this->buf1, draw_rect.left, draw_rect.left + draw_rect.width - 1, draw_rect.top, draw_rect.top + draw_rect.height - 1);
|
||
lcd_wait_busy();
|
||
} else {
|
||
/* 之后推屏时使用 continue 续传 */
|
||
lcd_draw_continue(__this->buf1, draw_rect.left, draw_rect.left + draw_rect.width - 1, draw_rect.top, draw_rect.top + draw_rect.height - 1);
|
||
lcd_wait_busy();
|
||
}
|
||
}
|
||
|
||
lcd_wait_busy();
|
||
//将申请的内存进行释放
|
||
/* if(img->clut_tab){ */
|
||
/* free(img->clut_tab); */
|
||
/* img->clut_tab = NULL; */
|
||
/* } */
|
||
if (__this->buf1) {
|
||
free(__this->buf1);
|
||
__this->buf1 = NULL;
|
||
}
|
||
if (__this->buf2) {
|
||
free(__this->buf2);
|
||
__this->buf2 = NULL;
|
||
}
|
||
}
|
||
|
||
void gpu_demo_res(void *p)
|
||
{
|
||
gpu_port_demo_lcd_init(); //初始化lcd
|
||
gpu_port_demo_port_init(); //初始化gpu_port接口
|
||
struct img_info_jl img_jl = {0};
|
||
|
||
img_jl.left = 0;
|
||
img_jl.top = 0;
|
||
img_jl.path = "storage/virfat_flash/C/ui/ui.res";
|
||
img_jl.image_id = PAGE0_c186_MENU_29SET;
|
||
img_jl.rotate_en = 1;
|
||
img_jl.rotate_cx = 18; //图片旋转中心(这里的坐标是相对于图片而不是相对于屏幕)
|
||
img_jl.rotate_cy = 18;
|
||
img_jl.rotate_dx = 118; //旋转之后中心点的坐标
|
||
img_jl.rotate_dy = 118;
|
||
img_jl.rotate_angle = 30;
|
||
img_jl.scale_en = 1;
|
||
img_jl.ratio_w = 2;
|
||
img_jl.ratio_h = 2;
|
||
|
||
gpu_port_demo_task_init(GPU_FORMAT_RGB565);
|
||
gpu_port_demo_draw_jlimage(&img_jl, 0xff00ff00);
|
||
gpu_port_demo_task_free(); //任务链用完之后删除任务链,同时创建的任务也会清除
|
||
|
||
while (1) {
|
||
os_time_dly(100);
|
||
}
|
||
}
|
||
|
||
|
||
int gpu_demo_res_task(void)
|
||
{
|
||
printf(">>>>>>>>> %s()", __func__);
|
||
int err;
|
||
err = os_task_create(gpu_demo_res, NULL, 10, 1024 * 5, 512, "gpu_demo_res");
|
||
if (err != OS_NO_ERR) {
|
||
printf("gpu task creat fail %x\n", err);
|
||
}
|
||
return 0;
|
||
}
|
||
|
||
#endif
|