C
Qt Quick Ultralite image_loading Example
// Copyright (C) 2024 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial
#include <qul/singleton.h>
#include <qul/image.h>
#include <qul/imageprovider.h>
#include <qul/eventqueue.h>
#include <qul/timer.h>
#include <string>
struct MyImageLoadedEvent
{
MyImageLoadedEvent(Qul::Image &image)
: sharedImage(image)
{}
Qul::SharedImage sharedImage;
};
struct MyImageProvider : public Qul::ImageProvider, public Qul::EventQueue<MyImageLoadedEvent *>
{
Qul::SharedImage requestImage(const char *imageName, size_t imageNameLength) QUL_DECL_OVERRIDE;
void onEvent(MyImageLoadedEvent *const &event) QUL_DECL_OVERRIDE;
void onEventDiscarded(MyImageLoadedEvent *const &event) QUL_DECL_OVERRIDE;
struct Timeout
{
MyImageProvider *object;
void operator()();
};
private:
Qul::Timer m_asyncLoadTimer;
Qul::SharedImage sharedImage;
int loadSteps;
int currentLoadStep;
int colors[3];
};