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 lab_layer_popup;
struct menuitem; struct menuitem;
struct ssd_button; struct ssd_button;
struct scaled_scene_buffer;
enum node_descriptor_type { enum node_descriptor_type {
LAB_NODE_DESC_NODE = 0, LAB_NODE_DESC_NODE = 0,
@ -19,6 +20,7 @@ enum node_descriptor_type {
LAB_NODE_DESC_IME_POPUP, LAB_NODE_DESC_IME_POPUP,
LAB_NODE_DESC_MENUITEM, LAB_NODE_DESC_MENUITEM,
LAB_NODE_DESC_TREE, LAB_NODE_DESC_TREE,
LAB_NODE_DESC_SCALED_SCENE_BUFFER,
LAB_NODE_DESC_SSD_BUTTON, LAB_NODE_DESC_SSD_BUTTON,
}; };
@ -81,4 +83,11 @@ struct menuitem *node_menuitem_from_node(
struct ssd_button *node_ssd_button_from_node( struct ssd_button *node_ssd_button_from_node(
struct wlr_scene_node *wlr_scene_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 */ #endif /* LABWC_NODE_DESCRIPTOR_H */

View file

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

View file

@ -348,6 +348,7 @@ get_cursor_context(struct server *server)
return ret; return ret;
case LAB_NODE_DESC_NODE: case LAB_NODE_DESC_NODE:
case LAB_NODE_DESC_TREE: case LAB_NODE_DESC_TREE:
case LAB_NODE_DESC_SCALED_SCENE_BUFFER:
break; 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); assert(node_descriptor->type == LAB_NODE_DESC_SSD_BUTTON);
return (struct ssd_button *)node_descriptor->data; 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;
}