Home | All Classes | Grouped Classes | Index | Search

Class CL_ResourceManager

The ClanLib resource manager. More...

Derived from: none
Derived by: none
Group: Core (Resources)

#include <ClanLib/core.h>

Construction:

CL_ResourceManager

Resource Manager constructor.

Attributes:

exists

Returns true if a resource exists.

get_resource

Returns a pointer to the CL_Resource representing the given resource.

get_all_resources

Returns a list of all resources available.

get_all_sections

Returns a list of all resource sections available.

get_sections

Returns a list of the resource sections immediately under the given secion.

get_resources_of_type

Returns a list of all resources available matching a given type.

get_resource_provider

Returns a pointer to the input source provider, in which all resources are stored.

Signals:

sig_resource_added

Signal invoked when a resource is added during loading of a resource file.

Operations:

operator ==

Returns true resource managers handles the same object.

add_resources

Add resources from an other resource manager.

remove_resources

Remove resources from an other resource manager.

load_all

Loads all resources into memory.

unload_all

Unloads all resources from memory.

load_section

Loads all resources in a given section into memory.

unload_section

Unloads all resources in a given section into memory.

Detailed description:

!group=Core/Resources! !header=core.h!

The resource manager is used to retrieve resources from a given resource source.

This can either be a resource script file (used as input to the datafile compiler), or a datafile with all the resources included into one large gzipped resource file.

To speedup loading of resources in a game, you can load entire sections of resources at once. When a resource in the section is requested, it is returned instantly without having to access the disk. This is especially useful to make sure all the game resources are loaded before the game is started.

Resources are normally not retrieved using the get_resource() function. Instead, you should load the resource using the appropiate resource type class. For instance, a surface is easiest loaded like this:

  CL_ResourceManager res_manager("my_datafile.dat", true);
  CL_Surface my_surface("my_surface", &res_manager);
  

Getting the same resource twice won't create a new instance of the resource; they are reference counted.



Questions or comments, write to the
ClanLib mailing list.