2416504_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2416504_ja-JP

2416504_ja-JP

i.MXRT1052に基づくPXP画面回転の問題

rt1052PXPを使って横向き表示を縦向き表示に回転させているのですが、ページを更新すると全体の表示が下方向にずれてしまいます。なぜこのようなことが起こるのでしょうか?

6c748ddab78cfa48c73261b73c48d335.jpg

86894d601e3681f3125f4b431dd8ea77.jpg

10b9f2639f1f4168404de7e021d1486b.jpg

 

static void DEMO_FlushDisplay(lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *color_p)
ヤージュ

lv_area_t dest_area =
ヤージュ
.x1= 0、
.x2= 480 - 1、
.y1= 0、
.y2= 800 - 1、
};

lv_gpu_nxp_pxp_blit(((lv_color_t *)s_inactiveFrameBuffer), area, 800, color_p, area,480, LV_OPA_COVER, LV_DISP_ROT_270);

DCACHE_CleanInvalidateByRange((uint32_t)color_p, DEMO_FB_SIZE);

ELCDIF_SetNextBufferAddr(LCDIF, (uint32_t)s_inactiveFrameBuffer);

s_framePending = true;if (xSemaphoreTake(s_frameSema, portMAX_DELAY) == pdTRUE)
ヤージュ
/* 重要!!!
* グラフィックライブラリに、フラッシュの準備ができたことを通知します */
lv_disp_flush_ready(disp_drv);
}
それ以外
ヤージュ
PRINTF("ディスプレイのフラッシュに失敗しました\r\n");
assert(0);
}

}

 

i.MXRT 105x回复: 基于i.MXRT1052的pxp屏幕旋转问题

こんにちは、 @dsd さん。

このLV_USE_GPU_NXP_PXP_AUTO_INITにより、LVGLはPXPユーザーを内部ウィジェットレンダリングに活用できますが、アプリケーションがこのPXPを並列で全画面回転に使う場合、問題を引き起こす可能性があります。しかし、それが問題の原因である可能性は低い。

初期のコードを見ると、dest_areaを使っていないか、PXPブリットのソースと宛先の両方にエリアを使っているように見えます。つまり、部分的な汚れた領域だけが意図された絶対位置ではなく、異なる絶対位置に配置されている可能性があります。


回复: 基于i.MXRT1052的pxp屏幕旋转问题PXPで描画する際にオフセットの問題が発生することに気づきました。これは、guiguiderによって生成されるデフォルトの初期化設定`#define LV_USE_GPU_NXP_PXP_AUTO_INIT 1`が直接使用できないためでしょうか?

void lv_disp_drv_init(lv_disp_drv_t * driver)
ヤージュ
lv_memset_00(driver, sizeof(lv_disp_drv_t));

driver->hor_res = 320;
driver->ver_res = 240;
driver->physical_hor_res = -1;
driver->physical_ver_res = -1;
driver->offset_x = 0;
driver->offset_y = 0;
driver->antialiasing = LV_COLOR_DEPTH > 8 ? 1 : 0;
driver->screen_transp = 0;
driver->dpi = LV_DPI_DEF;
driver->color_chroma_key = LV_COLOR_CHROMA_KEY;

#if LV_USE_GPU_NXP_PXP
// driver->draw_ctx_init = lv_draw_pxp_ctx_init;
// driver->draw_ctx_deinit = lv_draw_pxp_ctx_deinit;
// driver->draw_ctx_size = sizeof(lv_draw_pxp_ctx_t);
driver->draw_ctx_init = lv_draw_sw_init_ctx;
driver->draw_ctx_deinit = lv_draw_sw_init_ctx;
driver->draw_ctx_size = sizeof(lv_draw_sw_ctx_t);


#それ以外
driver->draw_ctx_init = lv_draw_sw_init_ctx;
driver->draw_ctx_deinit = lv_draw_sw_init_ctx;
driver->draw_ctx_size = sizeof(lv_draw_sw_ctx_t);
#endif

}
Tags (1)
No ratings
Version history
Last update:
12 hours ago
Updated by: