2014-12-07 19:09:38 -05:00
|
|
|
// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved.
|
2014-03-14 14:13:41 -04:00
|
|
|
|
|
|
|
|
/*=============================================================================
|
|
|
|
|
Definitions.usf: Defines undefined defines to 0 as Cg can't handle them.
|
|
|
|
|
=============================================================================*/
|
|
|
|
|
|
2015-06-29 15:58:38 -04:00
|
|
|
#pragma once
|
|
|
|
|
|
2014-03-14 14:13:41 -04:00
|
|
|
#ifndef MATERIAL_TWOSIDED
|
|
|
|
|
#define MATERIAL_TWOSIDED 0
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef MATERIAL_TANGENTSPACENORMAL
|
|
|
|
|
#define MATERIAL_TANGENTSPACENORMAL 0
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef MATERIAL_TWOSIDED_SEPARATE_PASS
|
|
|
|
|
#define MATERIAL_TWOSIDED_SEPARATE_PASS 0
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef MATERIALBLENDING_MASKED
|
|
|
|
|
#define MATERIALBLENDING_MASKED 0
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef MATERIALBLENDING_TRANSLUCENT
|
|
|
|
|
#define MATERIALBLENDING_TRANSLUCENT 0
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef MATERIALBLENDING_ADDITIVE
|
|
|
|
|
#define MATERIALBLENDING_ADDITIVE 0
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef MATERIALBLENDING_MODULATE
|
|
|
|
|
#define MATERIALBLENDING_MODULATE 0
|
|
|
|
|
#endif
|
|
|
|
|
|
2014-05-30 07:55:38 -04:00
|
|
|
#ifndef MATERIAL_SHADINGMODEL_DEFAULT_LIT
|
|
|
|
|
#define MATERIAL_SHADINGMODEL_DEFAULT_LIT 0
|
2014-03-14 14:13:41 -04:00
|
|
|
#endif
|
|
|
|
|
|
2014-05-30 07:55:38 -04:00
|
|
|
#ifndef MATERIAL_SHADINGMODEL_SUBSURFACE
|
|
|
|
|
#define MATERIAL_SHADINGMODEL_SUBSURFACE 0
|
2014-03-14 14:13:41 -04:00
|
|
|
#endif
|
|
|
|
|
|
2014-05-30 07:55:38 -04:00
|
|
|
#ifndef MATERIAL_SHADINGMODEL_PREINTEGRATED_SKIN
|
|
|
|
|
#define MATERIAL_SHADINGMODEL_PREINTEGRATED_SKIN 0
|
2014-03-14 14:13:41 -04:00
|
|
|
#endif
|
|
|
|
|
|
2014-05-30 07:55:38 -04:00
|
|
|
#ifndef MATERIAL_SHADINGMODEL_UNLIT
|
|
|
|
|
#define MATERIAL_SHADINGMODEL_UNLIT 0
|
2014-03-14 14:13:41 -04:00
|
|
|
#endif
|
|
|
|
|
|
2015-01-29 14:46:20 -05:00
|
|
|
#ifndef HAS_PRIMITIVE_UNIFORM_BUFFER
|
|
|
|
|
#define HAS_PRIMITIVE_UNIFORM_BUFFER 0
|
2014-03-14 14:13:41 -04:00
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef OUTPUT_DEPTH_TO_ALPHA
|
|
|
|
|
#define OUTPUT_DEPTH_TO_ALPHA 0
|
|
|
|
|
#endif
|
|
|
|
|
|
2015-08-17 16:09:30 -04:00
|
|
|
#ifndef COMPILER_HLSLCC
|
|
|
|
|
#define COMPILER_HLSLCC 0
|
2014-03-14 14:13:41 -04:00
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef COMPILER_HLSL
|
|
|
|
|
#define COMPILER_HLSL 0
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef COMPILER_GLSL
|
|
|
|
|
#define COMPILER_GLSL 0
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef COMPILER_GLSL_ES2
|
|
|
|
|
#define COMPILER_GLSL_ES2 0
|
|
|
|
|
#endif
|
|
|
|
|
|
2015-08-28 05:31:26 -04:00
|
|
|
#ifndef COMPILER_METAL
|
|
|
|
|
#define COMPILER_METAL 0
|
|
|
|
|
#endif
|
|
|
|
|
|
2014-03-14 14:13:41 -04:00
|
|
|
#ifndef COMPILER_SUPPORTS_ATTRIBUTES
|
|
|
|
|
#define COMPILER_SUPPORTS_ATTRIBUTES 0
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef SM5_PROFILE
|
|
|
|
|
#define SM5_PROFILE 0
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef SM4_PROFILE
|
|
|
|
|
#define SM4_PROFILE 0
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef ES2_PROFILE
|
|
|
|
|
#define ES2_PROFILE 0
|
|
|
|
|
#endif
|
|
|
|
|
|
2014-08-25 14:41:54 -04:00
|
|
|
#ifndef ES3_1_PROFILE
|
|
|
|
|
#define ES3_1_PROFILE 0
|
|
|
|
|
#endif
|
|
|
|
|
|
2014-06-17 18:27:26 -04:00
|
|
|
#ifndef METAL_PROFILE
|
|
|
|
|
#define METAL_PROFILE 0
|
|
|
|
|
#endif
|
|
|
|
|
|
2014-11-21 11:56:17 -05:00
|
|
|
#ifndef METAL_MRT_PROFILE
|
|
|
|
|
#define METAL_MRT_PROFILE 0
|
|
|
|
|
#endif
|
|
|
|
|
|
2015-08-28 05:31:26 -04:00
|
|
|
#ifndef METAL_SM4_PROFILE
|
|
|
|
|
#define METAL_SM4_PROFILE 0
|
|
|
|
|
#endif
|
|
|
|
|
|
2015-06-29 15:58:38 -04:00
|
|
|
#ifndef METAL_SM5_PROFILE
|
|
|
|
|
#define METAL_SM5_PROFILE 0
|
|
|
|
|
#endif
|
|
|
|
|
|
2015-06-16 10:28:53 -04:00
|
|
|
#ifndef VULKAN_PROFILE
|
|
|
|
|
#define VULKAN_PROFILE 0
|
|
|
|
|
#endif
|
|
|
|
|
|
2014-04-02 18:09:23 -04:00
|
|
|
#ifndef IOS
|
|
|
|
|
#define IOS 0
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef MAC
|
|
|
|
|
#define MAC 0
|
|
|
|
|
#endif
|
|
|
|
|
|
2014-03-14 14:13:41 -04:00
|
|
|
#ifndef USING_TESSELLATION
|
2014-12-18 11:02:40 -05:00
|
|
|
#define USING_TESSELLATION 0
|
2014-03-14 14:13:41 -04:00
|
|
|
#endif
|
|
|
|
|
|
2015-01-20 20:14:07 -05:00
|
|
|
#ifndef OUTPUT_GBUFFER_VELOCITY
|
|
|
|
|
#define OUTPUT_GBUFFER_VELOCITY 0
|
|
|
|
|
#endif
|
|
|
|
|
|
2014-03-14 14:13:41 -04:00
|
|
|
#define PC_D3D SM5_PROFILE
|
|
|
|
|
|
|
|
|
|
#ifndef NEEDS_LIGHTMAP_COORDINATE
|
|
|
|
|
#define NEEDS_LIGHTMAP_COORDINATE 0
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef TESSELLATION_TYPE_FLAT
|
|
|
|
|
#define TESSELLATION_TYPE_FLAT 0
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef TESSELLATION_TYPE_PNTRIANGLES
|
|
|
|
|
#define TESSELLATION_TYPE_PNTRIANGLES 0
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef USE_ADAPTIVE_TESSELLATION_FACTOR
|
|
|
|
|
#define USE_ADAPTIVE_TESSELLATION_FACTOR 1
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef LANDSCAPE_XYOFFSET
|
|
|
|
|
#define LANDSCAPE_XYOFFSET 0
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef MATERIAL_ATMOSPHERIC_FOG
|
|
|
|
|
#define MATERIAL_ATMOSPHERIC_FOG 0
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef BASEPASS_ATMOSPHERIC_FOG
|
|
|
|
|
#define BASEPASS_ATMOSPHERIC_FOG 0
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef NUM_VF_PACKED_INTERPOLANTS
|
|
|
|
|
#define NUM_VF_PACKED_INTERPOLANTS 0
|
|
|
|
|
#endif
|
|
|
|
|
|
2015-06-16 10:17:53 -04:00
|
|
|
#ifndef INVARIANT
|
|
|
|
|
#define INVARIANT
|
|
|
|
|
#endif
|
|
|
|
|
|
2015-06-22 15:49:12 -04:00
|
|
|
#ifndef ENABLE_RE_Z
|
|
|
|
|
#define ENABLE_RE_Z
|
|
|
|
|
#endif
|
|
|
|
|
|
2015-04-08 16:15:25 -04:00
|
|
|
#ifndef USE_CLEARCOAT
|
|
|
|
|
#define USE_CLEARCOAT 0
|
|
|
|
|
#endif
|
|
|
|
|
|
2014-03-14 14:13:41 -04:00
|
|
|
#if SM5_PROFILE || COMPILER_SUPPORTS_ATTRIBUTES
|
|
|
|
|
/** Avoids flow control constructs. */
|
|
|
|
|
#define UNROLL [unroll]
|
|
|
|
|
/** Gives preference to flow control constructs. */
|
|
|
|
|
#define LOOP [loop]
|
|
|
|
|
/** Performs branching by using control flow instructions like jmp and label. */
|
|
|
|
|
#define BRANCH [branch]
|
|
|
|
|
/** Performs branching by using the cnd instructions. */
|
|
|
|
|
#define FLATTEN [flatten]
|
2015-02-09 15:27:43 -05:00
|
|
|
/** Allows a compute shader loop termination condition to be based off of a UAV read. The loop must not contain synchronization intrinsics. */
|
|
|
|
|
#define ALLOW_UAV_CONDITION [allow_uav_condition]
|
2014-03-14 14:13:41 -04:00
|
|
|
#else
|
|
|
|
|
#ifndef UNROLL
|
|
|
|
|
#define UNROLL
|
|
|
|
|
#endif
|
|
|
|
|
#ifndef LOOP
|
|
|
|
|
#define LOOP
|
|
|
|
|
#endif
|
|
|
|
|
#ifndef BRANCH
|
|
|
|
|
#define BRANCH
|
|
|
|
|
#endif
|
|
|
|
|
#ifndef FLATTEN
|
|
|
|
|
#define FLATTEN
|
|
|
|
|
#endif
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#define ISOLATE
|
|
|
|
|
#define NOEXPRESSIONOPTIMIZATIONS
|
|
|
|
|
|
|
|
|
|
#if SM5_PROFILE
|
|
|
|
|
#define EARLYDEPTHSTENCIL [earlydepthstencil]
|
|
|
|
|
#else
|
|
|
|
|
#define EARLYDEPTHSTENCIL
|
|
|
|
|
#endif
|
2015-03-31 14:02:45 -04:00
|
|
|
|
|
|
|
|
#ifndef HAS_INVERTED_Z_BUFFER
|
|
|
|
|
#define HAS_INVERTED_Z_BUFFER 1
|
|
|
|
|
#endif
|
2015-08-17 16:09:30 -04:00
|
|
|
|
2015-08-28 05:31:26 -04:00
|
|
|
/** When defined sets the layer index for volumetric rendering in the vertex shader, rather than using a geometry shader */
|
|
|
|
|
#ifndef USING_VERTEX_SHADER_LAYER
|
|
|
|
|
#define USING_VERTEX_SHADER_LAYER 0
|
|
|
|
|
#endif
|
|
|
|
|
|
2015-08-17 16:09:30 -04:00
|
|
|
// 'static' asserts
|
2015-08-28 05:31:26 -04:00
|
|
|
#if COMPILER_GLSL || COMPILER_GLSL_ES2 || VULKAN_PROFILE || METAL_PROFILE || METAL_MRT_PROFILE || METAL_SM4_PROFILE || METAL_SM5_PROFILE
|
2015-08-17 16:09:30 -04:00
|
|
|
#if !COMPILER_HLSLCC
|
|
|
|
|
#error "Missing COMPILER_HLSLCC define!"
|
|
|
|
|
#endif
|
|
|
|
|
#endif
|