annotate TaskManager/Test/test_render/task/Set_Texture.cpp @ 109:028ffc9c0375 draft

Cerium cvs version
author gongo@gendarme.local
date Wed, 12 Nov 2008 17:39:33 +0900
parents
children 13b43de5ef5d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
109
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
1 #include <string.h>
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
2 #include "Set_Texture.h"
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
3 #include "texture.h"
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
4
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
5 SchedDefineTask(SetTexture);
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
6
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
7 //texture をglobal 領域にコピーするタスク
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
8 int
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
9 SetTexture::run(void *rbuf, void *wbuf)
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
10 {
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
11 void *src[3];
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
12
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
13 src[0] = get_input(rbuf, 0);
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
14 src[1] = get_input(rbuf, 1);
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
15 src[2] = get_input(rbuf, 2);
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
16
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
17 if (global_get(TEXTURE_ID)) {
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
18 return 0;
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
19 } else {
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
20 //タスクが共有できる領域確保
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
21 void *data = global_alloc(TEXTURE_ID, MAX_LOAD_SIZE*3);
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
22
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
23 memcpy(data, src[0], MAX_LOAD_SIZE);
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
24 memcpy((void*)((int)data + MAX_LOAD_SIZE), src[1], MAX_LOAD_SIZE);
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
25 memcpy((void*)((int)data + MAX_LOAD_SIZE*2), src[2], MAX_LOAD_SIZE);
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
26 }
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
27
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
28 return 0;
028ffc9c0375 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
29 }