C
Qul::PlatformInterface::MemoryAllocator Class
class Qul::PlatformInterface::MemoryAllocatorこのクラスは、メモリ割り当てのための抽象インターフェイスを提供します。詳細...
| Header: | #include <platforminterface/memoryallocator.h> |
| Since: | Qt Quick Ultralite (Platform) 1.9 |
パブリック型
| enum | AllocationType { Default, Image, TextCache, DefaultPreload, SparkCache, …, Custom } |
| enum | UsagePattern { WriteOnce, WriteRarely, WriteFrequently } |
パブリック関数
| virtual void | acquire(void *ptr, std::size_t offset, std::size_t size) |
| virtual void * | allocate(std::size_t size, Qul::PlatformInterface::MemoryAllocator::UsagePattern usagePattern = WriteRarely) |
| virtual void | free(void *ptr) |
| virtual void * | reallocate(void *ptr, std::size_t size) |
| virtual void | release(void *ptr, std::size_t offset, std::size_t size) |
詳細な説明
このクラスは、サイズが大きくなる可能性のある、ある種のメモリ割り当てに使用される。プラットフォームは通常、そのようなメモリをVRAMやSDRAMなどのカスタムメモリ領域に割り当てることを好むかもしれません。
Qt Quick Ultraliteはより小さな割り当てのためにQul::Platform::qul_malloc と関連APIを使用します。
メンバー型ドキュメント
enum MemoryAllocator::AllocationType
この列挙型は、メモリ割り当てのタイプを指定する。
| 定数 | 値 | 説明 |
|---|---|---|
Qul::PlatformInterface::MemoryAllocator::Default | 0 | 大きな割り当てのためのデフォルトの型。 |
Qul::PlatformInterface::MemoryAllocator::Image | 1 | Qul::Image API を使用して作成された画像を保存するための、事前に割り当てられたメモリバッファ。 |
Qul::PlatformInterface::MemoryAllocator::TextCache | 2 | テキスト・キャッシュ用にあらかじめ割り当てられたキャッシュ・バッファ。 |
Qul::PlatformInterface::MemoryAllocator::DefaultPreload | 3 | 起動時にフラッシュから RAM にコピーされるリソース用のメモリ割り当て。 |
Qul::PlatformInterface::MemoryAllocator::SparkCache | 4 | MCU.Config.fontCacheSize が設定されている場合、Monotype Sparkフォントエンジン用に事前に割り当てられたキャッシュバッファ。 |
Qul::PlatformInterface::MemoryAllocator::SparkHeap | 5 | MCU.Config.fontHeapSizeが設定されている場合、Monotype Sparkフォント・エンジン用に事前に割り当てられたヒープ・バッファ。 |
Qul::PlatformInterface::MemoryAllocator::QmlDynamicObjects | 6 | Loader、ListView 、Repeaterなどで動的に作成されるオブジェクトのメモリ割り当て。このタイプでは、Acquireメソッドとreleaseメソッドは呼び出されません。 |
Qul::PlatformInterface::MemoryAllocator::GlyphLayoutCache | 7 | MCU.Config.glyphsLayoutCacheSizeによって設定される、グリフレイアウトデータ用の事前割り当てメモリバッファ。このタイプでは、Acquireメソッドとreleaseメソッドは呼び出されません。 |
Qul::PlatformInterface::MemoryAllocator::Custom | 128 | これ以上の列挙値は、プラットフォーム固有のメモリ領域用に予約されています。 |
enum MemoryAllocator::UsagePattern
この列挙型は、割り当てられたメモリの使用方法を指定する。
| 定数 | 値 | 説明 |
|---|---|---|
Qul::PlatformInterface::MemoryAllocator::WriteOnce | 0 | 割り当てメモリは一度だけ書き込まれる。 |
Qul::PlatformInterface::MemoryAllocator::WriteRarely | 1 | 割り当ては、読み出されるよりも少ない頻度で書き込まれる。 |
Qul::PlatformInterface::MemoryAllocator::WriteFrequently | 2 | アロケーションは、そこから読み込まれるよりも頻繁に書き込まれる。 |
メンバー関数ドキュメント
[virtual] void MemoryAllocator::acquire(void *ptr, std::size_t offset, std::size_t size)
allocate によって割り当てられたメモリ・ブロックへの書き込みアクセスを取得する。
ptr はアクセスするメモリ・ブロックへのポインタである。これはallocate またはreallocate によって返されなければならない。
offset は書き込まれる割り当てに使用されるメモリ範囲であり、size はメモリ範囲のサイズである。
メモリーが書き込まれた後、release を同じパラメーターで呼び出す必要がある。
デフォルトの実装では何もしない。
[virtual] void *MemoryAllocator::allocate(std::size_t size, Qul::PlatformInterface::MemoryAllocator::UsagePattern usagePattern = WriteRarely)
メモリのチャンクを確保する。
usagePatternこのメソッドは、指定されたsize のメモリーを確保する。
acquire は、確保されたメモリに書き込む前に呼び出されなければならない。
デフォルトの実装ではQul::Platform::qul_malloc を使用します。
free およびreallocateも参照してください 。
[virtual] void MemoryAllocator::free(void *ptr)
allocate によって割り当てられたメモリー・ブロックを解放する。
ptr は解放するメモリブロックへのポインタです。
デフォルトの実装ではQul::Platform::qul_free を使用します。
allocate およびreallocateも参照してください 。
[virtual] void *MemoryAllocator::reallocate(void *ptr, std::size_t size)
allocate で割り当てられたメモリー・ブロックのサイズ変更を試みる。
ptr は以前に割り当てられたメモリ・ブロックへのポインタであり、size (バイト単位)はメモリ・ブロックの新しいサイズである。
ptr がNULL の場合、これは与えられたsize とデフォルトの使用パターンでallocate を呼び出すのと等価である。
要求を満たすのに十分なメモリーがない場合、NULL を返す。この場合、ptr は解放されない。
デフォルトの実装ではQul::Platform::qul_realloc を使用する。
[virtual] void MemoryAllocator::release(void *ptr, std::size_t offset, std::size_t size)
acquire を使って取得した書き込みアクセスを解放する。
ptr はアクセスされるメモリ・ブロックへのポインタである。これはallocate またはreallocate によって返されなければならない。
offset は書き込まれるアロケーションに使用されるメモリ範囲であり、size はメモリ範囲のサイズである。
デフォルトの実装では何もしない。
acquireも参照してください 。
特定の Qt ライセンスの下で利用可能です。
詳細を確認してください。