diff options
| author | Nippy <nippy@rp1.hu> | 2026-05-09 13:33:09 +0200 |
|---|---|---|
| committer | Nippy <nippy@rp1.hu> | 2026-05-09 13:33:09 +0200 |
| commit | a2b924d7e9492b978ad6dc33b6c1ffcb304b4bc5 (patch) | |
| tree | 1a8769217f84bfe9d6216fafaadaf8cdd876d457 /raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/wayland | |
| parent | 34b9c34f982b2596cfa9e368a2d7f74e9a17477c (diff) | |
| download | RaveOS-PKGBUILD-a2b924d7e9492b978ad6dc33b6c1ffcb304b4bc5.tar.gz RaveOS-PKGBUILD-a2b924d7e9492b978ad6dc33b6c1ffcb304b4bc5.zip | |
raveos update
Diffstat (limited to 'raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/wayland')
2 files changed, 0 insertions, 324 deletions
diff --git a/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/wayland/client/helpers.go b/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/wayland/client/helpers.go deleted file mode 100644 index 9075cd3..0000000 --- a/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/wayland/client/helpers.go +++ /dev/null @@ -1,26 +0,0 @@ -package client - -import wlclient "github.com/AvengeMedia/DankMaterialShell/core/pkg/go-wayland/wayland/client" - -func Roundtrip(display *wlclient.Display, ctx *wlclient.Context) error { - callback, err := display.Sync() - if err != nil { - return err - } - - done := make(chan struct{}) - callback.SetDoneHandler(func(e wlclient.CallbackDoneEvent) { - close(done) - }) - - for { - select { - case <-done: - return nil - default: - if err := ctx.Dispatch(); err != nil { - return err - } - } - } -} diff --git a/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/wayland/shm/buffer.go b/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/wayland/shm/buffer.go deleted file mode 100644 index 9cfee20..0000000 --- a/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/wayland/shm/buffer.go +++ /dev/null @@ -1,298 +0,0 @@ -package shm - -import ( - "fmt" - - "golang.org/x/sys/unix" -) - -type PixelFormat uint32 - -const ( - FormatARGB8888 PixelFormat = 0 - FormatXRGB8888 PixelFormat = 1 - FormatABGR8888 PixelFormat = 0x34324241 - FormatXBGR8888 PixelFormat = 0x34324258 - FormatRGB888 PixelFormat = 0x34324752 - FormatBGR888 PixelFormat = 0x34324742 -) - -func (f PixelFormat) BytesPerPixel() int { - switch f { - case FormatRGB888, FormatBGR888: - return 3 - default: - return 4 - } -} - -func (f PixelFormat) Is24Bit() bool { - return f == FormatRGB888 || f == FormatBGR888 -} - -type Buffer struct { - fd int - data []byte - size int - Width int - Height int - Stride int - Format PixelFormat -} - -func CreateBuffer(width, height, stride int) (*Buffer, error) { - size := stride * height - - fd, err := unix.MemfdCreate("dms-shm", 0) - if err != nil { - return nil, fmt.Errorf("memfd_create: %w", err) - } - - if err := unix.Ftruncate(fd, int64(size)); err != nil { - unix.Close(fd) - return nil, fmt.Errorf("ftruncate: %w", err) - } - - data, err := unix.Mmap(fd, 0, size, unix.PROT_READ|unix.PROT_WRITE, unix.MAP_SHARED) - if err != nil { - unix.Close(fd) - return nil, fmt.Errorf("mmap: %w", err) - } - - return &Buffer{ - fd: fd, - data: data, - size: size, - Width: width, - Height: height, - Stride: stride, - }, nil -} - -func (b *Buffer) Fd() int { return b.fd } -func (b *Buffer) Size() int { return b.size } -func (b *Buffer) Data() []byte { return b.data } - -func (b *Buffer) Close() error { - var firstErr error - - if b.data != nil { - if err := unix.Munmap(b.data); err != nil && firstErr == nil { - firstErr = fmt.Errorf("munmap: %w", err) - } - b.data = nil - } - - if b.fd >= 0 { - if err := unix.Close(b.fd); err != nil && firstErr == nil { - firstErr = fmt.Errorf("close: %w", err) - } - b.fd = -1 - } - - return firstErr -} - -func (b *Buffer) ConvertTo32Bit(srcFormat PixelFormat) (*Buffer, PixelFormat, error) { - if !srcFormat.Is24Bit() { - return b, srcFormat, nil - } - - dstFormat := FormatXRGB8888 - dstStride := b.Width * 4 - - dst, err := CreateBuffer(b.Width, b.Height, dstStride) - if err != nil { - return nil, srcFormat, err - } - dst.Format = dstFormat - - srcData := b.data - dstData := dst.data - - // DRM format names are counterintuitive on little-endian: - // RGB888 memory layout: B, G, R (name is logical order, not memory) - // BGR888 memory layout: R, G, B - isBGRMemory := srcFormat == FormatRGB888 - - for y := 0; y < b.Height; y++ { - srcRow := y * b.Stride - dstRow := y * dstStride - for x := 0; x < b.Width; x++ { - si := srcRow + x*3 - di := dstRow + x*4 - if isBGRMemory { - // RGB888: src memory is B,G,R -> dst XRGB8888 memory B,G,R,X - dstData[di+0] = srcData[si+0] - dstData[di+1] = srcData[si+1] - dstData[di+2] = srcData[si+2] - } else { - // BGR888: src memory is R,G,B -> dst XRGB8888 memory B,G,R,X - dstData[di+0] = srcData[si+2] - dstData[di+1] = srcData[si+1] - dstData[di+2] = srcData[si+0] - } - dstData[di+3] = 0xFF - } - } - - return dst, dstFormat, nil -} - -func (b *Buffer) GetPixelRGBA(x, y int) (r, g, b2, a uint8) { - if x < 0 || x >= b.Width || y < 0 || y >= b.Height { - return - } - - off := y*b.Stride + x*4 - if off+3 >= len(b.data) { - return - } - - switch b.Format { - case FormatXBGR8888, FormatABGR8888: - return b.data[off], b.data[off+1], b.data[off+2], 0xFF - default: - return b.data[off+2], b.data[off+1], b.data[off], 0xFF - } -} - -func (b *Buffer) GetPixelBGRA(x, y int) (b2, g, r, a uint8) { - if x < 0 || x >= b.Width || y < 0 || y >= b.Height { - return - } - - off := y*b.Stride + x*4 - if off+3 >= len(b.data) { - return - } - - return b.data[off], b.data[off+1], b.data[off+2], b.data[off+3] -} - -func (b *Buffer) ConvertBGRAtoRGBA() { - for y := 0; y < b.Height; y++ { - rowOff := y * b.Stride - for x := 0; x < b.Width; x++ { - off := rowOff + x*4 - if off+3 >= len(b.data) { - continue - } - b.data[off], b.data[off+2] = b.data[off+2], b.data[off] - } - } -} - -func (b *Buffer) FlipVertical() { - tmp := make([]byte, b.Stride) - for y := 0; y < b.Height/2; y++ { - topOff := y * b.Stride - botOff := (b.Height - 1 - y) * b.Stride - copy(tmp, b.data[topOff:topOff+b.Stride]) - copy(b.data[topOff:topOff+b.Stride], b.data[botOff:botOff+b.Stride]) - copy(b.data[botOff:botOff+b.Stride], tmp) - } -} - -func (b *Buffer) Clear() { - for i := range b.data { - b.data[i] = 0 - } -} - -func (b *Buffer) CopyFrom(src *Buffer) { - copy(b.data, src.data) -} - -const ( - TransformNormal = 0 - Transform90 = 1 - Transform180 = 2 - Transform270 = 3 - TransformFlipped = 4 - TransformFlipped90 = 5 - TransformFlipped180 = 6 - TransformFlipped270 = 7 -) - -func (b *Buffer) ApplyTransform(transform int32) (*Buffer, error) { - if transform == TransformNormal { - return b, nil - } - - var newW, newH int - switch transform { - case Transform90, Transform270, TransformFlipped90, TransformFlipped270: - newW, newH = b.Height, b.Width - default: - newW, newH = b.Width, b.Height - } - - newBuf, err := CreateBuffer(newW, newH, newW*4) - if err != nil { - return nil, err - } - newBuf.Format = b.Format - - srcData := b.data - dstData := newBuf.data - - for sy := 0; sy < b.Height; sy++ { - for sx := 0; sx < b.Width; sx++ { - var dx, dy int - - switch transform { - case Transform90: // 90° CCW - dx = sy - dy = b.Width - 1 - sx - case Transform180: - dx = b.Width - 1 - sx - dy = b.Height - 1 - sy - case Transform270: // 270° CCW = 90° CW - dx = b.Height - 1 - sy - dy = sx - case TransformFlipped: - dx = b.Width - 1 - sx - dy = sy - case TransformFlipped90: - dx = sy - dy = sx - case TransformFlipped180: - dx = sx - dy = b.Height - 1 - sy - case TransformFlipped270: - dx = b.Height - 1 - sy - dy = b.Width - 1 - sx - default: - dx, dy = sx, sy - } - - si := sy*b.Stride + sx*4 - di := dy*newBuf.Stride + dx*4 - - if si+3 < len(srcData) && di+3 < len(dstData) { - dstData[di+0] = srcData[si+0] - dstData[di+1] = srcData[si+1] - dstData[di+2] = srcData[si+2] - dstData[di+3] = srcData[si+3] - } - } - } - - return newBuf, nil -} - -func InverseTransform(transform int32) int32 { - switch transform { - case Transform90: - return Transform270 - case Transform270: - return Transform90 - case TransformFlipped90: - return TransformFlipped270 - case TransformFlipped270: - return TransformFlipped90 - default: - return transform - } -} |