summaryrefslogtreecommitdiff
path: root/include/GFSDK_WaveWorks_Common.fxh
diff options
context:
space:
mode:
Diffstat (limited to 'include/GFSDK_WaveWorks_Common.fxh')
-rw-r--r--include/GFSDK_WaveWorks_Common.fxh79
1 files changed, 79 insertions, 0 deletions
diff --git a/include/GFSDK_WaveWorks_Common.fxh b/include/GFSDK_WaveWorks_Common.fxh
new file mode 100644
index 0000000..c100c8b
--- /dev/null
+++ b/include/GFSDK_WaveWorks_Common.fxh
@@ -0,0 +1,79 @@
+/*
+ * This code contains NVIDIA Confidential Information and is disclosed
+ * under the Mutual Non-Disclosure Agreement.
+ *
+ * Notice
+ * ALL NVIDIA DESIGN SPECIFICATIONS AND CODE ("MATERIALS") ARE PROVIDED "AS IS" NVIDIA MAKES
+ * NO REPRESENTATIONS, WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+ * THE MATERIALS, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES OF NONINFRINGEMENT,
+ * MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * 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. No third party distribution is allowed unless
+ * expressly authorized by NVIDIA. 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 � 2008- 2013 NVIDIA Corporation. All rights reserved.
+ *
+ * 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.
+ */
+
+#ifndef _GFSDK_WAVEWORKS_COMMON_FX
+#define _GFSDK_WAVEWORKS_COMMON_FX
+/*
+ *
+ *
+ */
+#if defined(GFSDK_WAVEWORKS_SM4) || defined(GFSDK_WAVEWORKS_SM5)
+ #define SampleTex2D(nvsf_texture,nvsf_sampler,nvsf_coords) nvsf_texture.Sample(nvsf_sampler,nvsf_coords)
+ #define SampleTex2Dlod(nvsf_texture,nvsf_sampler,nvsf_coords,nvsf_lod) nvsf_texture.SampleLevel(nvsf_sampler,nvsf_coords,nvsf_lod)
+ #define BEGIN_CBUFFER(name,slot) cbuffer name : register(b##slot) {
+ #define END_CBUFFER };
+ #define SEMANTIC(x) : x
+#elif defined(GFSDK_WAVEWORKS_SM3)
+ #define SampleTex2D(nvsf_texture,nvsf_sampler,nvsf_coords) tex2D(nvsf_sampler,nvsf_coords)
+ #define SampleTex2Dlod(nvsf_texture,nvsf_sampler,nvsf_coords,nvsf_lod) tex2Dlod(nvsf_sampler,float4(nvsf_coords,0,nvsf_lod))
+ #define BEGIN_CBUFFER(name,slot)
+ #define END_CBUFFER
+ #define SV_Target COLOR
+ #define SV_Position POSITION
+ #define SEMANTIC(x) : x
+#elif defined(GFSDK_WAVEWORKS_GNM)
+ #define SampleTex2D(nvsf_texture,nvsf_sampler,nvsf_coords) nvsf_texture.Sample(nvsf_sampler,nvsf_coords)
+ #define SampleTex2Dlod(nvsf_texture,nvsf_sampler,nvsf_coords,nvsf_lod) nvsf_texture.SampleLOD(nvsf_sampler,nvsf_coords,nvsf_lod)
+ #define BEGIN_CBUFFER(name,slot) ConstantBuffer name : register(b##slot) {
+ #define END_CBUFFER };
+ #define SV_Target S_TARGET_OUTPUT
+ #define SV_Position S_POSITION
+ #define SEMANTIC(x) : x
+#elif defined(GFSDK_WAVEWORKS_GL)
+ #define SampleTex2D(nvsf_texture,nvsf_sampler,nvsf_coords) texture(nvsf_sampler,nvsf_coords)
+ #define SampleTex2Dlod(nvsf_texture,nvsf_sampler,nvsf_coords,nvsf_lod) textureLod(nvsf_sampler,nvsf_coords,nvsf_lod)
+ #define BEGIN_CBUFFER(name,slot)
+ #define END_CBUFFER
+ #define SEMANTIC(x)
+ #define float2 vec2
+ #define float3 vec3
+ #define float4 vec4
+ #define float4x3 mat3x4
+ //vec3 mul(vec4 v, mat3x4 m) { return v * m; }
+ #define mul(v,m) ((v)*(m))
+ #define lerp mix
+ #define saturate(x) clamp(x,0.0,1.0)
+#else
+ #error Shader model not defined (expected GFSDK_WAVEWORKS_SM3, GFSDK_WAVEWORKS_SM4, GFSDK_WAVEWORKS_SM5, GFSDK_WAVEWORKS_GNM or GFSDK_WAVEWORKS_GL)
+#endif
+/*
+ *
+ *
+ */
+#endif /* _GFSDK_WAVEWORKS_COMMON_FX */