当前位置: 首页>>代码示例>>C++>>正文


C++ JSONElement::size方法代码示例

本文整理汇总了C++中JSONElement::size方法的典型用法代码示例。如果您正苦于以下问题:C++ JSONElement::size方法的具体用法?C++ JSONElement::size怎么用?C++ JSONElement::size使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在JSONElement的用法示例。


在下文中一共展示了JSONElement::size方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: compile

	void compile(const char* path, CompileOptions& opts)
	{
		Buffer buf = opts.read(path);
		JSONParser json(buf);
		JSONElement root = json.root();

		JSONElement texture  = root.key_or_nil("texture");
		JSONElement script   = root.key_or_nil("lua");
		JSONElement sound    = root.key_or_nil("sound");
		JSONElement mesh     = root.key_or_nil("mesh");
		JSONElement unit     = root.key_or_nil("unit");
		JSONElement sprite   = root.key_or_nil("sprite");
		JSONElement physics  = root.key_or_nil("physics");
		JSONElement material = root.key_or_nil("material");
		JSONElement font     = root.key_or_nil("font");
		JSONElement level    = root.key_or_nil("level");
		JSONElement phyconf  = root.key_or_nil("physics_config");
		JSONElement shader   = root.key_or_nil("shader");
		JSONElement sprite_animation = root.key_or_nil("sprite_animation");

		const uint32_t num_textures  = texture.is_nil() ? 0 : texture.size();
		const uint32_t num_scripts   = script.is_nil() ? 0 : script.size();
		const uint32_t num_sounds    = sound.is_nil() ? 0 : sound.size();
		const uint32_t num_meshes    = mesh.is_nil() ? 0 : mesh.size();
		const uint32_t num_units     = unit.is_nil() ? 0 : unit.size();
		const uint32_t num_sprites   = sprite.is_nil() ? 0 : sprite.size();
		const uint32_t num_physics   = physics.is_nil() ? 0 : physics.size();
		const uint32_t num_materials = material.is_nil() ? 0 : material.size();
		const uint32_t num_fonts     = font.is_nil() ? 0 : font.size();
		const uint32_t num_levels    = level.is_nil() ? 0 : level.size();
		const uint32_t num_phyconfs  = phyconf.is_nil() ? 0 : phyconf.size();
		const uint32_t num_shaders   = shader.is_nil() ? 0 : shader.size();
		const uint32_t num_sprite_animations = sprite_animation.is_nil() ? 0 : sprite_animation.size();

		// Write header
		opts.write(PACKAGE_VERSION);
		opts.write(num_textures);
		uint32_t offt = sizeof(PackageResource);
		opts.write(offt);

		opts.write(num_scripts);
		offt += sizeof(StringId64) * num_textures;
		opts.write(offt);

		opts.write(num_sounds);
		offt += sizeof(StringId64) * num_scripts;
		opts.write(offt);

		opts.write(num_meshes);
		offt += sizeof(StringId64) * num_sounds;
		opts.write(offt);

		opts.write(num_units);
		offt += sizeof(StringId64) * num_meshes;
		opts.write(offt);

		opts.write(num_sprites);
		offt += sizeof(StringId64) * num_units;
		opts.write(offt);

		opts.write(num_physics);
		offt += sizeof(StringId64) * num_sprites;
		opts.write(offt);

		opts.write(num_materials);
		offt += sizeof(StringId64) * num_physics;
		opts.write(offt);

		opts.write(num_fonts);
		offt += sizeof(StringId64) * num_materials;
		opts.write(offt);

		opts.write(num_levels);
		offt += sizeof(StringId64) * num_fonts;
		opts.write(offt);

		opts.write(num_phyconfs);
		offt += sizeof(StringId64) * num_levels;
		opts.write(offt);

		opts.write(num_shaders);
		offt += sizeof(StringId64) * num_phyconfs;
		opts.write(offt);

		opts.write(num_sprite_animations);
		offt += sizeof(StringId64) * num_shaders;
		opts.write(offt);

		// Write resource ids
		for (uint32_t i = 0; i < num_textures; i++)
			opts.write(texture[i].to_resource_id());

		for (uint32_t i = 0; i < num_scripts; i++)
			opts.write(script[i].to_resource_id());

		for (uint32_t i = 0; i < num_sounds; i++)
			opts.write(sound[i].to_resource_id());

		for (uint32_t i = 0; i < num_meshes; i++)
			opts.write(mesh[i].to_resource_id());
//.........这里部分代码省略.........
开发者ID:RobertoMalatesta,项目名称:crown,代码行数:101,代码来源:package_resource.cpp


注:本文中的JSONElement::size方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。