# HG changeset patch # User kazz@kazz187.st.ie.u-ryukyu.ac.jp # Date 1256726673 -32400 # Node ID e3e6f6fbbfc43062e6f61b292adf55ac05b0c000 # Parent 987380738a507e1b9f3d619e95c4e9ce51ad5891 dynamic not work diff -r 987380738a50 -r e3e6f6fbbfc4 Renderer/Engine/SceneGraphRoot.cc --- a/Renderer/Engine/SceneGraphRoot.cc Mon Oct 26 09:03:14 2009 +0900 +++ b/Renderer/Engine/SceneGraphRoot.cc Wed Oct 28 19:44:33 2009 +0900 @@ -152,15 +152,15 @@ /* XMLのノードを一つずつ解析 */ for (cur=cur->children; cur; cur=cur->next) { - /* 扱うのはsurfaceオンリー */ - if (xmlStrcmp(cur->name,(xmlChar*)"surface") != 0) { - continue; - } - /* ポリゴン(SceneGraph)生成 */ - SceneGraphPtr original = new SceneGraph(manager, cur); - registSceneGraph(original); - SceneGraphPtr clone = createSceneGraph(original->sgid); - node->addChild(clone); + /* 扱うのはsurfaceオンリー */ + if (xmlStrcmp(cur->name,(xmlChar*)"surface") != 0) { + continue; + } + /* ポリゴン(SceneGraph)生成 */ + SceneGraphPtr original = new SceneGraph(manager, cur); + registSceneGraph(original); + SceneGraphPtr clone = createSceneGraph(original->sgid); + node->addChild(clone); } xmlFreeDoc(doc); } diff -r 987380738a50 -r e3e6f6fbbfc4 Renderer/Test/dynamic_create.cc --- a/Renderer/Test/dynamic_create.cc Mon Oct 26 09:03:14 2009 +0900 +++ b/Renderer/Test/dynamic_create.cc Wed Oct 28 19:44:33 2009 +0900 @@ -114,6 +114,7 @@ SceneGraphPtr sgp; // ここで create // fwrite(xml_data, 1, 10, stdout); + printf((char *)xml_data); sgp = create_sg(carg->manager, carg->node, xml_data, xml_len, carg->sid); printf("%s size %d loaded\n", sgp->children->name, xml_len); client_list_update(carg->manager, carg->clist, carg->sid, sgp); diff -r 987380738a50 -r e3e6f6fbbfc4 Renderer/Test/send_linda.cc --- a/Renderer/Test/send_linda.cc Mon Oct 26 09:03:14 2009 +0900 +++ b/Renderer/Test/send_linda.cc Wed Oct 28 19:44:33 2009 +0900 @@ -22,24 +22,24 @@ Pad *pad = sgroot->getController(); if (pad->right.isHold() || pad->left.isHold()) { - if (pad->right.isHold()) { - node->xyz[0] += 5.0f; - } else if (pad->left.isHold()) { - node->xyz[0] -= 5.0f; - } + if (pad->right.isHold()) { + node->xyz[0] += 5.0f; + } else if (pad->left.isHold()) { + node->xyz[0] -= 5.0f; + } } if (pad->down.isHold() || pad->up.isHold() ) { - if (pad->down.isHold()) { - node->xyz[1] += 5.0f; - } else if (pad->up.isHold()) { - node->xyz[1] -= 5.0f; - } + if (pad->down.isHold()) { + node->xyz[1] += 5.0f; + } else if (pad->up.isHold()) { + node->xyz[1] -= 5.0f; + } } /* ここでキー入力を向こうに送る - */ + */ } @@ -65,18 +65,18 @@ struct stat sb; if ((fd = open(filename, O_RDONLY)) == -1) { - fprintf(stderr, "Can't open %s\n", filename); - perror(NULL); + fprintf(stderr, "Can't open %s\n", filename); + perror(NULL); } if (fstat(fd, &sb) == -1) { - fprintf(stderr, "Can't fstat %s\n", filename); - perror(NULL); + fprintf(stderr, "Can't fstat %s\n", filename); + perror(NULL); } *size = sb.st_size; addr = mmap(NULL, *size, PROT_READ, MAP_PRIVATE, fd, 0); if (addr == MAP_FAILED) { - perror("mmap error\n"); - exit(EXIT_FAILURE); + perror("mmap error\n"); + exit(EXIT_FAILURE); } close(fd); @@ -136,7 +136,7 @@ static char *linda = HOSTNAME; MainLoopPtr -send_linda::init(Viewer *sgroot, int screen_w, int screen_h) +send_linda::init(Viewer *sgr, int screen_w, int screen_h) { void *addr; int size; @@ -146,19 +146,17 @@ SceneGraphPtr sgp; SceneGraphPtr root; - root = sgroot->createSceneGraph(); + root = sgr->createSceneGraph(); root->set_move_collision(root_move, root_collision); - - // createFromXMLfile で object name のリストを生成して返したい - sgroot->createFromXMLfile( xml); - // 今だけは決め打ち、本当はリストを回して object 数 create したい - sgp = sgroot->createSceneGraph("Ball"); + + addr = file_map(xml, &size); + sgp = sgr->createSceneGraph(); + sgroot->createFromXMLmemory(sgroot->tmanager, sgp, xml, size); sgp->set_move_collision(move, collision); root->addChild(sgp); - - addr = file_map(xml, &size); - tspace = open_linda_java(linda, PORT_NUM); + + tspace = open_linda_java(linda, PORT_NUM); serial = get_serial_id(tspace); xml_id = serial * 10; send_xml(tspace, xml_id, addr, size); @@ -166,8 +164,8 @@ int client_id = htonl(serial); send_xml(tspace, LISTEN_PORT, (void *)client_id, sizeof(int)); - sgroot->setSceneData(root); - return sgroot; + sgr->setSceneData(root); + return sgr; } extern Application *