diff options
| author | allusive-dev <[email protected]> | 2023-09-19 17:46:20 +1000 |
|---|---|---|
| committer | allusive-dev <[email protected]> | 2023-09-19 17:46:20 +1000 |
| commit | 5650d887357bf2a3fac8c5fd4f467bf8795b5fc4 (patch) | |
| tree | 4b825dc642cb6eb9a060e54bf8d69288fbee4904 /src/backend/dummy | |
| parent | Update picom.sample.conf (diff) | |
| download | compfy-5650d887357bf2a3fac8c5fd4f467bf8795b5fc4.tar.xz compfy-5650d887357bf2a3fac8c5fd4f467bf8795b5fc4.zip | |
reset
Diffstat (limited to 'src/backend/dummy')
| -rw-r--r-- | src/backend/dummy/dummy.c | 174 |
1 files changed, 0 insertions, 174 deletions
diff --git a/src/backend/dummy/dummy.c b/src/backend/dummy/dummy.c deleted file mode 100644 index a057b97..0000000 --- a/src/backend/dummy/dummy.c +++ /dev/null @@ -1,174 +0,0 @@ -#include <uthash.h> -#include <xcb/xcb.h> - -#include "backend/backend.h" -#include "backend/backend_common.h" -#include "common.h" -#include "compiler.h" -#include "config.h" -#include "log.h" -#include "region.h" -#include "types.h" -#include "uthash_extra.h" -#include "utils.h" -#include "x.h" - -struct dummy_image { - xcb_pixmap_t pixmap; - bool transparent; - int *refcount; - UT_hash_handle hh; -}; - -struct dummy_data { - struct backend_base base; - struct dummy_image *images; -}; - -struct backend_base *dummy_init(struct session *ps attr_unused) { - auto ret = (struct backend_base *)ccalloc(1, struct dummy_data); - ret->c = ps->c; - ret->loop = ps->loop; - ret->root = ps->root; - ret->busy = false; - return ret; -} - -void dummy_deinit(struct backend_base *data) { - auto dummy = (struct dummy_data *)data; - HASH_ITER2(dummy->images, img) { - log_warn("Backend image for pixmap %#010x is not freed", img->pixmap); - HASH_DEL(dummy->images, img); - free(img->refcount); - free(img); - } - free(dummy); -} - -static void dummy_check_image(struct backend_base *base, const struct dummy_image *img) { - auto dummy = (struct dummy_data *)base; - struct dummy_image *tmp = NULL; - HASH_FIND_INT(dummy->images, &img->pixmap, tmp); - if (!tmp) { - log_warn("Using an invalid (possibly freed) image"); - assert(false); - } - assert(*tmp->refcount > 0); -} - -void dummy_compose(struct backend_base *base, void *image, int dst_x1 attr_unused, - int dst_y1 attr_unused, int dst_x2 attr_unused, int dst_y2 attr_unused, - const region_t *reg_paint attr_unused, const region_t *reg_visible attr_unused) { - dummy_check_image(base, image); -} - -void dummy_fill(struct backend_base *backend_data attr_unused, struct color c attr_unused, - const region_t *clip attr_unused) { -} - -bool dummy_blur(struct backend_base *backend_data attr_unused, double opacity attr_unused, - void *blur_ctx attr_unused, const region_t *reg_blur attr_unused, - const region_t *reg_visible attr_unused) { - return true; -} - -void *dummy_bind_pixmap(struct backend_base *base, xcb_pixmap_t pixmap, - struct xvisual_info fmt, bool owned attr_unused) { - auto dummy = (struct dummy_data *)base; - struct dummy_image *img = NULL; - HASH_FIND_INT(dummy->images, &pixmap, img); - if (img) { - (*img->refcount)++; - return img; - } - - img = ccalloc(1, struct dummy_image); - img->pixmap = pixmap; - img->transparent = fmt.alpha_size != 0; - img->refcount = ccalloc(1, int); - *img->refcount = 1; - - HASH_ADD_INT(dummy->images, pixmap, img); - return (void *)img; -} - -void dummy_release_image(backend_t *base, void *image) { - auto dummy = (struct dummy_data *)base; - auto img = (struct dummy_image *)image; - assert(*img->refcount > 0); - (*img->refcount)--; - if (*img->refcount == 0) { - HASH_DEL(dummy->images, img); - free(img->refcount); - free(img); - } -} - -bool dummy_is_image_transparent(struct backend_base *base, void *image) { - auto img = (struct dummy_image *)image; - dummy_check_image(base, img); - return img->transparent; -} - -int dummy_buffer_age(struct backend_base *base attr_unused) { - return 2; -} - -bool dummy_image_op(struct backend_base *base, enum image_operations op attr_unused, - void *image, const region_t *reg_op attr_unused, - const region_t *reg_visible attr_unused, void *args attr_unused) { - dummy_check_image(base, image); - return true; -} - -bool dummy_set_image_property(struct backend_base *base, enum image_properties prop attr_unused, - void *image, void *arg attr_unused) { - dummy_check_image(base, image); - return true; -} - -void *dummy_clone_image(struct backend_base *base, const void *image, - const region_t *reg_visible attr_unused) { - auto img = (const struct dummy_image *)image; - dummy_check_image(base, img); - (*img->refcount)++; - return (void *)img; -} - -void *dummy_create_blur_context(struct backend_base *base attr_unused, - enum blur_method method attr_unused, void *args attr_unused) { - static int dummy_context; - return &dummy_context; -} - -void dummy_destroy_blur_context(struct backend_base *base attr_unused, void *ctx attr_unused) { -} - -void dummy_get_blur_size(void *ctx attr_unused, int *width, int *height) { - // These numbers are arbitrary, to make sure the reisze_region code path is - // covered. - *width = 5; - *height = 5; -} - -struct backend_operations dummy_ops = { - .init = dummy_init, - .deinit = dummy_deinit, - .compose = dummy_compose, - .fill = dummy_fill, - .blur = dummy_blur, - .bind_pixmap = dummy_bind_pixmap, - .render_shadow = default_backend_render_shadow, - .release_image = dummy_release_image, - .is_image_transparent = dummy_is_image_transparent, - .buffer_age = dummy_buffer_age, - .max_buffer_age = 5, - - .image_op = dummy_image_op, - .clone_image = dummy_clone_image, - .set_image_property = dummy_set_image_property, - .create_blur_context = dummy_create_blur_context, - .destroy_blur_context = dummy_destroy_blur_context, - .get_blur_size = dummy_get_blur_size, - -}; |