platform.h 2.88 KB
Newer Older
Nicolas.Rougier's avatar
Nicolas.Rougier committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
/* ============================================================================
 * Freetype GL - A C OpenGL Freetype engine
 * Platform:    Any
 * WWW:         http://code.google.com/p/freetype-gl/
 * ----------------------------------------------------------------------------
 * Copyright 2011,2012 Nicolas P. Rougier. All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 *  1. Redistributions of source code must retain the above copyright notice,
 *     this list of conditions and the following disclaimer.
 *
 *  2. Redistributions in binary form must reproduce the above copyright
 *     notice, this list of conditions and the following disclaimer in the
 *     documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY NICOLAS P. ROUGIER ''AS IS'' AND ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
 * EVENT SHALL NICOLAS P. ROUGIER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * The views and conclusions contained in the software and documentation are
 * those of the authors and should not be interpreted as representing official
 * policies, either expressed or implied, of Nicolas P. Rougier.
 * ============================================================================
 */
#ifndef __PLATFORM_H__
#define __PLATFORM_H__

37 38
#include <stdlib.h>

Nicolas.Rougier's avatar
Nicolas.Rougier committed
39 40 41 42 43 44 45 46 47 48 49 50 51 52
//-------------------------------------------------
// stdint.h is not available on VS2008 or lower
//-------------------------------------------------
#ifdef _MSC_VER
typedef __int32 int32_t;
typedef unsigned __int32 uint32_t;
typedef __int64 int64_t;
typedef unsigned __int64 uint64_t;
#else
#include <stdint.h>
#endif // _MSC_VER

#ifdef __cplusplus
extern "C" {
andystanton's avatar
andystanton committed
53
namespace ftgl {
Nicolas.Rougier's avatar
Nicolas.Rougier committed
54 55
#endif

56 57 58
#ifdef __APPLE__
    /* strndup() was only added in OSX lion */
    char * strndup( const char *s1, size_t n);
andystanton's avatar
andystanton committed
59
#elif defined(_WIN32) || defined(_WIN64)
60 61
    /* does not exist on windows */
    char * strndup( const char *s1, size_t n);
62 63 64
#	if !defined(_MSC_VER) || _MSC_VER < 1800
		double round(double v);
#	endif // _MSC_VER
65 66
#    pragma warning (disable: 4244) // suspend warnings
#endif // _WIN32 || _WIN64
Nicolas.Rougier's avatar
Nicolas.Rougier committed
67 68 69

#ifdef __cplusplus
}
andystanton's avatar
andystanton committed
70
}
Nicolas.Rougier's avatar
Nicolas.Rougier committed
71 72 73
#endif // __cplusplus

#endif /* __PLATFORM_H__ */