C
ファイルシステムの統合
Qt Quick Ultraliteのファイルシステム統合の実装
ファイルシステムからリソースをロードするには、実装をアプリケーションに登録する必要があります。それには、Qul::PlatformInterface::Filesystem とQul::PlatformInterface::File クラスを実装する必要があります。FatFSファイル・システムの実装例はexamples/fileloading/fatfs/fatfsfilesystem.hにあります。
次のコードは、これらのクラスの実装例を示しています:
class MyFile : public Qul::PlatformInterface::File { public: MyFile(fileHandle) {...} uint64_t size(); int read(unsigned char *outputBuffer, uint64_t startOffset, unsigned int size); int close(); }
uint64_t MyFile::size() { return file_size; }
int MyFile::read(unsigned char *outputBuffer, uint64_t startOffset, unsigned int readSize) { int bytesRead; if (file_seek(startOffset) != OK) return -1; if (file_read(outputBuffer, readSize, &bytesRead) != OK) return -1; return bytesRead; }
int MyFile::close() { return file_close(); }
ファイルをアプリケーションAPIと統合するには、ファイル・システムにラップする必要があります。
class MyFilesystem : public Qul::PlatformInterface::Filesystem { public: Qul::PlatformInterface::File *open(const char *fileName, Qul::PlatformInterface::File::Mode) { if (file_open(fileName, mode) != OK) return NULL; return Qul::PlatformInterface::qul_new<MyFile>(handle); } };
実装されたファイルシステムをQt Quick Ultralite に知らせるには、アプリケーションに登録する必要があります。
static MyFilesystem filesystem; Qul::Application::addFilesystem(&filesystem);
Qt Quick Ultraliteは、最初にファイルインスタンスを返すまで、登録されたすべてのファイルシステムを繰り返し処理します。
特定の Qt ライセンスの下で利用可能です。
詳細をご覧ください。