view TaskManager/Test/test_render/task/Set_Texture.cpp @ 120:13b43de5ef5d draft

fix Load Texture
author gongo@gendarme.local
date Tue, 25 Nov 2008 00:18:49 +0900
parents 028ffc9c0375
children 9738837c225c
line wrap: on
line source

#include <string.h>
#include "Set_Texture.h"
#include "texture.h"

SchedDefineTask(SetTexture);

//texture をglobal 領域にコピーするタスク
int 
SetTexture::run(void *rbuf, void *wbuf)
{
    void *src[4];
    
    src[0] = get_input(rbuf, 0);
    src[1] = get_input(rbuf, 1);
    src[2] = get_input(rbuf, 2);
    src[3] = get_input(rbuf, 3);
    
    if (global_get(TEXTURE_ID)) {
	return 0;
    } else {
	//タスクが共有できる領域確保
	void *data = global_alloc(TEXTURE_ID, MAX_LOAD_SIZE*4);

	memcpy(data, src[0], MAX_LOAD_SIZE);
	memcpy((void*)((int)data + MAX_LOAD_SIZE), src[1], MAX_LOAD_SIZE);
	memcpy((void*)((int)data + MAX_LOAD_SIZE*2), src[2], MAX_LOAD_SIZE);
	memcpy((void*)((int)data + MAX_LOAD_SIZE*3), src[3], MAX_LOAD_SIZE);
    }

    return 0;
}