mirror of
https://github.com/nzp-team/fteqw.git
synced 2024-11-14 08:21:05 +00:00
934a97c53e
fix q2bsp textures. fix some vulkan validation issues. MOVE_OTHERONLY is now an official feature (replacing MOVE_ONLYENT which is now removed, same functionality, better behaved behaviour). network up edited brushes on initial connect. still needs more work for entity editing, but should otherwise be okay for now. add sys_browserredirect console command for emscripten builds (can be used to trigger window redirections - including download requests) git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5001 fc73d0e0-1445-4013-8a0c-d673dee63da5
120 lines
3.8 KiB
C
120 lines
3.8 KiB
C
//
|
|
// File: vk_platform.h
|
|
//
|
|
/*
|
|
** Copyright (c) 2014-2015 The Khronos Group Inc.
|
|
**
|
|
** Licensed under the Apache License, Version 2.0 (the "License");
|
|
** you may not use this file except in compliance with the License.
|
|
** You may obtain a copy of the License at
|
|
**
|
|
** http://www.apache.org/licenses/LICENSE-2.0
|
|
**
|
|
** Unless required by applicable law or agreed to in writing, software
|
|
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
** See the License for the specific language governing permissions and
|
|
** limitations under the License.
|
|
*/
|
|
|
|
|
|
#ifndef VK_PLATFORM_H_
|
|
#define VK_PLATFORM_H_
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
{
|
|
#endif // __cplusplus
|
|
|
|
/*
|
|
***************************************************************************************************
|
|
* Platform-specific directives and type declarations
|
|
***************************************************************************************************
|
|
*/
|
|
|
|
/* Platform-specific calling convention macros.
|
|
*
|
|
* Platforms should define these so that Vulkan clients call Vulkan commands
|
|
* with the same calling conventions that the Vulkan implementation expects.
|
|
*
|
|
* VKAPI_ATTR - Placed before the return type in function declarations.
|
|
* Useful for C++11 and GCC/Clang-style function attribute syntax.
|
|
* VKAPI_CALL - Placed after the return type in function declarations.
|
|
* Useful for MSVC-style calling convention syntax.
|
|
* VKAPI_PTR - Placed between the '(' and '*' in function pointer types.
|
|
*
|
|
* Function declaration: VKAPI_ATTR void VKAPI_CALL vkCommand(void);
|
|
* Function pointer type: typedef void (VKAPI_PTR *PFN_vkCommand)(void);
|
|
*/
|
|
#if defined(_WIN32)
|
|
// On Windows, Vulkan commands use the stdcall convention
|
|
#define VKAPI_ATTR
|
|
#define VKAPI_CALL __stdcall
|
|
#define VKAPI_PTR VKAPI_CALL
|
|
#elif defined(__ANDROID__) && defined(__ARM_EABI__) && !defined(__ARM_ARCH_7A__)
|
|
// Android does not support Vulkan in native code using the "armeabi" ABI.
|
|
#error "Vulkan requires the 'armeabi-v7a' or 'armeabi-v7a-hard' ABI on 32-bit ARM CPUs"
|
|
#elif defined(__ANDROID__) && defined(__ARM_ARCH_7A__)
|
|
// On Android/ARMv7a, Vulkan functions use the armeabi-v7a-hard calling
|
|
// convention, even if the application's native code is compiled with the
|
|
// armeabi-v7a calling convention.
|
|
#define VKAPI_ATTR __attribute__((pcs("aapcs-vfp")))
|
|
#define VKAPI_CALL
|
|
#define VKAPI_PTR VKAPI_ATTR
|
|
#else
|
|
// On other platforms, use the default calling convention
|
|
#define VKAPI_ATTR
|
|
#define VKAPI_CALL
|
|
#define VKAPI_PTR
|
|
#endif
|
|
|
|
#include <stddef.h>
|
|
|
|
#if !defined(VK_NO_STDINT_H)
|
|
#if defined(_MSC_VER) && (_MSC_VER < 1600)
|
|
typedef signed __int8 int8_t;
|
|
typedef unsigned __int8 uint8_t;
|
|
typedef signed __int16 int16_t;
|
|
typedef unsigned __int16 uint16_t;
|
|
typedef signed __int32 int32_t;
|
|
typedef unsigned __int32 uint32_t;
|
|
typedef signed __int64 int64_t;
|
|
typedef unsigned __int64 uint64_t;
|
|
#else
|
|
#include <stdint.h>
|
|
#endif
|
|
#endif // !defined(VK_NO_STDINT_H)
|
|
|
|
#ifdef __cplusplus
|
|
} // extern "C"
|
|
#endif // __cplusplus
|
|
|
|
// Platform-specific headers required by platform window system extensions.
|
|
// These are enabled prior to #including "vulkan.h". The same enable then
|
|
// controls inclusion of the extension interfaces in vulkan.h.
|
|
|
|
#ifdef VK_USE_PLATFORM_ANDROID_KHR
|
|
#include <android/native_window.h>
|
|
#endif
|
|
|
|
#ifdef VK_USE_PLATFORM_MIR_KHR
|
|
#include <mir_toolkit/client_types.h>
|
|
#endif
|
|
|
|
#ifdef VK_USE_PLATFORM_WAYLAND_KHR
|
|
#include <wayland-client.h>
|
|
#endif
|
|
|
|
#ifdef VK_USE_PLATFORM_WIN32_KHR
|
|
#include <windows.h>
|
|
#endif
|
|
|
|
#ifdef VK_USE_PLATFORM_XLIB_KHR
|
|
#include <X11/Xlib.h>
|
|
#endif
|
|
|
|
#ifdef VK_USE_PLATFORM_XCB_KHR
|
|
#include <xcb/xcb.h>
|
|
#endif
|
|
|
|
#endif
|