comparison Renderer/test_render/scene_graph_pack.h @ 283:15bfacccde99 draft

fix test_render
author e065746@localhost.localdomain
date Fri, 05 Jun 2009 16:49:12 +0900
parents
children
comparison
equal deleted inserted replaced
282:ef6b225f6f40 283:15bfacccde99
1 #ifndef INCLUDED_SCENE_GRAPH_PACK
2 #define INCLUDED_SCENE_GRAPH_PACK
3
4 #ifndef INCLUDED_SCENE_GRAPH
5 # include "SceneGraph.h"
6 #endif
7
8 #ifndef INCLUDED_TYPES
9 # include "types.h"
10 #endif
11
12 #define MAX_NODE 16
13 #define MAX_POLYGON 36
14
15 typedef struct SceneGraphNode {
16 int size; // この Node で使ってるポリゴンの数、でいいのかな
17 float vertex[MAX_POLYGON*3];
18 float texture[MAX_POLYGON*2];
19 float obj_pos[4];
20 float angle[4];
21 float translation[16];
22 uint32 *tex_addr;
23 int tex_width, tex_height;
24 int id;
25 int move, interaction;
26 int pn; // parent number?
27 SceneGraphNode *next;
28 int pad[3];
29 SceneGraphPtr self;
30 SceneGraphPtr tree;
31
32 void init(void) {
33 size = 0;
34 next = 0;
35 }
36
37 void finish(void) {
38 SceneGraphNode *p = this->next, *p1;
39
40 while (p) {
41 p1 = p->next;
42 free(p);
43 p = p1;
44 }
45 }
46 }SceneGraphNode, *SceneGraphNodePtr;
47
48 typedef struct SceneGraphInfo {
49 int size;
50 int pad[2];
51 }SceneGraphInfo;
52
53 typedef struct SceneGraphPack {
54 SceneGraphInfo info;
55 SceneGraphNode node[MAX_NODE];
56 SceneGraphPack *next;
57
58 void init(void){
59 next = 0;
60 info.size = 0;
61
62 for (int i = 0; i < MAX_NODE; i++) {
63 node[i].size = 0;
64 }
65 }
66
67 void finish(void) {
68 for (int i = 0; i < info.size; i++) {
69 node[i].finish();
70 }
71
72 next = 0;
73 info.size = 0;
74 }
75 } SceneGraphPack, *SceneGraphPackPtr;
76
77 #endif