示例#1
0
bool trpgwImageHelper::AddLocal(char *name,trpgTexture::ImageType type,int sizeX,int sizeY,
                                bool isMipmap,char *data,int &texID,bool deferWrite)
{
    // Set up the basic texture
    trpgTexture tex;
    if(texID!=-1)
        tex.SetHandle(texID);
    tex.SetName(name);
    tex.SetImageMode(trpgTexture::Local);
    tex.SetImageType(type);
    int depth;
    tex.GetImageDepth(depth);
    tex.SetNumLayer(depth);
    tex.SetImageSize(trpg2iPoint(sizeX,sizeY));
    tex.SetIsMipmap(isMipmap);

    // Write the image out to disk
    trpgwAppAddress addr;
    if(!deferWrite)
        if (!WriteToArchive(tex,data,addr,true))
            return false;

    // Now add the specifics to the texture table
    tex.SetImageAddr(addr);
    texID = texTable->AddTexture(tex);

    return true;
}
示例#2
0
bool trpgwImageHelper::AddTileLocal(char *name, trpgTexture::ImageType type, int sizeX, int sizeY,
                                    bool isMipmap, char *data, int &texID, trpgwAppAddress &addr)
{
    // Set up the texture template and add to the table
    trpgTexture tex;

    if (texID != -1)
        tex.SetHandle(texID);

    tex.SetName(name);
    tex.SetImageMode(trpgTexture::Template);
    tex.SetImageType(type);
    int depth;
    tex.GetImageDepth(depth);
    tex.SetNumLayer(depth);
    tex.SetImageSize(trpg2iPoint(sizeX, sizeY));
    tex.SetIsMipmap(isMipmap);
    texID = texTable->FindAddTexture(tex);

    // Write the specific data out to an archive (return the address)
    if (!WriteToArchive(tex, data, addr, false))
        return false;


    return true;
}