commit
5d60610cb0
@ -1,7 +1,6 @@
|
||||
image: alpine/edge
|
||||
packages:
|
||||
- meson
|
||||
- pango-dev
|
||||
- cairo-dev
|
||||
- wayland-dev
|
||||
- wayland-protocols
|
||||
|
@ -34,7 +34,6 @@ Install dependencies:
|
||||
* wayland
|
||||
* wayland-protocols \*
|
||||
* libxkbcommon
|
||||
* pango
|
||||
* cairo
|
||||
* gdk-pixbuf2 \*\*
|
||||
* pam (optional)
|
||||
|
@ -1,5 +1,4 @@
|
||||
#include <assert.h>
|
||||
#include <stdbool.h>
|
||||
#include "background-image.h"
|
||||
#include "cairo.h"
|
||||
#include "log.h"
|
||||
@ -30,7 +29,7 @@ cairo_surface_t *load_background_image(const char *path) {
|
||||
if (!pixbuf) {
|
||||
swaylock_log(LOG_ERROR, "Failed to load background image (%s).",
|
||||
err->message);
|
||||
return false;
|
||||
return NULL;
|
||||
}
|
||||
image = gdk_cairo_image_surface_create_from_pixbuf(pixbuf);
|
||||
g_object_unref(pixbuf);
|
||||
|
@ -1,7 +1,6 @@
|
||||
#ifndef _SWAY_BUFFERS_H
|
||||
#define _SWAY_BUFFERS_H
|
||||
#include <cairo/cairo.h>
|
||||
#include <pango/pangocairo.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
#include <wayland-client.h>
|
||||
@ -10,7 +9,6 @@ struct pool_buffer {
|
||||
struct wl_buffer *buffer;
|
||||
cairo_surface_t *surface;
|
||||
cairo_t *cairo;
|
||||
PangoContext *pango;
|
||||
uint32_t width, height;
|
||||
void *data;
|
||||
size_t size;
|
||||
|
@ -38,8 +38,6 @@ wayland_client = dependency('wayland-client')
|
||||
wayland_protos = dependency('wayland-protocols', version: '>=1.14')
|
||||
xkbcommon = dependency('xkbcommon')
|
||||
cairo = dependency('cairo')
|
||||
pango = dependency('pango')
|
||||
pangocairo = dependency('pangocairo')
|
||||
gdk_pixbuf = dependency('gdk-pixbuf-2.0', required: get_option('gdk-pixbuf'))
|
||||
libpam = cc.find_library('pam', required: get_option('pam'))
|
||||
crypt = cc.find_library('crypt', required: not libpam.found())
|
||||
@ -120,8 +118,6 @@ dependencies = [
|
||||
client_protos,
|
||||
gdk_pixbuf,
|
||||
math,
|
||||
pango,
|
||||
pangocairo,
|
||||
xkbcommon,
|
||||
wayland_client,
|
||||
]
|
||||
|
@ -2,7 +2,6 @@
|
||||
#include <assert.h>
|
||||
#include <cairo/cairo.h>
|
||||
#include <fcntl.h>
|
||||
#include <pango/pangocairo.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@ -93,7 +92,6 @@ static struct pool_buffer *create_buffer(struct wl_shm *shm,
|
||||
buf->surface = cairo_image_surface_create_for_data(data,
|
||||
CAIRO_FORMAT_ARGB32, width, height, stride);
|
||||
buf->cairo = cairo_create(buf->surface);
|
||||
buf->pango = pango_cairo_create_context(buf->cairo);
|
||||
|
||||
wl_buffer_add_listener(buf->buffer, &buffer_listener, buf);
|
||||
return buf;
|
||||
@ -109,9 +107,6 @@ void destroy_buffer(struct pool_buffer *buffer) {
|
||||
if (buffer->surface) {
|
||||
cairo_surface_destroy(buffer->surface);
|
||||
}
|
||||
if (buffer->pango) {
|
||||
g_object_unref(buffer->pango);
|
||||
}
|
||||
if (buffer->data) {
|
||||
munmap(buffer->data, buffer->size);
|
||||
}
|
||||
|
35
unicode.c
35
unicode.c
@ -13,41 +13,6 @@ size_t utf8_chsize(uint32_t ch) {
|
||||
return 4;
|
||||
}
|
||||
|
||||
static const uint8_t masks[] = {
|
||||
0x7F,
|
||||
0x1F,
|
||||
0x0F,
|
||||
0x07,
|
||||
0x03,
|
||||
0x01
|
||||
};
|
||||
|
||||
uint32_t utf8_decode(const char **char_str) {
|
||||
uint8_t **s = (uint8_t **)char_str;
|
||||
|
||||
uint32_t cp = 0;
|
||||
if (**s < 128) {
|
||||
// shortcut
|
||||
cp = **s;
|
||||
++*s;
|
||||
return cp;
|
||||
}
|
||||
int size = utf8_size((char *)*s);
|
||||
if (size == -1) {
|
||||
++*s;
|
||||
return UTF8_INVALID;
|
||||
}
|
||||
uint8_t mask = masks[size - 1];
|
||||
cp = **s & mask;
|
||||
++*s;
|
||||
while (--size) {
|
||||
cp <<= 6;
|
||||
cp |= **s & 0x3f;
|
||||
++*s;
|
||||
}
|
||||
return cp;
|
||||
}
|
||||
|
||||
size_t utf8_encode(char *str, uint32_t ch) {
|
||||
size_t len = 0;
|
||||
uint8_t first;
|
||||
|
Loading…
Reference in New Issue
Block a user