raymath.h: Use C99 inline semantics

RAYMATH_EXTERN_INLINE was renamed to RAYMATH_HEADER_ONLY, which user code
may define if they want to use it as header-only library. If multiple
files in the same project define RAYMATH_HEADER_ONLY, they might each
have duplicate out-of-line definitions of the same functions.

By default, raymath.h exposes inline definitions, which instructs the
compiler _not_ to generate out-of-line definitons, if out-of-line
definitions are required, those of the file defined with
RAYLIB_IMPLEMENTATION are used instead. There may be only one such file.

In C++ mode, the compiler will select only one out-of-line definition
automatically, so no need to define a RAYLIB_IMPLEMENTATION.

Unfortunately, we have to remove raymath function declaration from
raylib.h as those declarations would lead to duplicate out-of-line
definitions which would yield linker errors. This problem didn't
exist with GNU89 or C++, because there multiple defintions are ok,
but in C99 they aren't.
This commit is contained in:
Ahmad Fatoum 2018-02-22 02:05:00 +01:00
parent ed6962edd3
commit f52d2de582
No known key found for this signature in database
GPG key ID: C3EAC3DE9321D59B
4 changed files with 30 additions and 141 deletions

View file

@ -62,7 +62,7 @@ int main()
Begin3dMode(camera);
DrawModel(skybox, Vector3Zero(), 1.0f, WHITE);
DrawModel(skybox, (Vector3){0, 0, 0}, 1.0f, WHITE);
DrawGrid(10, 1.0f);