6#include <QtMultimedia/private/qmultimedia_ranges_p.h>
8#include <QtCore/qloggingcategory.h>
13#if defined(EGL_KHR_image
)
24#if defined(EGL_KHR_image
)
25Q_STATIC_LOGGING_CATEGORY(qLcEglImage,
"qt.multimedia.egl");
32[[maybe_unused]] std::optional<std::vector<EGLint>> narrowToEGLint(QSpan<
const EGLAttrib> attribs)
34 std::vector<EGLint> narrowed(size_t(attribs.size()));
36 Q_ASSERT(
sizeof(EGLAttrib) >
sizeof(EGLint));
37 static std::once_flag warnOnce;
38 std::call_once(warnOnce, [] {
39 qCDebug(qLcEglImage) <<
"EGL_KHR_image_base fallback: narrowing 64-bit EGLAttrib "
40 "attribute values to 32-bit EGLint";
43 for (qsizetype i = 0; i < attribs.size(); ++i) {
44 const EGLAttrib value = attribs[i];
45 if (value <
std::numeric_limits<EGLint>::min()
46 || value >
std::numeric_limits<EGLint>::max()) {
47 qCWarning(qLcEglImage)
48 <<
"EGL attribute value" << value
49 <<
"does not fit into EGLint; cannot use the EGL_KHR_image_base fallback";
52 narrowed[size_t(i)] = EGLint(value);
60Fn getEglFunction(
const char *name)
62 return reinterpret_cast<Fn>(eglGetProcAddress(name));
69#ifdef GL_OES_EGL_image
83#if defined(EGL_KHR_image
)
92#if defined(EGL_EXT_image_dma_buf_import_modifiers
)
109#ifdef GL_OES_EGL_image
116#ifdef EGL_VERSION_1_5
120#if defined(EGL_KHR_image
)
129#ifdef GL_OES_EGL_image
139#ifdef EGL_VERSION_1_5
147#if defined(EGL_KHR_image
)
172#ifdef EGL_VERSION_1_5
176#if defined(EGL_KHR_image
)
187#if defined(EGL_EXT_image_dma_buf_import_modifiers
)