2週間前近くにLVGL v.9.0.0がリリースされました。メジャーバージョンが上がったことに伴い、機能追加だけでなくAPIの変更も生じているので、Nucleo-U575ZI版のDoomPlayerの対応作業を進めています。主要な変更はCHANGELOGに書かれていますが、わたしなりに気になった点を列挙しておきます。
- リリース直後は、ドキュメントの更新が追いついていない箇所が多い印象を受けましたが、日々改善されているようです。
- APIの変更では用語統一のために名前だけが変更されたものも数多くあります。旧バージョンとの互換性のためにlv_api_map.hというヘッダが用意されていますが、このファイルはlvgl.hからincludeされているので、気をつけないと新しい名前への変更を忘れてしまいます。
- 座標を表現する型lv_coord_tが廃止され、int32_tを使うようになりました。以前は、int16_tとint32_tのどちらを使うかlv_conf.hで選択することができました。chart widgetで点数の多いグラフを描画する場合には、使用するメモリが倍になるかもしれません。
- サポートするカラーフォーマットの名前と種類が変更されています。また、ビットマップイメージを表現する型lv_image_dsc_t (旧 lv_img_dsc_t)も変更されています。そのため、ビットマップ画像を埋め込んでいるアプリは、画像データの再変換作業が必要となります。
- 1ヶ月ほどのベータ期間がありましたが、まだバグは残っています。
- GPUサポートは、公式パートナーになってくれたベンダーのチップしかサポートしないという基本姿勢になりました。そのため、以前はSTM32のDMA2Dを使用するコードが含まれていましたが、v9.0.0ではDMA2Dは全くサポートされていません。DoomPlayerでは、ほとんど気になりませんが。。