Mercurial > hg > Game > Cerium
annotate Renderer/Engine/spe/DataAllocate.cc @ 1161:cc1a50cac83d draft
use MemorySegment API for pp load. do not check execution of the cell side. to be continued..
author | Yutaka_Kinjyo |
---|---|
date | Thu, 05 May 2011 00:15:43 +0900 |
parents | 801d57ae1e29 |
children | 95b114c66e14 |
rev | line source |
---|---|
1142
801d57ae1e29
cut compile CreatePolygonTask on spe side because not enough spe memory. We have to use code loading.
yutaka@localhost.localdomain
parents:
988
diff
changeset
|
1 //#include <stdio.h> |
749 | 2 #include <string.h> |
915
aa9728394194
create_polygon_task ..not worked yet.
yutaka@localhost.localdomain
parents:
823
diff
changeset
|
3 #include "DataAllocate.h" |
749 | 4 #include "Func.h" |
5 | |
6 /* これは必須 */ | |
915
aa9728394194
create_polygon_task ..not worked yet.
yutaka@localhost.localdomain
parents:
823
diff
changeset
|
7 SchedDefineTask(DataAllocate); |
749 | 8 |
9 static int | |
10 run(SchedTask *s, void *rbuf, void *wbuf) | |
11 { | |
12 | |
988 | 13 int count = (int)s->get_param(0); |
986
b3a8545eb2fa
double buffering of spanpack/polgonpack
root@henri.cr.ie.u-ryukyu.ac.jp
parents:
915
diff
changeset
|
14 for(int i=0;i<count;i++) { |
b3a8545eb2fa
double buffering of spanpack/polgonpack
root@henri.cr.ie.u-ryukyu.ac.jp
parents:
915
diff
changeset
|
15 void *idata = s->get_input(rbuf, i); |
b3a8545eb2fa
double buffering of spanpack/polgonpack
root@henri.cr.ie.u-ryukyu.ac.jp
parents:
915
diff
changeset
|
16 long size = (long)s->get_param(i*2+1); |
b3a8545eb2fa
double buffering of spanpack/polgonpack
root@henri.cr.ie.u-ryukyu.ac.jp
parents:
915
diff
changeset
|
17 long load_id = (long)s->get_param(i*2+2); |
749 | 18 |
986
b3a8545eb2fa
double buffering of spanpack/polgonpack
root@henri.cr.ie.u-ryukyu.ac.jp
parents:
915
diff
changeset
|
19 void *buff = s->global_alloc(load_id, size); |
b3a8545eb2fa
double buffering of spanpack/polgonpack
root@henri.cr.ie.u-ryukyu.ac.jp
parents:
915
diff
changeset
|
20 if (idata != NULL) { |
b3a8545eb2fa
double buffering of spanpack/polgonpack
root@henri.cr.ie.u-ryukyu.ac.jp
parents:
915
diff
changeset
|
21 memcpy(buff,idata,size); |
b3a8545eb2fa
double buffering of spanpack/polgonpack
root@henri.cr.ie.u-ryukyu.ac.jp
parents:
915
diff
changeset
|
22 } |
915
aa9728394194
create_polygon_task ..not worked yet.
yutaka@localhost.localdomain
parents:
823
diff
changeset
|
23 } |
749 | 24 |
25 return 0; | |
26 } | |
27 |