blob: 3ec3f9f4a6e1c45d235930261cb44cadb382f9eb [file] [log] [blame]
//
// File: xglPlatform.h
//
// Copyright 2014 ADVANCED MICRO DEVICES, INC. All Rights Reserved.
//
// AMD is granting you permission to use this software for reference
// purposes only and not for use in any software product.
//
// You agree that you will not reverse engineer or decompile the Materials,
// in whole or in part, except as allowed by applicable law.
//
// WARRANTY DISCLAIMER: THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND. AMD DISCLAIMS ALL WARRANTIES, EXPRESS, IMPLIED, OR STATUTORY,
// INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE, TITLE, NON-INFRINGEMENT, THAT THE SOFTWARE
// WILL RUN UNINTERRUPTED OR ERROR-FREE OR WARRANTIES ARISING FROM CUSTOM OF
// TRADE OR COURSE OF USAGE. THE ENTIRE RISK ASSOCIATED WITH THE USE OF THE
// SOFTWARE IS ASSUMED BY YOU.
// Some jurisdictions do not allow the exclusion of implied warranties, so
// the above exclusion may not apply to You.
//
// LIMITATION OF LIABILITY AND INDEMNIFICATION: AMD AND ITS LICENSORS WILL
// NOT, UNDER ANY CIRCUMSTANCES BE LIABLE TO YOU FOR ANY PUNITIVE, DIRECT,
// INCIDENTAL, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING FROM USE OF
// THE SOFTWARE OR THIS AGREEMENT EVEN IF AMD AND ITS LICENSORS HAVE BEEN
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
// In no event shall AMD's total liability to You for all damages, losses,
// and causes of action (whether in contract, tort (including negligence) or
// otherwise) exceed the amount of $100 USD. You agree to defend, indemnify
// and hold harmless AMD and its licensors, and any of their directors,
// officers, employees, affiliates or agents from and against any and all
// loss, damage, liability and other expenses (including reasonable attorneys'
// fees), resulting from Your use of the Software or violation of the terms and
// conditions of this Agreement.
//
// U.S. GOVERNMENT RESTRICTED RIGHTS: The Materials are provided with "RESTRICTED
// RIGHTS." Use, duplication, or disclosure by the Government is subject to the
// restrictions as set forth in FAR 52.227-14 and DFAR252.227-7013, et seq., or
// its successor. Use of the Materials by the Government constitutes
// acknowledgement of AMD's proprietary rights in them.
//
// EXPORT RESTRICTIONS: The Materials may be subject to export restrictions as
// stated in the Software License Agreement.
//
#ifndef __XGLPLATFORM_H__
#define __XGLPLATFORM_H__
#ifdef __cplusplus
extern "C"
{
#endif // __cplusplus
/*
***************************************************************************************************
* Platform-specific directives and type declarations
***************************************************************************************************
*/
#if defined(_WIN32)
// On Windows, XGLAPI should equate to the __stdcall convention
#define XGLAPI __stdcall
#elif defined(__GNUC__)
// On other platforms using GCC, XGLAPI stays undefined
#define XGLAPI
#else
// Unsupported Platform!
#error "Unsupported OS Platform detected!"
#endif
#if defined(__GNUC__)
#include <stddef.h>
#include <stdint.h>
#endif
#if defined(_WIN32)
// Windows platform
typedef unsigned __int8 XGL_UINT8;
typedef signed __int32 XGL_INT32;
typedef unsigned __int32 XGL_UINT32;
typedef signed __int64 XGL_INT64;
typedef unsigned __int64 XGL_UINT64;
#elif defined(__GNUC__)
// Other platforms
typedef uint8_t XGL_UINT8;
typedef int32_t XGL_INT32;
typedef uint32_t XGL_UINT32;
typedef int64_t XGL_INT64;
typedef uint64_t XGL_UINT64;
#endif
typedef size_t XGL_SIZE;
typedef XGL_UINT64 XGL_GPU_SIZE;
typedef XGL_UINT8 XGL_BYTE;
typedef XGL_INT32 XGL_INT;
typedef XGL_UINT32 XGL_UINT;
typedef char XGL_CHAR;
typedef float XGL_FLOAT;
typedef double XGL_DOUBLE;
typedef XGL_UINT32 XGL_BOOL;
typedef void XGL_VOID;
typedef XGL_UINT32 XGL_SAMPLE_MASK;
typedef XGL_UINT32 XGL_FLAGS;
typedef XGL_INT32 XGL_ENUM;
// typedef XGL_INT32 XGL_RESULT; // TODO: Resolve 13314.
#ifdef __cplusplus
}; // extern "C"
#endif // __cplusplus
#endif // __XGLPLATFORM_H__