diff options
Diffstat (limited to 'extern/verse/dist/vs_node_material.c')
-rw-r--r-- | extern/verse/dist/vs_node_material.c | 116 |
1 files changed, 0 insertions, 116 deletions
diff --git a/extern/verse/dist/vs_node_material.c b/extern/verse/dist/vs_node_material.c deleted file mode 100644 index b22c070e348..00000000000 --- a/extern/verse/dist/vs_node_material.c +++ /dev/null @@ -1,116 +0,0 @@ -/* -** -*/ - -#include <stdio.h> -#include <stdlib.h> - -#include "v_cmd_gen.h" - -#if !defined V_GENERATE_FUNC_MODE - -#include "verse.h" -#include "vs_server.h" - -typedef struct { - VNMFragmentType type; - VMatFrag frag; -} VSMatFrag; - -typedef struct{ - VSNodeHead head; - VSMatFrag *frag; - unsigned int frag_count; -} VSNodeMaterial; - -VSNodeMaterial * vs_m_create_node(unsigned int owner) -{ - VSNodeMaterial *node; - char name[48]; - node = malloc(sizeof *node); - vs_add_new_node(&node->head, V_NT_MATERIAL); - sprintf(name, "Material_Node_%u", node->head.id); - create_node_head(&node->head, name, owner); - node->frag = NULL; - node->frag_count = 0; - return node; -} - -void vs_m_destroy_node(VSNodeMaterial *node) -{ - destroy_node_head(&node->head); - free(node->frag); - free(node); -} - -void vs_m_subscribe(VSNodeMaterial *node) -{ - uint16 i; - for(i = 0; i < node->frag_count; i++) - if(node->frag[i].type <= VN_M_FT_OUTPUT) - verse_send_m_fragment_create(node->head.id, (uint16)i, (uint8)node->frag[i].type, &node->frag[i].frag); -} - -void vs_m_unsubscribe(VSNodeMaterial *node) -{ -} - -static void callback_send_m_fragment_create(void *user, VNodeID node_id, VNMFragmentID frag_id, uint8 type, VMatFrag *fragment) -{ - unsigned int count; - uint16 i; - VSNodeMaterial *node; - node = (VSNodeMaterial *)vs_get_node(node_id, V_NT_MATERIAL); - if(node == NULL) - return; - if(node->frag_count + 32 < frag_id) - frag_id = (uint16)-1; - if(frag_id == (uint16) ~0u) - for(frag_id = 0; frag_id < node->frag_count && node->frag[frag_id].type < VN_M_FT_OUTPUT + 1; frag_id++) - ; - if(frag_id >= node->frag_count) - { - node->frag = realloc(node->frag, (sizeof *node->frag) * (node->frag_count + 32)); - for(i = node->frag_count; i < (node->frag_count + 32); i++) - node->frag[i].type = 255; - node->frag_count += 32; - } - node->frag[frag_id].type = type; - node->frag[frag_id].frag = *fragment; - - count = vs_get_subscript_count(node->head.subscribers); - for(i = 0; i < count; i++) - { - vs_set_subscript_session(node->head.subscribers, i); - verse_send_m_fragment_create(node_id, frag_id, type, fragment); - } - vs_reset_subscript_session(); -} - -static void callback_send_m_fragment_destroy(void *user, VNodeID node_id, VNMFragmentID frag_id) -{ - unsigned int count, i; - VSNodeMaterial *node; - node = (VSNodeMaterial *)vs_get_node(node_id, V_NT_MATERIAL); - printf("callback_send_m_fragment_destroy %p\n", node); - if(node == NULL) - return; - if(node->frag_count <= frag_id || node->frag[frag_id].type > VN_M_FT_OUTPUT) - return; - node->frag[frag_id].type = 255; - count = vs_get_subscript_count(node->head.subscribers); - for(i = 0; i < count; i++) - { - vs_set_subscript_session(node->head.subscribers, i); - verse_send_m_fragment_destroy(node_id, frag_id); - } - vs_reset_subscript_session(); -} - -void vs_m_callback_init(void) -{ - verse_callback_set(verse_send_m_fragment_create, callback_send_m_fragment_create, NULL); - verse_callback_set(verse_send_m_fragment_destroy, callback_send_m_fragment_destroy, NULL); -} - -#endif |