cssysdef.h File Reference
This file should be #included before any other Crystal Space header files. More...
#include "csdef.h"
#include "csutil/csosdefs.h"
#include "csextern.h"
#include <stdio.h>
Go to the source code of this file.
Defines | |
#define | __attribute__(x) |
#define | _CS_IMPLICITPTRCAST_NAME __ImplicitPtrCast |
#define | CS_ALIGNED_MEMBER(Member, Align) Member __attribute((aligned(Align))) |
Macro to align a class member (or local variable) to a specific byte boundary. | |
#define | CS_ALLOC_STACK_ARRAY(type, var, size) type var [size] |
Dynamic stack memory allocation. | |
#define | CS_ASSERT(x) (void)0 |
Assertion. | |
#define | CS_ASSERT_MSG(m, x) (void)0 |
Same as CS_ASSERT(expr), but additionally prints msg to stderr . | |
#define | CS_CONST_METHOD |
Use the CS_CONST_METHOD macro in front of method declarations to indicate that they are "constant", i.e., they only look at the values of their parameters and have no side effects. | |
#define | CS_DEBUG_BREAK |
Stops program execution and break into debugger, if present - otherwise, probably just throws an exception/signal (ie crashes). | |
#define | CS_DECLARE_DEFAULT_STATIC_VARIABLE_REGISTRATION |
#define | CS_DECLARE_STATIC_CLASSVAR(var, getterFunc, Type) |
Declare a static variable inside a class. | |
#define | CS_DECLARE_STATIC_CLASSVAR_REF(var, getterFunc, Type) |
#define | CS_DECLARE_STATIC_VARIABLE_REGISTRATION(func) void func (void (*p)()) |
#define | CS_DEFINE_STATIC_VARIABLE_REGISTRATION(func) csStaticVarCleanupFN csStaticVarCleanup = &func |
#define | CS_DEFINE_STATICALLY_LINKED_FLAG bool scfStaticallyLinked = false; |
Define the scfStaticallyLinked variable. | |
#define | CS_DEPRECATED_METHOD |
Use the CS_DEPRECATED_METHOD macro in front of method declarations to indicate that they are deprecated. | |
#define | CS_DEPRECATED_TYPE |
Use the CS_DEPRECATED_TYPE macro after type declarations to indicate that they are deprecated. | |
#define | CS_EXPORT_SYM_DLL |
#define | CS_EXPORTED_FUNCTION extern "C" CS_EXPORT_SYM_DLL |
#define | CS_EXPORTED_NAME(Prefix, Suffix) Prefix ## Suffix |
#define | CS_FUNCTION_NAME __PRETTY_FUNCTION__ |
Macro that resolves to a compiler-specific variable or string that contains the name of the current function. | |
#define | CS_GNUC_PRINTF(format_idx, arg_idx) |
#define | CS_GNUC_SCANF(format_idx, arg_idx) |
#define | CS_HEADER_GLOBAL(X, Y) CS_HEADER_GLOBAL_COMPOSE(X,Y) |
The CS_HEADER_GLOBAL() macro composes a pathname from two components and wraps the path in `<' and `>'. | |
#define | CS_HEADER_GLOBAL_COMPOSE(X, Y) <X/Y> |
#define | CS_HEADER_LOCAL(X, Y) CS_HEADER_LOCAL_COMPOSE1(X,Y) |
The CS_HEADER_LOCAL() macro composes a pathname from two components and wraps the path in double-quotes. | |
#define | CS_HEADER_LOCAL_COMPOSE1(X, Y) CS_HEADER_LOCAL_COMPOSE2(X/Y) |
#define | CS_HEADER_LOCAL_COMPOSE2(X) #X |
#define | CS_IMPLEMENT_APPLICATION |
The CS_IMPLEMENT_APPLICATION macro should be placed at the global scope in exactly one compilation unit comprising an application. | |
#define | CS_IMPLEMENT_FOREIGN_DLL |
The CS_IMPLEMENT_FOREIGN_DLL macro should be placed at the global scope in exactly one compilation unit comprising a foreign (non-Crystal Space) module. | |
#define | CS_IMPLEMENT_IMPLICIT_PTR_CAST(classname) |
Implements a static member function for a class which can be used to perform implicit pointer casts. | |
#define | CS_IMPLEMENT_PLUGIN |
The CS_IMPLEMENT_PLUGIN macro should be placed at the global scope in exactly one compilation unit comprising a plugin module. | |
#define | CS_IMPLEMENT_STATIC_CLASSVAR(Class, var, getterFunc, Type, initParam) CS_IMPLEMENT_STATIC_CLASSVAR_EXT(Class,var,getterFunc,Type,initParam,_kill) |
Create the static class variable that has been declared with CS_DECLARE_STATIC_CLASSVAR. | |
#define | CS_IMPLEMENT_STATIC_CLASSVAR_ARRAY(Class, var, getterFunc, Type, initParam) |
#define | CS_IMPLEMENT_STATIC_CLASSVAR_EXT(Class, var, getterFunc, Type, initParam, kill_how) |
#define | CS_IMPLEMENT_STATIC_CLASSVAR_REF(Class, var, getterFunc, Type, initParam) |
#define | CS_IMPLEMENT_STATIC_CLASSVAR_REF_ARRAY(Class, var, getterFunc, Type, initParam) |
#define | CS_IMPLEMENT_STATIC_CLASSVAR_REF_EXT(Class, var, getterFunc, Type, initParam, kill_how) |
#define | CS_IMPLEMENT_STATIC_VAR(getterFunc, Type, initParam) CS_IMPLEMENT_STATIC_VAR_EXT(getterFunc,Type,initParam,_kill) |
Implement a file-scoped static variable that is created on demand. | |
#define | CS_IMPLEMENT_STATIC_VAR_ARRAY(getterFunc, Type, initParam) CS_IMPLEMENT_STATIC_VAR_EXT(getterFunc,Type,initParam,_kill_array) |
#define | CS_IMPLEMENT_STATIC_VAR_EXT(getterFunc, Type, initParam, kill_how) |
#define | CS_IMPLEMENT_STATIC_VARIABLE_REGISTRATION(Name) |
#define | CS_IMPLICIT_PTR_CAST(classname, ptr) (classname::_CS_IMPLICITPTRCAST_NAME(ptr)) |
Perform a compiler implicit cast of a pointer to another pointer type using a static member function declared with the CS_IMPLEMENT_IMPLICIT_PTR_CAST macro. | |
#define | CS_IMPORT_SYM_DLL extern |
#define | CS_INITIALIZE_PLATFORM_APPLICATION |
Perform platform-specific application initializations. | |
#define | CS_MAXPATHLEN 1024 |
Maximum length of a filesystem pathname. | |
#define | CS_PURE_METHOD |
Use the CS_PURE_METHOD macro in front of method declarations to indicate that they are "pure", i.e., they look at their arguments and at global memory but do not have any side effects. | |
#define | CS_REGISTER_STATIC_FOR_DESTRUCTION(getterFunc) csStaticVarCleanup (getterFunc); |
Register a method that will destruct one static variable. | |
#define | CS_STATIC_VARIABLE_CLEANUP csStaticVarCleanup (0); |
Invoke the function that will call all destruction functions. | |
#define | CS_STRICT_ALIGNMENT |
#define | CS_STRING_TO_WIDE(x) CS_STRING_TO_WIDE_(x) |
Convert a string to a wide string. | |
#define | CS_STRING_TO_WIDE_(x) L ## x |
#define | CS_TEMP_DIR "" |
Directory for temporary files. | |
#define | CS_TEMP_FILE "$cs$.tmp" |
Name for temporary files. | |
#define | CS_VA_COPY(dest, src) dest = src; |
Copies the state of a va_list value. | |
#define | CSDEF_FRIEND |
Typedefs | |
typedef void(* | csStaticVarCleanupFN )(void(*p)()) |
Functions | |
static void | csAlignedFree (void *ptr) |
static void * | csAlignedMalloc (size_t size, size_t align) |
Detailed Description
This file should be #included before any other Crystal Space header files.It sets up a compilation environment which smooths over differences between platforms, allowing the same code to compile cleanly over a variety of operating systems and build tools. It also provides a number of utility macros useful to projects utilizing Crystal Space and to the Crystal Space code itself.
Definition in file cssysdef.h.
Define Documentation
|
Macro to align a class member (or local variable) to a specific byte boundary. Example: struct MyStruct { CS_ALIGNED_MEMBER(int x[4], 16); }; Definition at line 821 of file cssysdef.h. |
|
Dynamic stack memory allocation.
Definition at line 94 of file cssysdef.h. |
|
|
Same as CS_ASSERT(expr), but additionally prints msg to
Referenced by csRef< iGraphics2D >::csRef(), scfImplementation< csBaseTextureFactory >::DecRef(), scfImplementation< csBaseTextureFactory >::IncRef(), csRef< iGraphics2D >::operator=(), and scfImplementation< csBaseTextureFactory >::scfImplementation(). |
|
Use the CS_CONST_METHOD macro in front of method declarations to indicate that they are "constant", i.e., they only look at the values of their parameters and have no side effects. This allows the compiler to perform certain optimizations, e.g., eliminating repeated calls with the same arguments. This is a very strong assertion; if any argument is a pointer, you probably want to use CS_PURE_METHOD instead.
Definition at line 725 of file cssysdef.h. |
|
Stops program execution and break into debugger, if present - otherwise, probably just throws an exception/signal (ie crashes).
|
|
Value: static Type *var; \ static Type *getterFunc (); This will also declare a Getter function. Example: CS_DECLARE_STATIC_CLASSVAR (pool, GetVertexPool, csVertexPool) Definition at line 488 of file cssysdef.h. |
|
Define the scfStaticallyLinked variable.
Definition at line 321 of file cssysdef.h. |
|
Use the CS_DEPRECATED_METHOD macro in front of method declarations to indicate that they are deprecated. Example: struct iFoo : iBase { CS_DEPRECATED_METHOD virtual void Plankton() const = 0; } Definition at line 692 of file cssysdef.h. |
|
Use the CS_DEPRECATED_TYPE macro after type declarations to indicate that they are deprecated. Example: typedef csFoo csBar CS_DEPRECATED_TYPE; Definition at line 709 of file cssysdef.h. |
|
Macro that resolves to a compiler-specific variable or string that contains the name of the current function.
Definition at line 889 of file cssysdef.h. |
|
The CS_HEADER_GLOBAL() macro composes a pathname from two components and wraps the path in `<' and `>'. This macro is useful in cases where one does not have the option of augmenting the preprocessor's header search path, even though the include path for some header file may vary from platform to platform. For instance, on many platforms OpenGL headers are in a `GL' directory, whereas on other platforms they are in an `OpenGL' directory. As an example, in the first case, the platform might define the preprocessor macro GLPATH with the value `GL', and in the second case GLPATH would be given the value `OpenGL'. To actually include an OpenGL header, such as gl.h, the following code would be used: #include CS_HEADER_GLOBAL(GLPATH,gl.h) Definition at line 188 of file cssysdef.h. |
|
The CS_HEADER_LOCAL() macro composes a pathname from two components and wraps the path in double-quotes. This macro is useful in cases where one does not have the option of augmenting the preprocessor's header search path, even though the include path for some header file may vary from platform to platform. For example, assuming that the preprocessor macro UTILPATH is defined with some platform-specific value, to actually include a header, such as util.h, the following code would be used: #include CS_HEADER_LOCAL(UTILPATH,util.h) Definition at line 203 of file cssysdef.h. |
|
Value: CS_DECLARE_DEFAULT_STATIC_VARIABLE_REGISTRATION \ CS_DEFINE_STATICALLY_LINKED_FLAG \ CS_DEFINE_STATIC_VARIABLE_REGISTRATION (csStaticVarCleanup_csutil); \ CS_IMPLEMENT_PLATFORM_APPLICATION For maximum portability, each application should employ this macro. Platforms may override the definition of this macro in order to augment the implementation of an application with any special implementation details required by the platform. Definition at line 404 of file cssysdef.h. |
|
Value: CS_DECLARE_DEFAULT_STATIC_VARIABLE_REGISTRATION \ CS_DEFINE_STATICALLY_LINKED_FLAG \ CS_DEFINE_STATIC_VARIABLE_REGISTRATION (csStaticVarCleanup_csutil); For maximum portability, each such module should employ this macro. This is useful for situations in which a dynamic load library (DLL) is being built for some other facility. Obvious examples are pure extension modules for Python, Perl, and Java. For Crystal Space plugins, instead use CS_IMPLEMENT_PLUGIN. Platforms may override the definition of this macro in order to augment the implementation of the foreign module with any special implementation details required by the platform. If the foreign module will be interacting with Crystal Space, then it also needs to initialize the global iSCF::SCF variable manually. This variable should be set to point at the single shared instance of iSCF which is created by the application's invocation of scfInitialize(), csInitializer::InitializeSCF(), or csInitializer::CreateEnvironment(). In real Crystal Space plugins (those using CS_IMPLEMENT_PLUGIN), iSCF::SCF is initialized automatically; but in foreign DLL's, it is the responsibility of the DLL's author to ensure that iSCF::SCF gets initialized. Definition at line 351 of file cssysdef.h. |
|
Value: inline static classname* _CS_IMPLICITPTRCAST_NAME (classname* ptr) \ { \ return ptr;\ }
Definition at line 854 of file cssysdef.h. |
|
Value: CS_IMPLEMENT_PLATFORM_PLUGIN \ CS_DEFINE_STATICALLY_LINKED_FLAG \ CS_DECLARE_DEFAULT_STATIC_VARIABLE_REGISTRATION \ CS_DEFINE_STATIC_VARIABLE_REGISTRATION (csStaticVarCleanup_csutil); For maximum portability, each plugin module must employ this macro. Platforms may override the definition of this macro in order to augment the implementation of the plugin module with any special implementation details required by the platform. Definition at line 376 of file cssysdef.h. |
|
Create the static class variable that has been declared with CS_DECLARE_STATIC_CLASSVAR. This will also create the Getter function and the destruction function. The destruction function will be registered upon the first invocation of the Getter function. Example: CS_IMPLEMENT_STATIC_CLASSVAR (csPolygon2D, pool, GetVertexPool, csVertexPool,) Definition at line 539 of file cssysdef.h. |
|
Implement a file-scoped static variable that is created on demand. Defines a 'getter' function to access the variable and a 'destruction' function. The 'getter' function will register the 'destruction' function on first invocation. Example: CS_IMPLEMENT_STATIC_VAR (GetVertexPool, csVertexPool,)This will give you a file-scoped static 'getter' function GetVertexPool() that returns a pointer to a static variable. Definition at line 471 of file cssysdef.h. |
|
Perform a compiler implicit cast of a pointer to another pointer type using a static member function declared with the
Definition at line 868 of file cssysdef.h. |
|
Perform platform-specific application initializations. This macro should be invoked very near to the "beginning" of the application.
Definition at line 251 of file cssysdef.h. |
|
Maximum length of a filesystem pathname. Useful for declaring character buffers for calls to system functions which return a pathname in the buffer. Definition at line 79 of file cssysdef.h. |
|
Use the CS_PURE_METHOD macro in front of method declarations to indicate that they are "pure", i.e., they look at their arguments and at global memory but do not have any side effects. Basically, if the function doesn't change the values of any non-local variables and doesn't perform any output or other tampering with the environment, it is "pure". This allows the compiler to perform certain optimizations, e.g., eliminating repeated calls with the same arguments.
Definition at line 741 of file cssysdef.h. |
|
Register a method that will destruct one static variable.
Definition at line 415 of file cssysdef.h. |
|
Invoke the function that will call all destruction functions.
Definition at line 423 of file cssysdef.h. |
|
Convert a string to a wide string. Also works in macros. void bar (const wchar_t* baz); #define FOO(x) bar (CS_STRING_TO_WIDE (#x)); Definition at line 904 of file cssysdef.h. |
|
Directory for temporary files.
Definition at line 112 of file cssysdef.h. |
|
Name for temporary files.
Definition at line 123 of file cssysdef.h. |
|
Copies the state of a va_list value.
Definition at line 880 of file cssysdef.h. |
Generated for Crystal Space by doxygen 1.4.6