node: add node_scaled_scene_buffer_from_node

This commit is contained in:
tokyo4j 2024-11-28 21:34:24 +09:00 committed by Hiroaki Yamamoto
parent 8156b91306
commit 9a3412324d
4 changed files with 22 additions and 0 deletions

View file

@ -8,6 +8,7 @@ struct lab_layer_surface;
struct lab_layer_popup;
struct menuitem;
struct ssd_button;
struct scaled_scene_buffer;
enum node_descriptor_type {
LAB_NODE_DESC_NODE = 0,
@ -19,6 +20,7 @@ enum node_descriptor_type {
LAB_NODE_DESC_IME_POPUP,
LAB_NODE_DESC_MENUITEM,
LAB_NODE_DESC_TREE,
LAB_NODE_DESC_SCALED_SCENE_BUFFER,
LAB_NODE_DESC_SSD_BUTTON,
};
@ -81,4 +83,11 @@ struct menuitem *node_menuitem_from_node(
struct ssd_button *node_ssd_button_from_node(
struct wlr_scene_node *wlr_scene_node);
/**
* node_scaled_scene_buffer_from_node - return scaled_scene_buffer from node
* @wlr_scene_node: wlr_scene_node from which to return data
*/
struct scaled_scene_buffer *node_scaled_scene_buffer_from_node(
struct wlr_scene_node *wlr_scene_node);
#endif /* LABWC_NODE_DESCRIPTOR_H */

View file

@ -10,6 +10,7 @@
#include "buffer.h"
#include "common/mem.h"
#include "common/scaled-scene-buffer.h"
#include "node.h"
/**
* TODO
@ -226,6 +227,8 @@ scaled_scene_buffer_create(struct wlr_scene_tree *parent,
free(self);
return NULL;
}
node_descriptor_create(&self->scene_buffer->node,
LAB_NODE_DESC_SCALED_SCENE_BUFFER, self);
self->impl = impl;
/*

View file

@ -348,6 +348,7 @@ get_cursor_context(struct server *server)
return ret;
case LAB_NODE_DESC_NODE:
case LAB_NODE_DESC_TREE:
case LAB_NODE_DESC_SCALED_SCENE_BUFFER:
break;
}
}

View file

@ -79,3 +79,12 @@ node_ssd_button_from_node(struct wlr_scene_node *wlr_scene_node)
assert(node_descriptor->type == LAB_NODE_DESC_SSD_BUTTON);
return (struct ssd_button *)node_descriptor->data;
}
struct scaled_scene_buffer *
node_scaled_scene_buffer_from_node(struct wlr_scene_node *wlr_scene_node)
{
assert(wlr_scene_node->data);
struct node_descriptor *node_descriptor = wlr_scene_node->data;
assert(node_descriptor->type == LAB_NODE_DESC_SCALED_SCENE_BUFFER);
return (struct scaled_scene_buffer *)node_descriptor->data;
}