From 5413fb67d5454666cd4606ac51e8f8d1ae31aa6e Mon Sep 17 00:00:00 2001 From: tslil Date: Sat, 4 Apr 2026 17:44:21 +0100 Subject: cleanup --- somebar/src/shm_buffer.cpp | 85 ---------------------------------------------- 1 file changed, 85 deletions(-) delete mode 100644 somebar/src/shm_buffer.cpp (limited to 'somebar/src/shm_buffer.cpp') diff --git a/somebar/src/shm_buffer.cpp b/somebar/src/shm_buffer.cpp deleted file mode 100644 index 59baf6f..0000000 --- a/somebar/src/shm_buffer.cpp +++ /dev/null @@ -1,85 +0,0 @@ -// somebar - dwl bar -// See LICENSE file for copyright and license details. - -#include -#include -#include -#include -#include "shm_buffer.hpp" -#include "common.hpp" - -static int createAnonShm(); -constexpr int n = 2; - -ShmBuffer::ShmBuffer(int w, int h, wl_shm_format format) - : width(w) - , height(h) - , stride(w*4) -{ - auto oneSize = stride*size_t(h); - auto totalSize = oneSize * n; - auto fd = createAnonShm(); - if (fd < 0) { - diesys("memfd_create"); - } - if (ftruncate(fd, totalSize) < 0) { - diesys("ftruncate"); - } - auto pool = wl_shm_create_pool(shm, fd, totalSize); - auto ptr = reinterpret_cast(mmap(nullptr, totalSize, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0)); - if (!ptr) { - diesys("mmap"); - } - _mapping = MemoryMapping {ptr, totalSize}; - close(fd); - for (auto i=0; i { wl_shm_pool_create_buffer(pool, offset, width, height, stride, format) }, - }; - } - wl_shm_pool_destroy(pool); -} - -uint8_t* ShmBuffer::data() -{ - return _buffers[_current].data; -} - -wl_buffer* ShmBuffer::buffer() -{ - return _buffers[_current].buffer.get(); -} - -void ShmBuffer::flip() -{ - _current = 1-_current; -} - -#if defined(__linux__) -int createAnonShm() { - return memfd_create("wl_shm", MFD_CLOEXEC); -} -#elif defined(__FreeBSD__) -int createAnonShm() { - auto fd = shm_open(SHM_ANON, O_CREAT | O_RDWR, 0600); - setCloexec(fd); - return fd; -} -#elif defined(__OpenBSD__) -int createAnonShm() { - char name[] = "/wl_shm-XXXXXX"; - auto fd = shm_mkstemp(name); - if (fd >= 0) { - auto res = shm_unlink(name); - if (res < 0) { - return res; - } - } - setCloexec(fd); - return fd; -} -#else -#error "your system has no sane method of creating an anonymous shared memory object. no, calling shm_open in a loop is not sane." -#endif -- cgit v1.2.3