このページでは

C

バージョン1.9の新機能

Qt Quick Ultraliteは、マイナーリリース間のソース互換性を維持しています。ただし、一部の変更により、アプリケーションコードを適宜修正する必要がある場合があります。以下のセクションでは、そのような変更点について説明します:

重要な変更点

  • 以下の関数が非推奨となりました:
    • Qul::PlatformInterface::DrawingDevice::pixelAt()
    • Qul::PlatformInterface::Texture::dataAtOffset()
    • Qul::PlatformInterface::DrawingDevice::bytesPerPixel()
    • Qul::PlatformInterface::Texture::bytesPerPixel()
    • Qul::Image::bytesPerPixel()

新機能

  • ホストとターゲット間の通信を改善するため、サードパーティ製ライブラリ「nanopb」を用いたprotobufのサポートを追加しました。
  • 組み込みシステム向けのサードパーティ製printf 実装を追加しました。
  • plugin.qmltypes ファイルを追加し、QtQuickUltralite.Extras モジュールへのQt Creator サポートを追加しました。
  • Monotype Spark のヒープ/キャッシュバッファを設定するための CMake ターゲットプロパティ QUL_MONOTYPE_SPARK_HEAP_NO_PREALLOC および QUL_MONOTYPE_SPARK_HEAP_SIZE を追加しました。
  • Qt.font() API でのプロパティバインディングのサポートを追加しました。
  • メモリ割り当てのサイズを制御できるメモリ割り当て API を追加しました。
  • カスタムハードウェアアクセラレーションまたはソフトウェアレンダラーを使用した QML アイテムのレンダリングをサポートするために、PaintedItem およびQul::PaintedItemDelegate API を追加しました。
  • Screen::defaultApplicationSize API を追加し、ルートアイテムにサイズが設定されていない場合、プラットフォームがアプリケーションウィンドウのサイズを上書きできるようにしました。
  • ARM GCC バージョン 9 にアップグレードしました。
  • Qul::PixelFormat_Alpha1 ピクセル形式のサポートを追加しました。
  • bitsPerPixel() が 8 未満の場合のピクセルデータを扱うために、PixelDataPointer 構造体を追加しました。この構造体は、Qul::PlatformInterface::DrawingDevice::pixelDataAt() およびQul::PlatformInterface::Texture::pixelData() で使用されます。
  • Text およびStaticText アイテムが、欠落したグリフをより適切に処理できるようになりました。これらは、欠落したグリフの代わりにプレースホルダーグリフ(ボックス)をレンダリングします。
  • グリフのレンダリング品質を制御するための QUL_DEFAULT_FONT_QUALITY CMake ターゲットプロパティとfont.quality QML API を追加しました。

    注: 自動グリフ生成が無効になっている場合は、font.unicodeCoverage プロパティを設定する必要があります

  • painteditem のサンプル、カメラのサンプル、およびSwipe ゲームのデモを追加しました。
  • Infineon/Cypress Traveo II ボードのサポートを追加しました。
  • Linux 開発ホストのサポートを追加しました。
  • CMake の最小バージョンを v3.17.3 にアップグレードしました。
  • カスタムキューの実装を可能にするため、MessageQueue API を追加しました。

