view TaskManager/Test/test_render/Tapestry.h @ 132:e7c80537b6aa

add XML
author gongo@charles.cr.ie.u-ryukyu.ac.jp
date Tue, 25 Nov 2008 18:19:53 +0900
parents e2b1c795525e
children c8b868871dce
line wrap: on
line source

#ifndef INCLUDED_TAPESTRY
#define INCLUDED_TAPESTRY

/**
 * image file name と tapestry DB の binary tree
 *
 * // PPE
 * main memory の tapestry DB (Array)
 * tapestry DB への accessor 
 *
 *   TapestryPtr getTapestry(int TapestryID);
 *   TilePtr getTile(TapestryPtr tapsetry, int tx, int ty, int scale);
 *
 * SPE が生成する tapestry List (in CreateSpan)
 *   (no texture image)
 *   @in  TapestryDBPtr, Tapestry ID, x, y, tx, ty, px, py
 *     x, y   : polygon の中の平面座標
 *     tx, ty : texture の座標
 *     px, py : texture の分割数
 *
 *   @out (TilePtr, tix1, tiy1, tix2, tiy2)*
 * 
 *
 * SPE に渡す tapestry List
 *   @in Tile
 *
 * // SPE
 * SPE 内部での tapestry DB (Hash)
 *   TapestryID, scale, TilePtr, Tile
 *
 *
 * SPE 内部での tapestry DB への accessor
 *   TileEntryPtr getTile(int TapestryID, int tx, int ty, int scale);
 *
 *   if (TileEntry == NULL) {
 *      DMA read
 *   }
 *  
 *
 * Rendering
 *   1pass Zbuffer と Texture の有無の判定
 *     if (zbuffer ok) {
 *       if (texture ある) {
 *         zbuffer 、linebunf に書き込む
 *       } else {
 *         texture の load list に加える
 *         zbuffer だけ更新しておく
 *       }
 *     } else {
 *       無視
 *     }
 *
 *    1pass で texture が一杯になったら、中断して
 *    ここまでのを書き込んどけ
 *
 *
 *    2pass rgb の書き込み
 *
 *    if (zbuffer の値が自分と一緒) {
 *       read した texture みて
 *       書き込め!
 *    }
 *
 */
struct texture_block {
    
};
#if 0
struct TileList {
    TilePtr tile;
    int tix1, tiy1, tix2, tiy2;
};
#endif
#endif