コード例 #1
0
			void TypeDescriptorImpl::Load()
			{
				if(!loaded)
				{
					loaded=true;
					LoadInternal();
				}
			}
コード例 #2
0
NS_IMETHODIMP mozPersonalDictionary::Load()
{
  nsresult rv = LoadInternal();

  if (NS_FAILED(rv)) {
    mIsLoaded = true;
  }

  return rv;
}
コード例 #3
0
void TextureLoader::Load(std::shared_ptr<Stream::IStream> spStream, const CString& cszExtensionWithDot,
   std::shared_ptr<Texture> spTexture, bool bGenerateMipmap)
{
   std::shared_ptr<IImageReader> spImageReader = SelectImageReader(cszExtensionWithDot);

   if (spImageReader == NULL)
      throw Exception(_T("image file type not supported; extension: ") + cszExtensionWithDot, __FILE__, __LINE__);

   LoadInternal(spStream, spImageReader, spTexture, bGenerateMipmap);
}
コード例 #4
0
void TextureLoader::Load(const CString& cszFilename, std::shared_ptr<Texture> spTexture, bool bGenerateMipmap)
{
   ATLASSERT(spTexture != nullptr);

   std::shared_ptr<IImageReader> spImageReader = SelectImageReader(cszFilename.Right(4));

   if (spImageReader == NULL)
      throw Exception(_T("image file type not supported; filename: ") + cszFilename, __FILE__, __LINE__);

   std::shared_ptr<Stream::IStream> spStream = m_fileSystem.OpenFile(cszFilename, true);

   LoadInternal(spStream, spImageReader, spTexture, bGenerateMipmap);
}
コード例 #5
0
bool CGbaLoader::Load(bool aForce,bool aNotStart)
{
  if(!expansion().IsValid()) return false;
  bool load=false,nor=false;
  struct stat st;
  if(-1==stat(iFileName.c_str(),&st))
  {
    return false;
  }
  iSize=st.st_size;
  if(iSize>MAX_PSRAM)
  {
    nor=true;
  }
  else if(iSize>MAX_NOR)
  {
    akui::messageBox( NULL, LANG("gba warn", "title"), LANG("gba warn", "text"), MB_OK );
    return false;
  }

  FILE* gbaFile=fopen(iFileName.c_str(),"rb");
  if(gbaFile)
  {
    sGBAHeader header;
    fread(&header,1,sizeof(header),gbaFile);
    fclose(gbaFile);
    if(header.is96h==0x96)
    {
      load=LoadInternal(nor,aForce);
    }
  }
  if(!aNotStart&&load&&!CheckLink())
  {
    StartGBA();
  }
  return load;
}
コード例 #6
0
ファイル: XmlFileUtil.cpp プロジェクト: AratnitY/stepmania
void XmlFileUtil::Load( XNode *pNode, const RString &sXml, RString &sErrorOut )
{
	InitEntities();
	LoadInternal( pNode, sXml, sErrorOut, 0 );
}
コード例 #7
0
PSFTags PSFLoader::Load(uint8 version, uint32 max_exe_size, MDFNFILE *fp)
{
 return(LoadInternal(version, max_exe_size, fp, 0, false));
}
コード例 #8
0
PSFTags PSFLoader::LoadInternal(uint8 version, uint32 max_exe_size, MDFNFILE *fp, uint32 level, bool force_ignore_pcsp)
{
 uint32 reserved_size, compressed_size, compressed_crc32;
 bool _lib_present = false;
 PSFTags tags;

 std::vector<uint8> decompress_buffer;
 uLongf decompress_len;

 if(!TestMagic(version, fp))
  throw(MDFN_Error(0, _("Not a PSF(version=0x%02x) file!"), version));

 reserved_size = MDFN_de32lsb(fp->data + 4);
 compressed_size = MDFN_de32lsb(fp->data + 8);
 compressed_crc32 = MDFN_de32lsb(fp->data + 12);

 if(fp->size < (16 + reserved_size + compressed_size))
  throw(MDFN_Error(0, _("PSF is missing at least %u bytes of data!"), 16 + reserved_size + compressed_size - fp->size));

 if(crc32(0, fp->data + 16 + reserved_size, compressed_size) != compressed_crc32)
  throw(MDFN_Error(0, _("PSF compressed CRC32 mismatch(data is corrupt)!")));


 {
  const uint8 *tag_section = fp->data + 16 + reserved_size + compressed_size;
  uint32 tag_section_size = fp->size - 16 - reserved_size - compressed_size;

  if(tag_section_size > 5 && !memcmp(tag_section, "[TAG]", 5))
   tags.LoadTags(tag_section + 5, tag_section_size - 5);
 }

 //
 // Handle minipsf simple _lib
 //

 if(level < 15)
 {
  if(tags.TagExists("_lib"))
  {
   std::string tp = tags.GetTag("_lib");

   if(!MDFN_IsFIROPSafe(tp))
   {
    throw(MDFN_Error(0, _("Referenced path \"%s\" is potentially unsafe.  See \"filesys.untrusted_fip_check\" setting."), tp.c_str()));
   }

   MDFNFILE subfile(MDFN_MakeFName(MDFNMKF_AUX, 0, tp.c_str()).c_str(), NULL, NULL);

   LoadInternal(version, max_exe_size, &subfile, level + 1);

   _lib_present = true;
  }
 }

 //
 //
 //

 decompress_buffer.resize(max_exe_size);
 decompress_len = max_exe_size;
 switch( uncompress((Bytef *)&decompress_buffer[0], &decompress_len, (const Bytef *)(fp->data + 16 + reserved_size), compressed_size) )
 {
  default:
	throw(MDFN_Error(0, "zlib unknown error"));

  case Z_OK: break;

  case Z_MEM_ERROR:
	throw(MDFN_Error(0, "zlib Z_MEM_ERROR"));

  case Z_BUF_ERROR:
	throw(MDFN_Error(0, _("PSF decompressed size exceeds maximum allowed!")));

  case Z_DATA_ERROR:
	throw(MDFN_Error(0, _("PSF compressed data is bad.")));
 }

 HandleReserved(fp->data + 16, reserved_size);
 HandleEXE(&decompress_buffer[0], decompress_len, force_ignore_pcsp | _lib_present);
 decompress_buffer.resize(0);

 //
 // handle libN
 //
 if(level < 15)
 {
  for(unsigned int n = 2; n <= INT_MAX; n++)
  {
   char tmpbuf[32];

   trio_snprintf(tmpbuf, 32, "_lib%d", (int)n);

   if(tags.TagExists(tmpbuf))
   {
    MDFNFILE subfile(MDFN_MakeFName(MDFNMKF_AUX, 0, tags.GetTag(tmpbuf).c_str()).c_str(), NULL, NULL);

    LoadInternal(version, max_exe_size, &subfile, level + 1, true);
   }
   else
    break;   
  }
 }

 return(tags);
}