Pyrogenesis  trunk
Classes | Macros | Functions
app_hooks.h File Reference
#include "lib/os_path.h"
Include dependency graph for app_hooks.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  AppHooks
 holds a function pointer (allowed to be NULL) for each hook. More...
 

Macros

#define AH_IS_DEFINED(name)   app_hook_was_redefined(offsetof(AppHooks, name))
 

Functions

void ah_override_gl_upload_caps ()
 override default decision on using OpenGL extensions relating to texture upload. More...
 
const OsPathah_get_log_dir ()
 return path to directory into which crash dumps should be written. More...
 
void ah_bundle_logs (FILE *f)
 gather all app-related logs/information and write it to file. More...
 
const wchar_tah_translate (const wchar_t *text)
 translate text to the current locale. More...
 
void ah_translate_free (const wchar_t *text)
 free text that was returned by translate. More...
 
void ah_log (const wchar_t *text)
 write text to the app's log. More...
 
ErrorReactionInternal ah_display_error (const wchar_t *text, size_t flags)
 display an error dialog, thus overriding sys_display_error. More...
 
LIB_API void app_hooks_update (AppHooks *ah)
 update the app hook function pointers. More...
 
bool app_hook_was_redefined (size_t offset_in_struct)
 was the app hook changed via app_hooks_update from its default value? More...
 

Macro Definition Documentation

#define AH_IS_DEFINED (   name)    app_hook_was_redefined(offsetof(AppHooks, name))

Function Documentation

void ah_bundle_logs ( FILE *  f)

gather all app-related logs/information and write it to file.

used when writing a crash log so that all relevant info is in one file.

the default implementation attempts to gather 0ad data, but is fail-safe (doesn't complain if file not found).

Parameters
ffile into which to write.
ErrorReactionInternal ah_display_error ( const wchar_t text,
size_t  flags 
)

display an error dialog, thus overriding sys_display_error.

Parameters
texterror message.
flagssee DebugDisplayErrorFlags.
Returns
ErrorReactionInternal.

the default implementation just returns ERI_NOT_IMPLEMENTED, which causes the normal sys_display_error to be used.

const OsPath& ah_get_log_dir ( )

return path to directory into which crash dumps should be written.

must be callable at any time - in particular, before VFS init. paths are typically relative to sys_ExecutablePathname.

Returns
path ending with directory separator (e.g. '/').
void ah_log ( const wchar_t text)

write text to the app's log.

Parameters
textto write.

the default implementation uses stdout.

void ah_override_gl_upload_caps ( )

override default decision on using OpenGL extensions relating to texture upload.

this should call ogl_tex_override to disable/force their use if the current card/driver combo respectively crashes or supports it even though the extension isn't advertised.

the default implementation works but is hardwired in code and therefore not expandable.

const wchar_t* ah_translate ( const wchar_t text)

translate text to the current locale.

Parameters
textto translate.
Returns
pointer to localized text; must be freed via translate_free.

the default implementation just returns the pointer unchanged.

void ah_translate_free ( const wchar_t text)

free text that was returned by translate.

Parameters
textto free.

the default implementation does nothing.

bool app_hook_was_redefined ( size_t  offset_in_struct)

was the app hook changed via app_hooks_update from its default value?

Parameters
offset_in_structbyte offset within AppHooks (determined via offsetof) of the app hook function pointer.
LIB_API void app_hooks_update ( AppHooks ah)

update the app hook function pointers.

Parameters
ahAppHooks struct. any of its function pointers that are non-zero override the previous function pointer value (these default to the stub hooks which are functional but basic).