<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>PhysicsFS integration</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="generator" content="pandoc" /> <link rel="stylesheet" href="pandoc.css" type="text/css" /> <script type="text/javascript" src="autosuggest.js"></script> <script type="text/javascript" src="search_index.js"></script> </head> <body> <div class="sidebar"> <div><ul ><li ><a href="index.html" ><strong >Contents</strong ></a ></li ><li ><a href="config.html" >Configuration files</a ></li ><li ><a href="display.html" >Display</a ></li ><li ><a href="events.html" >Events</a ></li ><li ><a href="file.html" >File I/O</a ></li ><li ><a href="fshook.html" >Filesystem</a ></li ><li ><a href="fixed.html" >Fixed point math</a ></li ><li ><a href="graphics.html" >Graphics</a ></li ><li ><a href="joystick.html" >Joystick</a ></li ><li ><a href="keyboard.html" >Keyboard</a ></li ><li ><a href="memory.html" >Memory</a ></li ><li ><a href="mouse.html" >Mouse</a ></li ><li ><a href="path.html" >Path</a ></li ><li ><a href="state.html" >State</a ></li ><li ><a href="system.html" >System</a ></li ><li ><a href="threads.html" >Threads</a ></li ><li ><a href="time.html" >Time</a ></li ><li ><a href="timer.html" >Timer</a ></li ><li ><a href="transformations.html" >Transformations</a ></li ><li ><a href="utf8.html" >UTF-8</a ></li ><li ><a href="misc.html" >Miscellaneous</a ></li ><li ><a href="platform.html" >Platform-specific</a ></li ><li ><a href="direct3d.html" >Direct3D</a ></li ><li ><a href="opengl.html" >OpenGL</a ></div> </li ></ul ><div><ul ><li ><a href="index.html#addons" ><strong >Addons</strong ></a ></li ><li ><a href="audio.html" >Audio addon</a ></li ><li ><a href="acodec.html" >Audio codecs</a ></li ><li ><a href="color.html" >Color addon</a ></li ><li ><a href="font.html" >Font addons</a ></li ><li ><a href="image.html" >Image I/O addon</a ></li ><li ><a href="memfile.html" >Memfile addon</a ></li ><li ><a href="native_dialog.html" >Native dialogs addon</a ></li ><li ><a href="physfs.html" >PhysicsFS addon</a ></li ><li ><a href="primitives.html" >Primitives addon</a ></div> </li ></ul ><div class="searchbox"> <script type="text/javascript"> function on_search(index, control) { for (i = 0; i < search_index.length; i++) { if (search_index[i] == control.keywords[index]) { break; } } location.href = search_urls[i]; } </script>Search<br /> <input type="text" name="q" id="q" size="15" autocomplete="off" /><br /><script type="text/javascript"> new autosuggest("q", search_index, null, on_search); </script> </div> </div> <div class="content"> <h1 class="title">PhysicsFS integration</h1> <div id="TOC" ><ul ><li ><a href="#al_set_physfs_file_interface" >al_set_physfs_file_interface</a ></li ><li ><a href="#al_get_allegro_physfs_version" >al_get_allegro_physfs_version</a ></li ></ul ></div > <p >PhysicsFS is a library to provide abstract access to various archives. See <a href="http://icculus.org/physfs/" ><code >http://icculus.org/physfs/</code ></a > for more information.</p ><p >This addon makes it possible to read and write files (on disk or inside archives) using PhysicsFS, through Allegro's file I/O API. For example, that means you can use the Image I/O addon to load images from .zip files.</p ><p >You must set up PhysicsFS through its own API. When you want to open an ALLEGRO_FILE using PhysicsFS, first call <a href="physfs.html#al_set_physfs_file_interface" >al_set_physfs_file_interface</a >, then <a href="file.html#al_fopen" >al_fopen</a > or another function that calls <a href="file.html#al_fopen" >al_fopen</a >.</p ><p >These functions are declared in the following header file. Link with allegro_physfs.</p ><pre ><code >#include <allegro5/allegro_physfs.h> </code ></pre ><h1 id="al_set_physfs_file_interface" ><a href="#TOC" >al_set_physfs_file_interface</a ></h1 ><pre ><code >void al_set_physfs_file_interface(void) </code ></pre ><p >After calling this, subsequent calls to <a href="file.html#al_fopen" >al_fopen</a > will be handled by PHYSFS_open(). Operations on the files returned by <a href="file.html#al_fopen" >al_fopen</a > will then be performed through PhysicsFS.</p ><p >At the same time, all filesystem functions like <a href="fshook.html#al_read_directory" >al_read_directory</a > or <a href="fshook.html#al_create_fs_entry" >al_create_fs_entry</a > will use PhysicsFS.</p ><p >This functions only affects the thread it was called from.</p ><p >To remember and restore another file I/O backend, you can use <a href="state.html#al_store_state" >al_store_state</a >/<a href="state.html#al_restore_state" >al_restore_state</a >.</p ><p >See also: <a href="file.html#al_set_new_file_interface" >al_set_new_file_interface</a >.</p ><h1 id="al_get_allegro_physfs_version" ><a href="#TOC" >al_get_allegro_physfs_version</a ></h1 ><pre ><code >uint32_t al_get_allegro_physfs_version(void) </code ></pre ><p >Returns the (compiled) version of the addon, in the same format as <a href="system.html#al_get_allegro_version" >al_get_allegro_version</a >.</p > <p class="timestamp"> Allegro version 5.0.3 - Last updated: 2011-05-22 02:32:09 UTC </p> </div> </body> </html>