Pyrogenesis  13997
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Macros | Functions
app_hooks.h File Reference
#include "lib/os_path.h"

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))

Definition at line 207 of file app_hooks.h.

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.

Definition at line 156 of file app_hooks.cpp.

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.

Definition at line 176 of file app_hooks.cpp.

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. '/').

Definition at line 151 of file app_hooks.cpp.

void ah_log ( const wchar_t text)

write text to the app's log.

Parameters
textto write.

the default implementation uses stdout.

Definition at line 171 of file app_hooks.cpp.

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.

Definition at line 145 of file app_hooks.cpp.

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.

Definition at line 161 of file app_hooks.cpp.

void ah_translate_free ( const wchar_t text)

free text that was returned by translate.

Parameters
textto free.

the default implementation does nothing.

Definition at line 166 of file app_hooks.cpp.

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.

Definition at line 129 of file app_hooks.cpp.

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).

Definition at line 115 of file app_hooks.cpp.