C
Qt Quick Ultralite traveo_t2g_effects Example
// Copyright (C) 2024 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial #include "cygfx.h" #include <platforminterface/log.h> namespace CyGfx { CYGFX_SM_FORMAT convertFormat(Qul::PixelFormat format) { CYGFX_SM_FORMAT result = CYGFX_SM_FORMAT_A8R8G8B8; switch (format) { case Qul::PixelFormat_ARGB32: case Qul::PixelFormat_ARGB32_Premultiplied: result = CYGFX_SM_FORMAT_A8R8G8B8; break; case Qul::PixelFormat_RGB32: result = CYGFX_SM_FORMAT_X8R8G8B8; break; case Qul::PixelFormat_RGB888: result = CYGFX_SM_FORMAT_R8G8B8; break; case Qul::PixelFormat_RGB16: result = CYGFX_SM_FORMAT_R5G6B5; break; case Qul::PixelFormat_Alpha8: result = CYGFX_SM_FORMAT_A8; break; default: Qul::PlatformInterface::log("[%s] Unsupported Format! (%d)\n\r", __PRETTY_FUNCTION__, format); } return result; } void loadSurface(CSurface<1> *surface, const Qul::PlatformInterface::Texture &texture) { CYGFX_ERROR ret = CYGFX_OK; if (texture.format() >= Qul::PixelFormat_Custom) { UTIL_SUCCESS(ret, surface->SurfLoadBitmap(texture.data(), false)); } else { UTIL_SUCCESS(ret, CyGfx_SmAssignBuffer(*surface, texture.width(), texture.height(), convertFormat(texture.format()), const_cast<unsigned char *>(texture.data()), 0)); UTIL_SUCCESS(ret, CyGfx_SmSetAttribute(*surface, CYGFX_SM_ATTR_STRIDE, texture.bytesPerLine())); UTIL_SUCCESS(ret, CyGfx_SmSetAttribute(*surface, CYGFX_SM_ATTR_BITPERPIXEL, texture.bitsPerPixel())); } } } // namespace CyGfx