不具合の修正

  • Text アイテムの水平方向の配置に関する問題を修正するため、テキストの配置計算をリファクタリングしました。
  • MIMXRT1170の画面サイズに対応するため、チャート例のヒープサイズを修正しました。
  • NXP ボード用SDKをバージョン2.9.1にアップグレードしました。
  • RA6M3G における Thermo デモのアニメーションの問題を、フェードアニメーションを無効化することで修正しました。
  • EK-RA6M3G における PixelFormat_RGB32 のブレンドを修正しました。
  • qulrcc をリファクタリングし、Indexed8 画像で RGB332 フォーマットを使用しないようにしました。
  • EK-RA6M3G において、std::rand() の代わりにstd::minstd_rand() を使用するように変更しました。
  • Watchデモを更新し、UTC時刻を取得するために新しいtime_t 関数を使用するようにしました。
  • STM32F7508-Discovery向けにFont_bindingsサンプルを最適化しました。
  • C++に関連する一般的なリンカーの問題を検出するためのサニティチェックを追加しました。
  • EK-RA6M3G プラットフォームの移植版を更新し、サポートされていないピクセル形式に対して fallbackDrawingEngine を使用するようにしました。
  • Qul::PlatformInterface::log() を使用するように、bare metal サンプルを更新しました。
  • STM32 向けのプラットフォーム適応を更新し、出力/ロギングをサポートしました。
  • MIMXRT1050、MIMXRT1060、および MIMXRT1064 に対して Platform::qul_printf() のサポートを追加しました。
  • RH850 向けに Platform::consoleWrite() を実装しました。
  • EK-RA6M3G、MIMXRT1170、および MIMXRT595 のプラットフォーム適応を更新し、PlatformInterface::log() をサポートしました。
  • プラットフォームで、printfqul_printf に置き換えました。
  • レイヤーの例において、背景レイヤーの不透明度を削除しました。
  • vglitesupport を更新し、負のベクトル座標をサポートしました。
  • EK-RA6M3G でのパフォーマンス測定時のクラッシュを修正しました。
  • アプリケーションのビルド時に CMAKE_BUILD_TYPE が未指定になる問題を修正しました。
  • startX == startY == 0 の場合に暗黙的な移動が追加されない問題を修正しました。
  • Spark Engine をテキストキャッシュと組み合わせて使用した際にテキストが切り取られる問題を修正しました。
  • STM32 における動的アセットのサイズ閾値を小さく調整しました。
  • FontCompiler に 1bpp グリフの生成サポートを追加しました。
  • プラットフォームライブラリを再ビルドする際にコアライブラリをインポートするよう、ビルド依存関係を更新しました。
  • TextAlignmentの変更時にテキストキャッシュの更新を有効にしました。
  • DynDependencyNodeの割り当てをプール化しました。

新しいクラスと関数

アプリケーション開発

新しいクラス

新しい QML 型

新しい QML プロパティ

QML 型font

(since Qt Quick Ultralite 1.9) quality : Quality

新しい QML メソッド

QML タイプQt

(since Qt Quick Ultralite 1.9) font font(object fontConfiguration)

プラットフォーム開発

新しいクラス

新しいメンバー関数

MessageQueue クラス :

(since Qt Quick Ultralite (Platform) 1.9) uint32_t capacity() const
(since Qt Quick Ultralite (Platform) 1.9) void clearOverrun()
(since Qt Quick Ultralite (Platform) 1.9) bool discardSupported() const
(since Qt Quick Ultralite (Platform) 1.9) Qul::Platform::MessageQueueStatus enqueueOrDiscard(const MessageType *message)
(since Qt Quick Ultralite (Platform) 1.9) Qul::Platform::MessageQueueStatus enqueueOrDiscardFromInterrupt(const MessageType *message)
(since Qt Quick Ultralite (Platform) 1.9) Qul::Platform::MessageQueueStatus enqueueOrOverwrite(const MessageType *message)
(since Qt Quick Ultralite (Platform) 1.9) Qul::Platform::MessageQueueStatus enqueueOrOverwriteFromInterrupt(const MessageType *message)
(since Qt Quick Ultralite (Platform) 1.9) bool isEmpty() const
(since Qt Quick Ultralite (Platform) 1.9) bool isEmptyFromInterrupt() const
(since Qt Quick Ultralite (Platform) 1.9) bool isOverrun() const
(since Qt Quick Ultralite (Platform) 1.9) bool overwriteSupported() const
(since Qt Quick Ultralite (Platform) 1.9) Qul::Platform::MessageQueueStatus receive(MessageType *message, int32_t timeout = 0)
(since Qt Quick Ultralite (Platform) 1.9) Qul::Platform::MessageQueueStatus receiveFromInterrupt(MessageType *message, int32_t timeout = 0)

MessageQueueInterface クラス :

