85 if (!
options.modifiers.isEmpty() && !
options.modifiers.contains(DRM_FORMAT_MOD_LINEAR)) {
90 case DRM_FORMAT_ARGB8888:
91 case DRM_FORMAT_XRGB8888:
97 const int stride =
options.size.width() * 4;
98 const int bufferSize =
options.size.height() * stride;
106 if (ftruncate(fd.
get(), bufferSize) < 0) {
110 fcntl(fd.
get(), F_ADD_SEALS, F_SEAL_SHRINK | F_SEAL_GROW | F_SEAL_SEAL);
112 char templateName[] =
"/tmp/kwin-shm-XXXXXX";
118 unlink(templateName);
119 int flags = fcntl(fd.
get(), F_GETFD);
120 if (flags == -1 || fcntl(fd.
get(), F_SETFD, flags | FD_CLOEXEC) == -1) {
124 if (ftruncate(fd.
get(), bufferSize) < 0) {
137 MemoryMap memoryMap(attributes.stride * attributes.size.height(), PROT_READ | PROT_WRITE, MAP_SHARED, attributes.fd.get(), attributes.offset);