diff options
| author | git perforce import user <a@b> | 2016-10-25 12:29:14 -0600 |
|---|---|---|
| committer | Sheikh Dawood Abdul Ajees <Sheikh Dawood Abdul Ajees> | 2016-10-25 18:56:37 -0500 |
| commit | 3dfe2108cfab31ba3ee5527e217d0d8e99a51162 (patch) | |
| tree | fa6485c169e50d7415a651bf838f5bcd0fd3bfbd /PhysX_3.4/Samples/SampleFramework/renderer/include/RendererConfig.h | |
| download | physx-3.4-3dfe2108cfab31ba3ee5527e217d0d8e99a51162.tar.xz physx-3.4-3dfe2108cfab31ba3ee5527e217d0d8e99a51162.zip | |
Initial commit:
PhysX 3.4.0 Update @ 21294896
APEX 1.4.0 Update @ 21275617
[CL 21300167]
Diffstat (limited to 'PhysX_3.4/Samples/SampleFramework/renderer/include/RendererConfig.h')
| -rw-r--r-- | PhysX_3.4/Samples/SampleFramework/renderer/include/RendererConfig.h | 277 |
1 files changed, 277 insertions, 0 deletions
diff --git a/PhysX_3.4/Samples/SampleFramework/renderer/include/RendererConfig.h b/PhysX_3.4/Samples/SampleFramework/renderer/include/RendererConfig.h new file mode 100644 index 00000000..e8d1c7b4 --- /dev/null +++ b/PhysX_3.4/Samples/SampleFramework/renderer/include/RendererConfig.h @@ -0,0 +1,277 @@ +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and related documentation and +// any modifications thereto. Any use, reproduction, disclosure, or +// distribution of this software and related documentation without an express +// license agreement from NVIDIA Corporation is strictly prohibited. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2016 NVIDIA Corporation. All rights reserved. + +#ifndef RENDERER_CONFIG_H +#define RENDERER_CONFIG_H + +#include <RendererFoundation.h> +#include <assert.h> + +#define RENDERER_TEXT(_foo) #_foo +#define RENDERER_TEXT2(_foo) RENDERER_TEXT(_foo) + +// number of lights required before it switches from forward rendering to deferred rendering. +#define RENDERER_DEFERRED_THRESHOLD 0x7FFFFFFF // set to a big number just to disable it for now... + +// Enables/Disables support for dresscode in the renderer... +#define RENDERER_ENABLE_DRESSCODE 0 + +// If turned on, asserts get compiled in as print statements in release mode. +#define RENDERER_ENABLE_CHECKED_RELEASE 0 + +// If enabled, all lights will be bound in a single pass. Requires appropriate shader support. +#define RENDERER_ENABLE_SINGLE_PASS_LIGHTING 0 + +// maximum number of bones per-drawcall allowed. +#define RENDERER_MAX_BONES 60 + +#define RENDERER_TANGENT_CHANNEL 5 +#define RENDERER_BONEINDEX_CHANNEL 6 +#define RENDERER_BONEWEIGHT_CHANNEL 7 +#define RENDERER_INSTANCE_POSITION_CHANNEL 8 +#define RENDERER_INSTANCE_NORMALX_CHANNEL 9 +#define RENDERER_INSTANCE_NORMALY_CHANNEL 10 +#define RENDERER_INSTANCE_NORMALZ_CHANNEL 11 +#define RENDERER_INSTANCE_VEL_LIFE_CHANNEL 12 +#define RENDERER_INSTANCE_DENSITY_CHANNEL 13 + +#define RENDERER_INSTANCE_UV_CHANNEL 12 +#define RENDERER_INSTANCE_LOCAL_CHANNEL 13 + +#define RENDERER_DISPLACEMENT_CHANNEL 14 +#define RENDERER_X_DISPLACEMENT_CHANNEL 13 +#define RENDERER_Y_DISPLACEMENT_CHANNEL 14 +#define RENDERER_Z_DISPLACEMENT_CHANNEL 15 +#define RENDERER_DISPLACEMENT_FLAGS_CHANNEL 15 + +// Compiler specific configuration... +#if defined(_MSC_VER) +#define RENDERER_VISUALSTUDIO +#pragma warning(disable : 4127) // conditional expression is constant +#pragma warning(disable : 4100) // unreferenced formal parameter + +#elif defined(__ghs__) + #define RENDERER_GHS +#elif defined(__GNUC__) + #define RENDERER_GCC +#else +#error Unknown Compiler! + +#endif + +#if PX_PS4 +#pragma clang diagnostic push +// variadic macros are incompatible with C++98 +#pragma clang diagnostic ignored "-Wc++98-compat-pedantic" +#endif + +// Platform specific configuration... +#if defined(WIN32) || defined(WIN64) || defined(_M_ARM) || PX_XBOXONE + #define RENDERER_WINDOWS +#if !PX_XBOXONE + #define RENDERER_ENABLE_DIRECT3D9 +#endif + #define RENDERER_ENABLE_DIRECT3D11 + #define RENDERER_ENABLE_NVPERFHUD + #define RENDERER_ENABLE_TGA_SUPPORT + #if !defined(RENDERER_PVD) && !PX_XBOXONE && PX_SUPPORT_GPU_PHYSX + //Removed this to get PhysX distro working without shipping CUDA. + //#define RENDERER_ENABLE_CUDA_INTEROP + #endif + #define DIRECT3D9_SUPPORT_D3DUSAGE_DYNAMIC + #if defined(WIN64) + #define RENDERER_64BIT + #endif +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#define NOMINMAX +#include <windows.h> +#elif defined(__APPLE__) && !defined(__arm__) && !defined(__arm64__) +#define RENDERER_MACOSX +#define RENDERER_ENABLE_OPENGL +#define RENDERER_ENABLE_CG +#if !PX_PPC +#define RENDERER_ENABLE_TGA_SUPPORT +#endif + +#elif defined(_XBOX) && _XBOX_VER == 200 +#define RENDERER_XBOX360 +#define RENDERER_ENABLE_DIRECT3D9 +#define NOMINMAX +#define RENDERER_ENABLE_TGA_SUPPORT +#define RENDERER_BIG_ENDIAN + +#elif PX_PS4 + #define RENDERER_PS4 + #define RENDERER_ENABLE_LIBGNM + #define RENDERER_ENABLE_CG + #define RENDERER_ENABLE_TGA_SUPPORT + +#elif defined(__CYGWIN__) +#define RENDERER_LINUX +#define RENDERER_ENABLE_OPENGL +#define RENDERER_ENABLE_CG +#define RENDERER_ENABLE_TGA_SUPPORT + +#elif defined(ANDROID) + #define RENDERER_DEBUG + #define RENDERER_ANDROID + #define RENDERER_TABLET + #define RENDERER_ENABLE_GLES2 + #define RENDERER_ENABLE_TGA_SUPPORT + +#elif defined(__linux__) + #define RENDERER_LINUX + #define RENDERER_ENABLE_OPENGL + #define RENDERER_ENABLE_CG + #define RENDERER_ENABLE_TGA_SUPPORT + +#elif defined(__APPLE__) && (defined(__arm__) || defined(__arm64__)) + #define RENDERER_DEBUG + #define RENDERER_IOS + #define RENDERER_TABLET + #define RENDERER_ENABLE_GLES2 + #define RENDERER_ENABLE_TGA_SUPPORT + #define RENDERER_ENABLE_PVR_SUPPORT + +#elif defined(RENDERER_GHS) + #define RENDERER_WIIU + #define RENDERER_ENABLE_GX2 + #define RENDERER_ENABLE_TGA_SUPPORT + #define RENDERER_BIG_ENDIAN + +#else +#error "Unknown Platform!" + +#endif + +#if PX_DEBUG +#define RENDERER_DEBUG +#endif + + +#if defined(RENDERER_DEBUG) + #if defined(RENDERER_WINDOWS) && !PX_XBOXONE + #define RENDERER_ASSERT(_exp, _msg) \ + if(!(_exp)) \ + { \ + MessageBoxA(0, _msg, "Renderer Assert", MB_OK); \ + __debugbreak(); \ + } + #elif defined(RENDERER_ANDROID) + #include <android/log.h> + #define RENDERER_ASSERT(_exp, _msg) \ + if(!(_exp)) \ + __android_log_print(ANDROID_LOG_INFO, _msg, "RENDERER_ASSERT: %s\n", #_exp);\ + assert(_exp && (_msg)); + #else + #define RENDERER_ASSERT(_exp, _msg) assert(_exp && (_msg)); + #endif +#elif RENDERER_ENABLE_CHECKED_RELEASE +#if defined(RENDERER_VISUALSTUDIO) +#define RENDERER_ASSERT(_exp, _msg) \ + if(!(_exp)) \ + { \ + OutputDebugStringA("*** (" __FILE__":"RENDERER_TEXT2(__LINE__)") "); \ + OutputDebugStringA(_msg); \ + OutputDebugStringA(" ***\n"); \ + } +#else +#define RENDERER_ASSERT(_exp, _msg) if(!(_exp)) shdfnd::printFormatted("*** (" __FILE__ ":" RENDERER_TEXT2(__LINE__)") %s ***\n", _msg); +#endif +#else +#define RENDERER_ASSERT(_exp, _msg) +#endif + +#define RENDERER_OUTPUT_MESSAGE(_rendererPtr, _msg) \ + if((_rendererPtr) && (_rendererPtr)->getErrorCallback()) \ + { \ + (_rendererPtr)->getErrorCallback()->reportError(PxErrorCode::eDEBUG_INFO, (_msg), __FILE__, __LINE__); \ + } + + +#if defined(RENDERER_ANDROID) + #include <android/log.h> + #define LOG_INFO(title, ...) ((void)__android_log_print(ANDROID_LOG_INFO, title, __VA_ARGS__)) +#else + +#if 0 + #include <stdio.h> + #include <stdarg.h> + + static void printInfo(const char* title, const char* message, ...) + { + char buff[4096]; + + shdfnd::printFormatted("%s ", title); + va_list va; + va_start(va, message); + vsprintf(buff, message, va); + va_end(va); + if (strlen(buff)>=4096) + assert(!"buffer overflow!!"); + + shdfnd::printFormatted("%s\n", buff); + } + + #define LOG_INFO(title, ...) (printInfo(title, __VA_ARGS__)) +#else + #define LOG_INFO(title, ...) +#endif + +#endif + +#if defined(RENDERER_XBOX360) +#define RENDERER_INSTANCING 0 +#else +#define RENDERER_INSTANCING 1 +#endif + +namespace SampleRenderer +{ + // 2D and 3D Textures have identical external interfaces + // Using a typedef provides compatibility with legacy code that used only 2D textures + class RendererTexture; + class RendererTextureDesc; + typedef RendererTexture RendererTexture2D; + typedef RendererTextureDesc RendererTexture2DDesc; + typedef RendererTexture RendererTexture3D; + typedef RendererTextureDesc RendererTexture3DDesc; +} +#if defined(RENDERER_ANDROID) && !defined(LOGI) +# include <android/log.h> +# define LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, "RendererConfig", __VA_ARGS__)) +#else +# define LOGI(...) LOG_INFO("LOGI: ", __VA_ARGS__) +#endif + +#if PX_PS4 +#pragma clang diagnostic pop +#endif + +#endif |