Mercurial > hg > Members > koba > t_dandy
comparison collision_task.cc @ 61:e66cab264350
RenderingEngine Task is worked on spe, task_dandy Task is worked on ppe
author | yutaka@localhost.localdomain |
---|---|
date | Sun, 06 Feb 2011 18:11:30 +0900 |
parents | cfd42ee2ad28 |
children | 3c2fc35a6b55 |
comparison
equal
deleted
inserted
replaced
60:cfd42ee2ad28 | 61:e66cab264350 |
---|---|
117 | 117 |
118 alloc_task->set_param(0, (memaddr)1); | 118 alloc_task->set_param(0, (memaddr)1); |
119 alloc_task->set_param(1, (memaddr)sizeof(CollisionProperty)); | 119 alloc_task->set_param(1, (memaddr)sizeof(CollisionProperty)); |
120 alloc_task->set_param(2, (memaddr)COLLDATA); | 120 alloc_task->set_param(2, (memaddr)COLLDATA); |
121 | 121 |
122 #ifndef PPE_ONLY | |
122 alloc_task->set_cpu(SPE_0); | 123 alloc_task->set_cpu(SPE_0); |
124 #else | |
125 alloc_task->set_cpu(CPU_PPE); | |
126 #endif | |
123 alloc_task->spawn(); | 127 alloc_task->spawn(); |
124 } | 128 } |
125 | 129 |
126 HTaskPtr | 130 HTaskPtr |
127 collision_update() | 131 collision_update() |
133 update_task->set_param(1, (memaddr)COLLDATA); | 137 update_task->set_param(1, (memaddr)COLLDATA); |
134 | 138 |
135 update_task->set_inData(0, property, sizeof(CollisionProperty)); | 139 update_task->set_inData(0, property, sizeof(CollisionProperty)); |
136 | 140 |
137 update_task->set_post(after_free, (void*)property, NULL); | 141 update_task->set_post(after_free, (void*)property, NULL); |
142 | |
143 #ifndef PPE_ONLY | |
138 update_task->set_cpu(SPE_0); | 144 update_task->set_cpu(SPE_0); |
145 #else | |
146 update_task->set_cpu(CPU_PPE); | |
147 #endif | |
139 | 148 |
140 return update_task; | 149 return update_task; |
141 } | 150 } |
142 | 151 |
143 HTaskPtr | 152 HTaskPtr |
149 reflect_task->set_param(0, (memaddr)COLLDATA); | 158 reflect_task->set_param(0, (memaddr)COLLDATA); |
150 | 159 |
151 reflect_task->set_outData(0, property, sizeof(CollisionProperty)); | 160 reflect_task->set_outData(0, property, sizeof(CollisionProperty)); |
152 | 161 |
153 reflect_task->set_post(reflect_property, (void*)property, NULL); | 162 reflect_task->set_post(reflect_property, (void*)property, NULL); |
163 #ifndef PPE_ONLY | |
154 reflect_task->set_cpu(SPE_0); | 164 reflect_task->set_cpu(SPE_0); |
165 #else | |
166 reflect_task->set_cpu(CPU_PPE); | |
167 #endif | |
155 | 168 |
156 return reflect_task; | 169 return reflect_task; |
157 } | 170 } |
158 | 171 |
159 void | 172 void |
160 collision_free() | 173 collision_free() |
161 { | 174 { |
162 HTaskPtr free_task = tmanager->create_task(DataFree); | 175 HTaskPtr free_task = tmanager->create_task(DataFree); |
163 | 176 |
164 free_task->set_param(0, (memaddr)COLLDATA); | 177 free_task->set_param(0, (memaddr)COLLDATA); |
165 | 178 #ifndef PPE_ONLY |
166 free_task->set_cpu(SPE_0); | 179 free_task->set_cpu(SPE_0); |
180 #else | |
181 free_task->set_cpu(CPU_PPE); | |
182 #endif | |
167 free_task->spawn(); | 183 free_task->spawn(); |
168 } | 184 } |
169 | 185 |
170 | 186 |
171 void | 187 void |
202 | 218 |
203 collision_task->set_outData(0, p, sizeof(CHARACTER)); | 219 collision_task->set_outData(0, p, sizeof(CHARACTER)); |
204 collision_task->set_outData(1, obj, obj_size); | 220 collision_task->set_outData(1, obj, obj_size); |
205 | 221 |
206 collision_task->set_post(collision_check, (void*)obj, (void*)p); | 222 collision_task->set_post(collision_check, (void*)obj, (void*)p); |
223 #ifndef PPE_ONLY | |
207 collision_task->set_cpu(SPE_0); | 224 collision_task->set_cpu(SPE_0); |
225 #else | |
226 collision_task->set_cpu(CPU_PPE); | |
227 #endif | |
208 | 228 |
209 collision_task->wait_for(update_task); | 229 collision_task->wait_for(update_task); |
210 reflect_task->wait_for(collision_task); | 230 reflect_task->wait_for(collision_task); |
211 | 231 |
212 collision_task->spawn(); | 232 collision_task->spawn(); |