(since Qt Quick Ultralite (Platform) 1.9) virtual uint32_t capacity() const = 0
(since Qt Quick Ultralite (Platform) 1.9) virtual void clearOverrun() = 0
(since Qt Quick Ultralite (Platform) 1.9) virtual bool discardSupported() const = 0
(since Qt Quick Ultralite (Platform) 1.9) virtual Qul::Platform::MessageQueueStatus enqueueOrDiscard(const void *message) = 0
(since Qt Quick Ultralite (Platform) 1.9) virtual Qul::Platform::MessageQueueStatus enqueueOrDiscardFromInterrupt(const void *message)
(since Qt Quick Ultralite (Platform) 1.9) virtual Qul::Platform::MessageQueueStatus enqueueOrOverwrite(const void *message) = 0
(since Qt Quick Ultralite (Platform) 1.9) virtual Qul::Platform::MessageQueueStatus enqueueOrOverwriteFromInterrupt(const void *message)
(since Qt Quick Ultralite (Platform) 1.9) virtual bool isEmpty() const = 0
(since Qt Quick Ultralite (Platform) 1.9) virtual bool isEmptyFromInterrupt() const
(since Qt Quick Ultralite (Platform) 1.9) virtual bool isOverrun() const = 0
(since Qt Quick Ultralite (Platform) 1.9) virtual bool overwriteSupported() const = 0
(since Qt Quick Ultralite (Platform) 1.9) virtual Qul::Platform::MessageQueueStatus receive(void *message, int32_t timeout = 0) = 0
(since Qt Quick Ultralite (Platform) 1.9) virtual Qul::Platform::MessageQueueStatus receiveFromInterrupt(void *message, int32_t timeout = 0)

Texture クラス :

(since Qt Quick Ultralite (Platform) 1.9) Qul::PlatformInterface::PixelDataPointer pixelData(int16_t x, int16_t y) const

新しいグローバル関数

(since Qt Quick Ultralite (Platform) 1.9) Tvii::Configuration::Config configForOTFLayer(uint32_t platformId)
(since Qt Quick Ultralite (Platform) 1.9) Tvii::Configuration::Config defaultConfigForOTFLayer()
(since Qt Quick Ultralite (Platform) 1.9) void deleteQueue(Qul::Platform::MessageQueueInterface *queue)
(since Qt Quick Ultralite (Platform) 1.9) bool layerHasWarping(int platformId)
(since Qt Quick Ultralite (Platform) 1.9) int log(const char *format, ...)
(since Qt Quick Ultralite (Platform) 1.9) std::size_t maximumQueueMessageSize()
(since Qt Quick Ultralite (Platform) 1.9) Qul::Platform::MessageQueueInterface *requestQueue(std::size_t queueCapacity, std::size_t messageSize)
(since Qt Quick Ultralite (Platform) 1.9) void setConfigForOTFLayer(uint32_t platformId, uint16_t copses, uint32_t fifo, uint32_t lines)
(since Qt Quick Ultralite (Platform) 1.9) void setWarpingBufferForLayer(int platformId, const void *buffer, const int *platformStruct, int keepLines = 20)
(since Qt Quick Ultralite (Platform) 1.9) Tvii::Warping::WarpInfo warpInfoForLayer(int platformId)

新しいマクロ

(since Qt Quick Ultralite (Platform) 1.9) int qul_printf(const char *format, ...)
(since Qt Quick Ultralite (Platform) 1.9) int qul_snprintf(char *buffer, size_t count, const char *format, ...)
(since Qt Quick Ultralite (Platform) 1.9) int qul_sprintf(char *buffer, const char *format, ...)
(since Qt Quick Ultralite (Platform) 1.9) int qul_vprintf(const char *format, va_list va)
(since Qt Quick Ultralite (Platform) 1.9) int qul_vsnprintf(char *buffer, size_t count, const char *format, va_list va)

新しい列挙型

(since Qt Quick Ultralite (Platform) 1.9) enum class MessageQueueStatus { Success, MessageDiscarded, MessageOverwritten, EmptyQueue, Timeout, …, OtherError }

以前のバージョンでの変更点

What's New in 1.1

v1.1.0での変更点

What's New in 1.2

v1.2.0 での変更点

What's New in 1.3

v1.3.0での変更点

What's New in 1.4

v1.4.0 での変更点

What's New in 1.5

v1.5.0 の変更点

What's New in 1.6

v1.6.0 の変更点

What's New in 1.7

v1.7.0 の変更点

What's New in 1.8

v1.8.0 の変更点

What's New in 1.9

v1.9.0 の変更点

What's New in 2.0

v2.0.0 の変更点

What's New in 2.1

v2.1 の変更点

What's New in 2.2

v2.2 の変更点

What's New in 2.3

v2.3の変更点

What's New in 2.4

v2.4.0 の変更点

What's New in 2.5

v2.5の変更点

What's New in 2.6

v2.6.0の変更点

What's New in 2.7

v2.7.0 の変更点

What's New in 2.8

v2.8.0 の変更点

What's New in 2.9

v2.9.0 の変更点

What's New in 2.10

v2.10.1 の変更点

What's New in 2.11

v2.11.0 の変更点

特定のQtライセンスの下で利用可能です。
詳細はこちらをご覧ください。