本文整理汇总了C++中CFileHandler::Open方法的典型用法代码示例。如果您正苦于以下问题:C++ CFileHandler::Open方法的具体用法?C++ CFileHandler::Open怎么用?C++ CFileHandler::Open使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CFileHandler
的用法示例。
在下文中一共展示了CFileHandler::Open方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: sizeof
void CTileHandler::ProcessTiles2(void)
{
unsigned char* data=new unsigned char[1024*1024*4];
bigTex=CBitmap(data,1,1); /// /free big tex memory
int tilex=xsize/4;
int tiley=ysize/4;
for(int a=0;a<(tilex*tiley)/1024;++a){
int startTile=a*1024;
char name[100];
DDSURFACEDESC2 ddsheader;
int ddssignature;
CFileHandler file;
if (prog == "nvdxt.exe " || prog == "nvcompress.exe " || prog == "texconv.exe " || prog == "old_nvdxt.exe "){
sprintf(name,"Temp%03i.dds",a);
file.Open(name);
file.Read(&ddssignature, sizeof(int));
file.Read(&ddsheader, sizeof(DDSURFACEDESC2));
}
if (prog == "texcompress.exe "){
sprintf(name, "temp\\Temp%03i.png.raw", a);
file.Open(name);
}
char bigtile[696320]; // /1024x1024 and 4 mipmaps
file.Read(bigtile, 696320);
for(int b=0;b<1024;++b){
int x=b%32;
int y=b/32;
int xb=(startTile+b)%tilex;
int yb=(startTile+b)/tilex;
char* ctile=new char[SMALL_TILE_SIZE];
ReadTile(x*32,y*32,ctile,bigtile);
CBitmap* bm=new CBitmap();
bm->CreateFromDXT1((unsigned char*)ctile,32,32);
int t1=tileUse[max(0,(yb-1)*tilex+xb)];
int t2=tileUse[max(0,yb*tilex+xb-1)];
int ct=FindCloseTile(bm,t1==t2?t1:-1);
if(ct==-1){
tileUse[yb*tilex+xb]=usedTiles;
tiles[usedTiles++]=bm;
newTiles.push_back(ctile);
} else {
tileUse[yb*tilex+xb]=ct;
delete bm;
delete[] ctile;
}
}
printf("Creating tiles %i/%i %i%%\n", usedTiles-numExternalTile,(a+1)*1024,(((a+1)*1024)*100)/(tilex*tiley));
}
delete[] data;
}