本文整理汇总了C++中Asset::Close方法的典型用法代码示例。如果您正苦于以下问题:C++ Asset::Close方法的具体用法?C++ Asset::Close怎么用?C++ Asset::Close使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Asset
的用法示例。
在下文中一共展示了Asset::Close方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
ImageFormat_PNG::ImageFormat_PNG(const Asset& asset):
png_ptr_(0),
info_ptr_(0)
{
if (asset.Open())
{
png_ptr_ = png_create_read_struct(PNG_LIBPNG_VER_STRING, 0, 0, 0);
Assert(png_ptr_,"Couldn't create png read struct");
if (!png_ptr_)
{
return;
}
info_ptr_ = png_create_info_struct((png_structp)png_ptr_);
Assert(info_ptr_,"Couldn't create png info struct");
if (!info_ptr_)
{
png_destroy_read_struct((png_structpp)&png_ptr_, 0,0);
return;
}
png_set_read_fn(static_cast<png_structp>(png_ptr_), const_cast<Asset*>(&asset), png_user_read_fn);
png_read_png(static_cast<png_structp>(png_ptr_), static_cast<png_infop>(info_ptr_), /*PNG_TRANSFORM_STRIP_16|*/PNG_TRANSFORM_EXPAND|PNG_TRANSFORM_BGR, 0);
asset.Close();
}
}
示例2: TestAsset
bool ImageFormat_TGA::TestAsset(const Asset& asset)
{
// Check if the footer says that this is a TGA file
if (asset.Open())
{
asset.Seek(-18,Asset::SEEK_FROM_END);
char buffer[16];
asset.Read(buffer,16);
asset.Close();
if (StrNCmp(buffer,"TRUEVISION-XFILE",16)==0)
{
return true;
}
}
// If the footer doesn't match, this might still be a tga file (version < 2)
// so try and load it as a tga and see if it works...
int size=asset.GetSize();
char* buffer=new char[size];
asset.Open();
asset.Read(buffer,size);
asset.Close();
tga_image image;
tga_read_from_Buffer(&image,buffer);
delete[] buffer;
// Check to see if the header data makes sense...
if (image.width<32767 && image.height<32767 && image.image_data && (image.pixel_depth==8 || image.pixel_depth==24 || image.pixel_depth==16 || image.pixel_depth==32))
{
// Yeah, sure, this looks like proper data, so give thumbs up and hope for the best
return true;
}
tga_free_buffers(&image);
// Nope, not likely to be a TGA
return false;
}
示例3:
void Bitmap_RLE8::Save(Asset& asset) const
{
if (asset.Create())
{
asset.Write(Pixie_Rle_Header,StrLen(Pixie_Rle_Header));
int version=0;
asset.Write(&version);
int celCount=1;
asset.Write(&celCount);
WriteToAsset(&asset);
asset.Close();
}
}
示例4:
ImageFormat_TGA::ImageFormat_TGA(const Asset& asset):
image_(0)
{
int size=asset.GetSize();
char* buffer=new char[size];
asset.Open();
asset.Read(buffer,size);
asset.Close();
image_=new tga_image;
tga_read_from_Buffer(static_cast<tga_image*>(image_),buffer);
delete[] buffer;
}
示例5: TestAsset
bool AudioFormat_YM::TestAsset(const Asset& asset)
{
if (asset.Open())
{
char buffer[7];
asset.Read(buffer,7);
asset.Close();
if (StrNCmp(&buffer[2],"-lh5-",5)==0 || StrNCmp(buffer,"YM3!",4)==0)
{
return true;
}
}
return false;
}
示例6: TestAsset
bool ImageFormat_GIF::TestAsset(const Asset& asset)
{
if (asset.Open())
{
char buffer[3];
asset.Read(buffer,3);
asset.Close();
if (StrNCmp(buffer,"GIF",3)==0)
{
return true;
}
}
return false;
}
示例7: TestAsset
bool ImageFormat_PNG::TestAsset(const Asset& asset)
{
// Check if the header matches PNG files
if (asset.Open())
{
unsigned char pngheader[]={137,80,78,71,13,10,26,10};
unsigned char buffer[8];
asset.Read(buffer,8);
asset.Close();
if (MemCmp(buffer,pngheader,8)==0)
{
return true;
}
}
return false;
}
示例8: CYmMusic
AudioFormat_YM::AudioFormat_YM(const Asset& asset):
ymFile_(0),
chunkStart_(0),
chunkEnd_(0)
{
if (asset.Open())
{
int size=asset.GetSize();
unsigned char* buffer=static_cast<unsigned char*>(Malloc(size));
asset.Read(buffer,size);
asset.Close();
ymFile_=new CYmMusic();
ymFile_->loadMemory(buffer,size);
ymFile_->setLoopMode(true);
ymFile_->play();
Free(buffer);
}
// Report missing file
#ifdef _DEBUG
else
{
const char* filename=asset.GetFilename().GetString();
if (filename)
{
char errorMessage[1024];
SNPrintF(errorMessage,1024,"File not found: %s",filename);
Assert(false,errorMessage);
}
else
{
Assert(false,"An asset could not be accessed.");
}
}
#endif
}