view Renderer/Engine/task/AllocateSegment.cc @ 1162:8917aff8629c draft

global allocate
author Yutaka_Kinjyo
date Thu, 05 May 2011 13:11:59 +0900
parents Renderer/Engine/task/Load_Texture.cc@63a08f3a468a
children d7637cb85bd8
line wrap: on
line source

#include <stdlib.h>
#include <string.h>
#include "AllocateSegment.h"
#include "task_texture.h"
#include "Func.h"
#include "Tapestry.h"
#include "polygon_pack.h"
#include "SpanPack.h"

SchedDefineTask(AllocateSegment);

/**
 * 各種 MemorySegment の用意はここでするのか?
 * いづれは、MemorySegment は大きく最初にガバっと領域を確保
 * MemorySegment は可変な大きさになって、要求したサイズだけ、poolから領域を与える。。
 * みたいな感じか。Cell以外のアーキテクチャではどうなんだろう。Segmentを管理ってのは必須なのか
 */

static int
run(SchedTask *smanager, void *rbuf , void *wbuf)
{
    MemList *ml = smanager->createMemList(sizeof(uint32) * TEXTURE_BLOCK_SIZE, MAX_TILE);
    smanager->global_set(GLOBAL_TILE_LIST, (void *)ml);

    ml = smanager->createMemList(sizeof(PolygonPack), POLYGONPACK_SEGMENT_NUM);
    smanager->global_set(GLOBAL_POLYGONPACK_LIST, (void *)ml);

    ml = smanager->createMemList(sizeof(SpanPack), SPANPACK_SEGMENT_NUM);
    smanager->global_set(GLOBAL_SPANPACK_LIST, (void *)ml);


    return 0;
}