port from perforce

This commit is contained in:
2026-04-18 22:31:51 +02:00
commit 8d0ab5b7cc
8409 changed files with 3972376 additions and 0 deletions

View File

@@ -0,0 +1,18 @@
# Auto detect text files and perform LF normalization
* text=auto
# Explicitly declare code/VS files as CRLF
*.cpp eol=crlf
*.h eol=crlf
*.hlsl eol=crlf
*.hlsli eol=crlf
*.fx eol=crlf
*.fxh eol=crlf
*.inl eol=crlf
*.inc eol=crlf
*.vcxproj eol=crlf
*.filters eol=crlf
*.sln eol=crlf
# Explicitly declare resource files as binary
*.pdb binary

22
LouigiVeronaDisk/FX11-master/.gitignore vendored Normal file
View File

@@ -0,0 +1,22 @@
*.psess
*.vsp
*.log
*.err
*.wrn
*.suo
*.sdf
*.user
*.i
*.vspscc
*.opensdf
*.opendb
*.ipch
*.cache
*.tlog
*.lastbuildstate
*.ilk
*.VC.db
.vs
/ipch
Bin
/wiki

View File

@@ -0,0 +1,679 @@
//--------------------------------------------------------------------------------------
// File: EffectBinaryFormat.h
//
// Direct3D11 Effects Binary Format
// This is the binary file interface shared between the Effects
// compiler and runtime.
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// http://go.microsoft.com/fwlink/p/?LinkId=271568
//--------------------------------------------------------------------------------------
#pragma once
namespace D3DX11Effects
{
//////////////////////////////////////////////////////////////////////////
// Version Control
//////////////////////////////////////////////////////////////////////////
#define D3DX11_FXL_VERSION(_Major,_Minor) (('F' << 24) | ('X' << 16) | ((_Major) << 8) | (_Minor))
struct EVersionTag
{
const char* m_pName;
DWORD m_Version;
uint32_t m_Tag;
};
// versions must be listed in ascending order
static const EVersionTag g_EffectVersions[] =
{
{ "fx_4_0", D3DX11_FXL_VERSION(4,0), 0xFEFF1001 },
{ "fx_4_1", D3DX11_FXL_VERSION(4,1), 0xFEFF1011 },
{ "fx_5_0", D3DX11_FXL_VERSION(5,0), 0xFEFF2001 },
};
//////////////////////////////////////////////////////////////////////////
// Reflection & Type structures
//////////////////////////////////////////////////////////////////////////
// Enumeration of the possible left-hand side values of an assignment,
// divided up categorically by the type of block they may appear in
enum ELhsType
{
ELHS_Invalid,
// Pass block assignment types
ELHS_PixelShaderBlock, // SBlock *pValue points to the block to apply
ELHS_VertexShaderBlock,
ELHS_GeometryShaderBlock,
ELHS_RenderTargetView,
ELHS_DepthStencilView,
ELHS_RasterizerBlock,
ELHS_DepthStencilBlock,
ELHS_BlendBlock,
ELHS_GenerateMips, // This is really a call to D3D::GenerateMips
// Various SAssignment.Value.*
ELHS_DS_StencilRef, // SAssignment.Value.pdValue
ELHS_B_BlendFactor, // D3D11_BLEND_CONFIG.BlendFactor, points to a float4
ELHS_B_SampleMask, // D3D11_BLEND_CONFIG.SampleMask
ELHS_GeometryShaderSO, // When setting SO assignments, GeometryShaderSO precedes the actual GeometryShader assn
ELHS_ComputeShaderBlock,
ELHS_HullShaderBlock,
ELHS_DomainShaderBlock,
// Rasterizer
ELHS_FillMode = 0x20000,
ELHS_CullMode,
ELHS_FrontCC,
ELHS_DepthBias,
ELHS_DepthBiasClamp,
ELHS_SlopeScaledDepthBias,
ELHS_DepthClipEnable,
ELHS_ScissorEnable,
ELHS_MultisampleEnable,
ELHS_AntialiasedLineEnable,
// Sampler
ELHS_Filter = 0x30000,
ELHS_AddressU,
ELHS_AddressV,
ELHS_AddressW,
ELHS_MipLODBias,
ELHS_MaxAnisotropy,
ELHS_ComparisonFunc,
ELHS_BorderColor,
ELHS_MinLOD,
ELHS_MaxLOD,
ELHS_Texture,
// DepthStencil
ELHS_DepthEnable = 0x40000,
ELHS_DepthWriteMask,
ELHS_DepthFunc,
ELHS_StencilEnable,
ELHS_StencilReadMask,
ELHS_StencilWriteMask,
ELHS_FrontFaceStencilFailOp,
ELHS_FrontFaceStencilDepthFailOp,
ELHS_FrontFaceStencilPassOp,
ELHS_FrontFaceStencilFunc,
ELHS_BackFaceStencilFailOp,
ELHS_BackFaceStencilDepthFailOp,
ELHS_BackFaceStencilPassOp,
ELHS_BackFaceStencilFunc,
// BlendState
ELHS_AlphaToCoverage = 0x50000,
ELHS_BlendEnable,
ELHS_SrcBlend,
ELHS_DestBlend,
ELHS_BlendOp,
ELHS_SrcBlendAlpha,
ELHS_DestBlendAlpha,
ELHS_BlendOpAlpha,
ELHS_RenderTargetWriteMask,
};
enum EBlockType
{
EBT_Invalid,
EBT_DepthStencil,
EBT_Blend,
EBT_Rasterizer,
EBT_Sampler,
EBT_Pass
};
enum EVarType
{
EVT_Invalid,
EVT_Numeric,
EVT_Object,
EVT_Struct,
EVT_Interface,
};
enum EScalarType
{
EST_Invalid,
EST_Float,
EST_Int,
EST_UInt,
EST_Bool,
EST_Count
};
enum ENumericLayout
{
ENL_Invalid,
ENL_Scalar,
ENL_Vector,
ENL_Matrix,
ENL_Count
};
enum EObjectType
{
EOT_Invalid,
EOT_String,
EOT_Blend,
EOT_DepthStencil,
EOT_Rasterizer,
EOT_PixelShader,
EOT_VertexShader,
EOT_GeometryShader, // Regular geometry shader
EOT_GeometryShaderSO, // Geometry shader with a attached StreamOut decl
EOT_Texture,
EOT_Texture1D,
EOT_Texture1DArray,
EOT_Texture2D,
EOT_Texture2DArray,
EOT_Texture2DMS,
EOT_Texture2DMSArray,
EOT_Texture3D,
EOT_TextureCube,
EOT_ConstantBuffer,
EOT_RenderTargetView,
EOT_DepthStencilView,
EOT_Sampler,
EOT_Buffer,
EOT_TextureCubeArray,
EOT_Count,
EOT_PixelShader5,
EOT_VertexShader5,
EOT_GeometryShader5,
EOT_ComputeShader5,
EOT_HullShader5,
EOT_DomainShader5,
EOT_RWTexture1D,
EOT_RWTexture1DArray,
EOT_RWTexture2D,
EOT_RWTexture2DArray,
EOT_RWTexture3D,
EOT_RWBuffer,
EOT_ByteAddressBuffer,
EOT_RWByteAddressBuffer,
EOT_StructuredBuffer,
EOT_RWStructuredBuffer,
EOT_RWStructuredBufferAlloc,
EOT_RWStructuredBufferConsume,
EOT_AppendStructuredBuffer,
EOT_ConsumeStructuredBuffer,
};
inline bool IsObjectTypeHelper(EVarType InVarType,
EObjectType InObjType,
EObjectType TargetObjType)
{
return (InVarType == EVT_Object) && (InObjType == TargetObjType);
}
inline bool IsSamplerHelper(EVarType InVarType,
EObjectType InObjType)
{
return (InVarType == EVT_Object) && (InObjType == EOT_Sampler);
}
inline bool IsStateBlockObjectHelper(EVarType InVarType,
EObjectType InObjType)
{
return (InVarType == EVT_Object) && ((InObjType == EOT_Blend) || (InObjType == EOT_DepthStencil) || (InObjType == EOT_Rasterizer) || IsSamplerHelper(InVarType, InObjType));
}
inline bool IsShaderHelper(EVarType InVarType,
EObjectType InObjType)
{
return (InVarType == EVT_Object) && ((InObjType == EOT_VertexShader) ||
(InObjType == EOT_VertexShader5) ||
(InObjType == EOT_HullShader5) ||
(InObjType == EOT_DomainShader5) ||
(InObjType == EOT_ComputeShader5) ||
(InObjType == EOT_GeometryShader) ||
(InObjType == EOT_GeometryShaderSO) ||
(InObjType == EOT_GeometryShader5) ||
(InObjType == EOT_PixelShader) ||
(InObjType == EOT_PixelShader5));
}
inline bool IsShader5Helper(EVarType InVarType,
EObjectType InObjType)
{
return (InVarType == EVT_Object) && ((InObjType == EOT_VertexShader5) ||
(InObjType == EOT_HullShader5) ||
(InObjType == EOT_DomainShader5) ||
(InObjType == EOT_ComputeShader5) ||
(InObjType == EOT_GeometryShader5) ||
(InObjType == EOT_PixelShader5));
}
inline bool IsInterfaceHelper(EVarType InVarType, EObjectType InObjType)
{
UNREFERENCED_PARAMETER(InObjType);
return (InVarType == EVT_Interface);
}
inline bool IsShaderResourceHelper(EVarType InVarType,
EObjectType InObjType)
{
return (InVarType == EVT_Object) && ((InObjType == EOT_Texture) ||
(InObjType == EOT_Texture1D) ||
(InObjType == EOT_Texture1DArray) ||
(InObjType == EOT_Texture2D) ||
(InObjType == EOT_Texture2DArray) ||
(InObjType == EOT_Texture2DMS) ||
(InObjType == EOT_Texture2DMSArray) ||
(InObjType == EOT_Texture3D) ||
(InObjType == EOT_TextureCube) ||
(InObjType == EOT_TextureCubeArray) ||
(InObjType == EOT_Buffer) ||
(InObjType == EOT_StructuredBuffer) ||
(InObjType == EOT_ByteAddressBuffer));
}
inline bool IsUnorderedAccessViewHelper(EVarType InVarType,
EObjectType InObjType)
{
return (InVarType == EVT_Object) &&
((InObjType == EOT_RWTexture1D) ||
(InObjType == EOT_RWTexture1DArray) ||
(InObjType == EOT_RWTexture2D) ||
(InObjType == EOT_RWTexture2DArray) ||
(InObjType == EOT_RWTexture3D) ||
(InObjType == EOT_RWBuffer) ||
(InObjType == EOT_RWByteAddressBuffer) ||
(InObjType == EOT_RWStructuredBuffer) ||
(InObjType == EOT_RWStructuredBufferAlloc) ||
(InObjType == EOT_RWStructuredBufferConsume) ||
(InObjType == EOT_AppendStructuredBuffer) ||
(InObjType == EOT_ConsumeStructuredBuffer));
}
inline bool IsRenderTargetViewHelper(EVarType InVarType,
EObjectType InObjType)
{
return (InVarType == EVT_Object) && (InObjType == EOT_RenderTargetView);
}
inline bool IsDepthStencilViewHelper(EVarType InVarType,
EObjectType InObjType)
{
return (InVarType == EVT_Object) && (InObjType == EOT_DepthStencilView);
}
inline bool IsObjectAssignmentHelper(ELhsType LhsType)
{
switch(LhsType)
{
case ELHS_VertexShaderBlock:
case ELHS_HullShaderBlock:
case ELHS_DepthStencilView:
case ELHS_GeometryShaderBlock:
case ELHS_PixelShaderBlock:
case ELHS_ComputeShaderBlock:
case ELHS_DepthStencilBlock:
case ELHS_RasterizerBlock:
case ELHS_BlendBlock:
case ELHS_Texture:
case ELHS_RenderTargetView:
case ELHS_DomainShaderBlock:
return true;
}
return false;
}
// Effect file format structures /////////////////////////////////////////////
// File format:
// File header (SBinaryHeader Header)
// Unstructured data block (uint8_t[Header.cbUnstructured))
// Structured data block
// ConstantBuffer (SBinaryConstantBuffer CB) * Header.Effect.cCBs
// uint32_t NumAnnotations
// Annotation data (SBinaryAnnotation) * (NumAnnotations) *this structure is variable sized
// Variable data (SBinaryNumericVariable Var) * (CB.cVariables)
// uint32_t NumAnnotations
// Annotation data (SBinaryAnnotation) * (NumAnnotations) *this structure is variable sized
// Object variables (SBinaryObjectVariable Var) * (Header.cObjectVariables) *this structure is variable sized
// uint32_t NumAnnotations
// Annotation data (SBinaryAnnotation) * (NumAnnotations) *this structure is variable sized
// Interface variables (SBinaryInterfaceVariable Var) * (Header.cInterfaceVariables) *this structure is variable sized
// uint32_t NumAnnotations
// Annotation data (SBinaryAnnotation) * (NumAnnotations) *this structure is variable sized
// Groups (SBinaryGroup Group) * Header.cGroups
// uint32_t NumAnnotations
// Annotation data (SBinaryAnnotation) * (NumAnnotations) *this structure is variable sized
// Techniques (SBinaryTechnique Technique) * Group.cTechniques
// uint32_t NumAnnotations
// Annotation data (SBinaryAnnotation) * (NumAnnotations) *this structure is variable sized
// Pass (SBinaryPass Pass) * Technique.cPasses
// uint32_t NumAnnotations
// Annotation data (SBinaryAnnotation) * (NumAnnotations) *this structure is variable sized
// Pass assignments (SBinaryAssignment) * Pass.cAssignments
struct SBinaryHeader
{
struct SVarCounts
{
uint32_t cCBs;
uint32_t cNumericVariables;
uint32_t cObjectVariables;
};
uint32_t Tag; // should be equal to c_EffectFileTag
// this is used to identify ASCII vs Binary files
SVarCounts Effect;
SVarCounts Pool;
uint32_t cTechniques;
uint32_t cbUnstructured;
uint32_t cStrings;
uint32_t cShaderResources;
uint32_t cDepthStencilBlocks;
uint32_t cBlendStateBlocks;
uint32_t cRasterizerStateBlocks;
uint32_t cSamplers;
uint32_t cRenderTargetViews;
uint32_t cDepthStencilViews;
uint32_t cTotalShaders;
uint32_t cInlineShaders; // of the aforementioned shaders, the number that are defined inline within pass blocks
inline bool RequiresPool() const
{
return (Pool.cCBs != 0) ||
(Pool.cNumericVariables != 0) ||
(Pool.cObjectVariables != 0);
}
};
struct SBinaryHeader5 : public SBinaryHeader
{
uint32_t cGroups;
uint32_t cUnorderedAccessViews;
uint32_t cInterfaceVariables;
uint32_t cInterfaceVariableElements;
uint32_t cClassInstanceElements;
};
// Constant buffer definition
struct SBinaryConstantBuffer
{
// private flags
static const uint32_t c_IsTBuffer = (1 << 0);
static const uint32_t c_IsSingle = (1 << 1);
uint32_t oName; // Offset to constant buffer name
uint32_t Size; // Size, in bytes
uint32_t Flags;
uint32_t cVariables; // # of variables inside this buffer
uint32_t ExplicitBindPoint; // Defined if the effect file specifies a bind point using the register keyword
// otherwise, -1
};
struct SBinaryAnnotation
{
uint32_t oName; // Offset to variable name
uint32_t oType; // Offset to type information (SBinaryType)
// For numeric annotations:
// uint32_t oDefaultValue; // Offset to default initializer value
//
// For string annotations:
// uint32_t oStringOffsets[Elements]; // Elements comes from the type data at oType
};
struct SBinaryNumericVariable
{
uint32_t oName; // Offset to variable name
uint32_t oType; // Offset to type information (SBinaryType)
uint32_t oSemantic; // Offset to semantic information
uint32_t Offset; // Offset in parent constant buffer
uint32_t oDefaultValue; // Offset to default initializer value
uint32_t Flags; // Explicit bind point
};
struct SBinaryInterfaceVariable
{
uint32_t oName; // Offset to variable name
uint32_t oType; // Offset to type information (SBinaryType)
uint32_t oDefaultValue; // Offset to default initializer array (SBinaryInterfaceInitializer[Elements])
uint32_t Flags;
};
struct SBinaryInterfaceInitializer
{
uint32_t oInstanceName;
uint32_t ArrayIndex;
};
struct SBinaryObjectVariable
{
uint32_t oName; // Offset to variable name
uint32_t oType; // Offset to type information (SBinaryType)
uint32_t oSemantic; // Offset to semantic information
uint32_t ExplicitBindPoint; // Used when a variable has been explicitly bound (register(XX)). -1 if not
// Initializer data:
//
// The type structure pointed to by oType gives you Elements,
// VarType (must be EVT_Object), and ObjectType
//
// For ObjectType == EOT_Blend, EOT_DepthStencil, EOT_Rasterizer, EOT_Sampler
// struct
// {
// uint32_t cAssignments;
// SBinaryAssignment Assignments[cAssignments];
// } Blocks[Elements]
//
// For EObjectType == EOT_Texture*, EOT_Buffer
// <nothing>
//
// For EObjectType == EOT_*Shader, EOT_String
// uint32_t oData[Elements]; // offsets to a shader data block or a nullptr-terminated string
//
// For EObjectType == EOT_GeometryShaderSO
// SBinaryGSSOInitializer[Elements]
//
// For EObjectType == EOT_*Shader5
// SBinaryShaderData5[Elements]
};
struct SBinaryGSSOInitializer
{
uint32_t oShader; // Offset to shader bytecode data block
uint32_t oSODecl; // Offset to StreamOutput decl string
};
struct SBinaryShaderData5
{
uint32_t oShader; // Offset to shader bytecode data block
uint32_t oSODecls[4]; // Offset to StreamOutput decl strings
uint32_t cSODecls; // Count of valid oSODecls entries.
uint32_t RasterizedStream; // Which stream is used for rasterization
uint32_t cInterfaceBindings; // Count of interface bindings.
uint32_t oInterfaceBindings; // Offset to SBinaryInterfaceInitializer[cInterfaceBindings].
};
struct SBinaryType
{
uint32_t oTypeName; // Offset to friendly type name ("float4", "VS_OUTPUT")
EVarType VarType; // Numeric, Object, or Struct
uint32_t Elements; // # of array elements (0 for non-arrays)
uint32_t TotalSize; // Size in bytes; not necessarily Stride * Elements for arrays
// because of possible gap left in final register
uint32_t Stride; // If an array, this is the spacing between elements.
// For unpacked arrays, always divisible by 16-bytes (1 register).
// No support for packed arrays
uint32_t PackedSize; // Size, in bytes, of this data typed when fully packed
struct SBinaryMember
{
uint32_t oName; // Offset to structure member name ("m_pFoo")
uint32_t oSemantic; // Offset to semantic ("POSITION0")
uint32_t Offset; // Offset, in bytes, relative to start of parent structure
uint32_t oType; // Offset to member's type descriptor
};
// the data that follows depends on the VarType:
// Numeric: SType::SNumericType
// Object: EObjectType
// Struct:
// struct
// {
// uint32_t cMembers;
// SBinaryMembers Members[cMembers];
// } MemberInfo
// struct
// {
// uint32_t oBaseClassType; // Offset to type information (SBinaryType)
// uint32_t cInterfaces;
// uint32_t oInterfaceTypes[cInterfaces];
// } SBinaryTypeInheritance
// Interface: (nothing)
};
struct SBinaryNumericType
{
ENumericLayout NumericLayout : 3; // scalar (1x1), vector (1xN), matrix (NxN)
EScalarType ScalarType : 5; // float32, int32, int8, etc.
uint32_t Rows : 3; // 1 <= Rows <= 4
uint32_t Columns : 3; // 1 <= Columns <= 4
uint32_t IsColumnMajor : 1; // applies only to matrices
uint32_t IsPackedArray : 1; // if this is an array, indicates whether elements should be greedily packed
};
struct SBinaryTypeInheritance
{
uint32_t oBaseClass; // Offset to base class type info or 0 if no base class.
uint32_t cInterfaces;
// Followed by uint32_t[cInterfaces] with offsets to the type
// info of each interface.
};
struct SBinaryGroup
{
uint32_t oName;
uint32_t cTechniques;
};
struct SBinaryTechnique
{
uint32_t oName;
uint32_t cPasses;
};
struct SBinaryPass
{
uint32_t oName;
uint32_t cAssignments;
};
enum ECompilerAssignmentType
{
ECAT_Invalid, // Assignment-specific data (always in the unstructured blob)
ECAT_Constant, // -N SConstant structures
ECAT_Variable, // -nullptr terminated string with variable name ("foo")
ECAT_ConstIndex, // -SConstantIndex structure
ECAT_VariableIndex, // -SVariableIndex structure
ECAT_ExpressionIndex, // -SIndexedObjectExpression structure
ECAT_Expression, // -Data block containing FXLVM code
ECAT_InlineShader, // -Data block containing shader
ECAT_InlineShader5, // -Data block containing shader with extended 5.0 data (SBinaryShaderData5)
};
struct SBinaryAssignment
{
uint32_t iState; // index into g_lvGeneral
uint32_t Index; // the particular index to assign to (see g_lvGeneral to find the # of valid indices)
ECompilerAssignmentType AssignmentType;
uint32_t oInitializer; // Offset of assignment-specific data
struct SConstantIndex
{
uint32_t oArrayName;
uint32_t Index;
};
struct SVariableIndex
{
uint32_t oArrayName;
uint32_t oIndexVarName;
};
struct SIndexedObjectExpression
{
uint32_t oArrayName;
uint32_t oCode;
};
struct SInlineShader
{
uint32_t oShader;
uint32_t oSODecl;
};
};
struct SBinaryConstant
{
EScalarType Type;
union
{
BOOL bValue;
INT iValue;
float fValue;
};
};
static_assert( sizeof(SBinaryHeader) == 76, "FX11 binary size mismatch" );
static_assert( sizeof(SBinaryHeader::SVarCounts) == 12, "FX11 binary size mismatch" );
static_assert( sizeof(SBinaryHeader5) == 96, "FX11 binary size mismatch" );
static_assert( sizeof(SBinaryConstantBuffer) == 20, "FX11 binary size mismatch" );
static_assert( sizeof(SBinaryAnnotation) == 8, "FX11 binary size mismatch" );
static_assert( sizeof(SBinaryNumericVariable) == 24, "FX11 binary size mismatch" );
static_assert( sizeof(SBinaryInterfaceVariable) == 16, "FX11 binary size mismatch" );
static_assert( sizeof(SBinaryInterfaceInitializer) == 8, "FX11 binary size mismatch" );
static_assert( sizeof(SBinaryObjectVariable) == 16, "FX11 binary size mismatch" );
static_assert( sizeof(SBinaryGSSOInitializer) == 8, "FX11 binary size mismatch" );
static_assert( sizeof(SBinaryShaderData5) == 36, "FX11 binary size mismatch" );
static_assert( sizeof(SBinaryType) == 24, "FX11 binary size mismatch" );
static_assert( sizeof(SBinaryType::SBinaryMember) == 16, "FX11 binary size mismatch" );
static_assert( sizeof(SBinaryNumericType) == 4, "FX11 binary size mismatch" );
static_assert( sizeof(SBinaryTypeInheritance) == 8, "FX11 binary size mismatch" );
static_assert( sizeof(SBinaryGroup) == 8, "FX11 binary size mismatch" );
static_assert( sizeof(SBinaryTechnique) == 8, "FX11 binary size mismatch" );
static_assert( sizeof(SBinaryPass) == 8, "FX11 binary size mismatch" );
static_assert( sizeof(SBinaryAssignment) == 16, "FX11 binary size mismatch" );
static_assert( sizeof(SBinaryAssignment::SConstantIndex) == 8, "FX11 binary size mismatch" );
static_assert( sizeof(SBinaryAssignment::SVariableIndex) == 8, "FX11 binary size mismatch" );
static_assert( sizeof(SBinaryAssignment::SIndexedObjectExpression) == 8, "FX11 binary size mismatch" );
static_assert( sizeof(SBinaryAssignment::SInlineShader) == 8, "FX11 binary size mismatch" );
} // end namespace D3DX11Effects

View File

@@ -0,0 +1,55 @@
//--------------------------------------------------------------------------------------
// File: EffectStateBase11.h
//
// Direct3D 11 Effects States Header
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// http://go.microsoft.com/fwlink/p/?LinkId=271568
//--------------------------------------------------------------------------------------
#pragma once
namespace D3DX11Effects
{
//////////////////////////////////////////////////////////////////////////
// Effect HLSL states and late resolve lists
//////////////////////////////////////////////////////////////////////////
struct RValue
{
const char *m_pName;
uint32_t m_Value;
};
#define RVALUE_END() { nullptr, 0U }
#define RVALUE_ENTRY(prefix, x) { #x, (uint32_t)prefix##x }
enum ELhsType : int;
struct LValue
{
const char *m_pName; // name of the LHS side of expression
EBlockType m_BlockType; // type of block it can appear in
D3D_SHADER_VARIABLE_TYPE m_Type; // data type allows
uint32_t m_Cols; // number of [m_Type]'s required (1 for a scalar, 4 for a vector)
uint32_t m_Indices; // max index allowable (if LHS is an array; otherwise this is 1)
bool m_VectorScalar; // can be both vector and scalar (setting as a scalar sets all m_Indices values simultaneously)
const RValue *m_pRValue; // pointer to table of allowable RHS "late resolve" values
ELhsType m_LhsType; // ELHS_* enum value that corresponds to this entry
uint32_t m_Offset; // offset into the given block type where this value should be written
uint32_t m_Stride; // for vectors, byte stride between two consecutive values. if 0, m_Type's size is used
};
#define LVALUE_END() { nullptr, D3D_SVT_UINT, 0, 0, 0, nullptr }
extern const LValue g_lvGeneral[];
extern const uint32_t g_lvGeneralCount;
} // end namespace D3DX11Effects

View File

@@ -0,0 +1,241 @@
//--------------------------------------------------------------------------------------
// File: EffectStates11.h
//
// Direct3D 11 Effects States Header
// This file defines properties of states which can appear in
// state blocks and pass blocks.
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// http://go.microsoft.com/fwlink/p/?LinkId=271568
//--------------------------------------------------------------------------------------
#pragma once
#include "EffectStateBase11.h"
namespace D3DX11Effects
{
//////////////////////////////////////////////////////////////////////////
// Effect HLSL late resolve lists (state values)
//////////////////////////////////////////////////////////////////////////
static const RValue g_rvNULL[] =
{
{ "nullptr", 0 },
RVALUE_END()
};
static const RValue g_rvBOOL[] =
{
{ "false", 0 },
{ "true", 1 },
RVALUE_END()
};
static const RValue g_rvDEPTH_WRITE_MASK[] =
{
{ "ZERO", D3D11_DEPTH_WRITE_MASK_ZERO },
{ "ALL", D3D11_DEPTH_WRITE_MASK_ALL },
RVALUE_END()
};
static const RValue g_rvFILL[] =
{
{ "WIREFRAME", D3D11_FILL_WIREFRAME },
{ "SOLID", D3D11_FILL_SOLID },
RVALUE_END()
};
static const RValue g_rvFILTER[] =
{
RVALUE_ENTRY(D3D11_FILTER_, MIN_MAG_MIP_POINT ),
RVALUE_ENTRY(D3D11_FILTER_, MIN_MAG_POINT_MIP_LINEAR ),
RVALUE_ENTRY(D3D11_FILTER_, MIN_POINT_MAG_LINEAR_MIP_POINT ),
RVALUE_ENTRY(D3D11_FILTER_, MIN_POINT_MAG_MIP_LINEAR ),
RVALUE_ENTRY(D3D11_FILTER_, MIN_LINEAR_MAG_MIP_POINT ),
RVALUE_ENTRY(D3D11_FILTER_, MIN_LINEAR_MAG_POINT_MIP_LINEAR ),
RVALUE_ENTRY(D3D11_FILTER_, MIN_MAG_LINEAR_MIP_POINT ),
RVALUE_ENTRY(D3D11_FILTER_, MIN_MAG_MIP_LINEAR ),
RVALUE_ENTRY(D3D11_FILTER_, ANISOTROPIC ),
RVALUE_ENTRY(D3D11_FILTER_, COMPARISON_MIN_MAG_MIP_POINT ),
RVALUE_ENTRY(D3D11_FILTER_, COMPARISON_MIN_MAG_POINT_MIP_LINEAR ),
RVALUE_ENTRY(D3D11_FILTER_, COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT ),
RVALUE_ENTRY(D3D11_FILTER_, COMPARISON_MIN_POINT_MAG_MIP_LINEAR ),
RVALUE_ENTRY(D3D11_FILTER_, COMPARISON_MIN_LINEAR_MAG_MIP_POINT ),
RVALUE_ENTRY(D3D11_FILTER_, COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR ),
RVALUE_ENTRY(D3D11_FILTER_, COMPARISON_MIN_MAG_LINEAR_MIP_POINT ),
RVALUE_ENTRY(D3D11_FILTER_, COMPARISON_MIN_MAG_MIP_LINEAR ),
RVALUE_ENTRY(D3D11_FILTER_, COMPARISON_ANISOTROPIC ),
RVALUE_END()
};
static const RValue g_rvBLEND[] =
{
{ "ZERO", D3D11_BLEND_ZERO },
{ "ONE", D3D11_BLEND_ONE },
{ "SRC_COLOR", D3D11_BLEND_SRC_COLOR },
{ "INV_SRC_COLOR", D3D11_BLEND_INV_SRC_COLOR },
{ "SRC_ALPHA", D3D11_BLEND_SRC_ALPHA },
{ "INV_SRC_ALPHA", D3D11_BLEND_INV_SRC_ALPHA },
{ "DEST_ALPHA", D3D11_BLEND_DEST_ALPHA },
{ "INV_DEST_ALPHA", D3D11_BLEND_INV_DEST_ALPHA },
{ "DEST_COLOR", D3D11_BLEND_DEST_COLOR },
{ "INV_DEST_COLOR", D3D11_BLEND_INV_DEST_COLOR },
{ "SRC_ALPHA_SAT", D3D11_BLEND_SRC_ALPHA_SAT },
{ "BLEND_FACTOR", D3D11_BLEND_BLEND_FACTOR },
{ "INV_BLEND_FACTOR", D3D11_BLEND_INV_BLEND_FACTOR },
{ "SRC1_COLOR", D3D11_BLEND_SRC1_COLOR },
{ "INV_SRC1_COLOR", D3D11_BLEND_INV_SRC1_COLOR },
{ "SRC1_ALPHA", D3D11_BLEND_SRC1_ALPHA },
{ "INV_SRC1_ALPHA", D3D11_BLEND_INV_SRC1_ALPHA },
RVALUE_END()
};
static const RValue g_rvTADDRESS[] =
{
{ "CLAMP", D3D11_TEXTURE_ADDRESS_CLAMP },
{ "WRAP", D3D11_TEXTURE_ADDRESS_WRAP },
{ "MIRROR", D3D11_TEXTURE_ADDRESS_MIRROR },
{ "BORDER", D3D11_TEXTURE_ADDRESS_BORDER },
{ "MIRROR_ONCE", D3D11_TEXTURE_ADDRESS_MIRROR_ONCE },
RVALUE_END()
};
static const RValue g_rvCULL[] =
{
{ "NONE", D3D11_CULL_NONE },
{ "FRONT", D3D11_CULL_FRONT },
{ "BACK", D3D11_CULL_BACK },
RVALUE_END()
};
static const RValue g_rvCMP[] =
{
{ "NEVER", D3D11_COMPARISON_NEVER },
{ "LESS", D3D11_COMPARISON_LESS },
{ "EQUAL", D3D11_COMPARISON_EQUAL },
{ "LESS_EQUAL", D3D11_COMPARISON_LESS_EQUAL },
{ "GREATER", D3D11_COMPARISON_GREATER },
{ "NOT_EQUAL", D3D11_COMPARISON_NOT_EQUAL },
{ "GREATER_EQUAL", D3D11_COMPARISON_GREATER_EQUAL },
{ "ALWAYS", D3D11_COMPARISON_ALWAYS },
RVALUE_END()
};
static const RValue g_rvSTENCILOP[] =
{
{ "KEEP", D3D11_STENCIL_OP_KEEP },
{ "ZERO", D3D11_STENCIL_OP_ZERO },
{ "REPLACE", D3D11_STENCIL_OP_REPLACE },
{ "INCR_SAT", D3D11_STENCIL_OP_INCR_SAT },
{ "DECR_SAT", D3D11_STENCIL_OP_DECR_SAT },
{ "INVERT", D3D11_STENCIL_OP_INVERT },
{ "INCR", D3D11_STENCIL_OP_INCR },
{ "DECR", D3D11_STENCIL_OP_DECR },
RVALUE_END()
};
static const RValue g_rvBLENDOP[] =
{
{ "ADD", D3D11_BLEND_OP_ADD },
{ "SUBTRACT", D3D11_BLEND_OP_SUBTRACT },
{ "REV_SUBTRACT", D3D11_BLEND_OP_REV_SUBTRACT },
{ "MIN", D3D11_BLEND_OP_MIN },
{ "MAX", D3D11_BLEND_OP_MAX },
RVALUE_END()
};
//////////////////////////////////////////////////////////////////////////
// Effect HLSL states
//////////////////////////////////////////////////////////////////////////
#define strideof( s, m ) offsetof_fx(s,m[1]) - offsetof_fx(s,m[0])
const LValue g_lvGeneral[] =
{
// RObjects
{ "RasterizerState", EBT_Pass, D3D_SVT_RASTERIZER, 1, 1, false, nullptr, ELHS_RasterizerBlock, offsetof_fx(SPassBlock, BackingStore.pRasterizerBlock), 0 },
{ "DepthStencilState", EBT_Pass, D3D_SVT_DEPTHSTENCIL, 1, 1, false, nullptr, ELHS_DepthStencilBlock, offsetof_fx(SPassBlock, BackingStore.pDepthStencilBlock), 0 },
{ "BlendState", EBT_Pass, D3D_SVT_BLEND, 1, 1, false, nullptr, ELHS_BlendBlock, offsetof_fx(SPassBlock, BackingStore.pBlendBlock), 0 },
{ "RenderTargetView", EBT_Pass, D3D_SVT_RENDERTARGETVIEW, 1, 8, false, nullptr, ELHS_RenderTargetView, offsetof_fx(SPassBlock, BackingStore.pRenderTargetViews), 0 },
{ "DepthStencilView", EBT_Pass, D3D_SVT_DEPTHSTENCILVIEW, 1, 8, false, nullptr, ELHS_DepthStencilView, offsetof_fx(SPassBlock, BackingStore.pDepthStencilView), 0 },
{ "GenerateMips", EBT_Pass, D3D_SVT_TEXTURE, 1, 1, false, nullptr, ELHS_GenerateMips, 0, 0 },
// Shaders
{ "VertexShader", EBT_Pass, D3D_SVT_VERTEXSHADER, 1, 1, false, g_rvNULL, ELHS_VertexShaderBlock, offsetof_fx(SPassBlock, BackingStore.pVertexShaderBlock), 0 },
{ "PixelShader", EBT_Pass, D3D_SVT_PIXELSHADER, 1, 1, false, g_rvNULL, ELHS_PixelShaderBlock, offsetof_fx(SPassBlock, BackingStore.pPixelShaderBlock), 0 },
{ "GeometryShader", EBT_Pass, D3D_SVT_GEOMETRYSHADER, 1, 1, false, g_rvNULL, ELHS_GeometryShaderBlock, offsetof_fx(SPassBlock, BackingStore.pGeometryShaderBlock), 0 },
// RObject config assignments
{ "DS_StencilRef", EBT_Pass, D3D_SVT_UINT, 1, 1, false, nullptr, ELHS_DS_StencilRef, offsetof_fx(SPassBlock, BackingStore.StencilRef), 0 },
{ "AB_BlendFactor", EBT_Pass, D3D_SVT_FLOAT, 4, 1, false, nullptr, ELHS_B_BlendFactor, offsetof_fx(SPassBlock, BackingStore.BlendFactor), 0 },
{ "AB_SampleMask", EBT_Pass, D3D_SVT_UINT, 1, 1, false, nullptr, ELHS_B_SampleMask, offsetof_fx(SPassBlock, BackingStore.SampleMask), 0 },
{ "FillMode", EBT_Rasterizer, D3D_SVT_UINT, 1, 1, false, g_rvFILL, ELHS_FillMode, offsetof_fx(SRasterizerBlock, BackingStore.FillMode), 0 },
{ "CullMode", EBT_Rasterizer, D3D_SVT_UINT, 1, 1, false, g_rvCULL, ELHS_CullMode, offsetof_fx(SRasterizerBlock, BackingStore.CullMode), 0 },
{ "FrontCounterClockwise", EBT_Rasterizer, D3D_SVT_BOOL, 1, 1, false, g_rvBOOL, ELHS_FrontCC, offsetof_fx(SRasterizerBlock, BackingStore.FrontCounterClockwise), 0 },
{ "DepthBias", EBT_Rasterizer, D3D_SVT_UINT, 1, 1, false, nullptr, ELHS_DepthBias, offsetof_fx(SRasterizerBlock, BackingStore.DepthBias), 0 },
{ "DepthBiasClamp", EBT_Rasterizer, D3D_SVT_FLOAT, 1, 1, false, nullptr, ELHS_DepthBiasClamp, offsetof_fx(SRasterizerBlock, BackingStore.DepthBiasClamp), 0 },
{ "SlopeScaledDepthBias", EBT_Rasterizer, D3D_SVT_FLOAT, 1, 1, false, nullptr, ELHS_SlopeScaledDepthBias, offsetof_fx(SRasterizerBlock, BackingStore.SlopeScaledDepthBias), 0 },
{ "DepthClipEnable", EBT_Rasterizer, D3D_SVT_BOOL, 1, 1, false, g_rvBOOL, ELHS_DepthClipEnable, offsetof_fx(SRasterizerBlock, BackingStore.DepthClipEnable), 0 },
{ "ScissorEnable", EBT_Rasterizer, D3D_SVT_BOOL, 1, 1, false, g_rvBOOL, ELHS_ScissorEnable, offsetof_fx(SRasterizerBlock, BackingStore.ScissorEnable), 0 },
{ "MultisampleEnable", EBT_Rasterizer, D3D_SVT_BOOL, 1, 1, false, g_rvBOOL, ELHS_MultisampleEnable, offsetof_fx(SRasterizerBlock, BackingStore.MultisampleEnable), 0 },
{ "AntialiasedLineEnable", EBT_Rasterizer, D3D_SVT_BOOL, 1, 1, false, g_rvBOOL, ELHS_AntialiasedLineEnable, offsetof_fx(SRasterizerBlock, BackingStore.AntialiasedLineEnable), 0 },
{ "DepthEnable", EBT_DepthStencil, D3D_SVT_BOOL, 1, 1, false, g_rvBOOL, ELHS_DepthEnable, offsetof_fx(SDepthStencilBlock, BackingStore.DepthEnable), 0 },
{ "DepthWriteMask", EBT_DepthStencil, D3D_SVT_UINT, 1, 1, false, g_rvDEPTH_WRITE_MASK, ELHS_DepthWriteMask, offsetof_fx(SDepthStencilBlock, BackingStore.DepthWriteMask), 0 },
{ "DepthFunc", EBT_DepthStencil, D3D_SVT_UINT, 1, 1, false, g_rvCMP, ELHS_DepthFunc, offsetof_fx(SDepthStencilBlock, BackingStore.DepthFunc), 0 },
{ "StencilEnable", EBT_DepthStencil, D3D_SVT_BOOL, 1, 1, false, g_rvBOOL, ELHS_StencilEnable, offsetof_fx(SDepthStencilBlock, BackingStore.StencilEnable), 0 },
{ "StencilReadMask", EBT_DepthStencil, D3D_SVT_UINT8, 1, 1, false, nullptr, ELHS_StencilReadMask, offsetof_fx(SDepthStencilBlock, BackingStore.StencilReadMask), 0 },
{ "StencilWriteMask", EBT_DepthStencil, D3D_SVT_UINT8, 1, 1, false, nullptr, ELHS_StencilWriteMask, offsetof_fx(SDepthStencilBlock, BackingStore.StencilWriteMask), 0 },
{ "FrontFaceStencilFail", EBT_DepthStencil, D3D_SVT_UINT, 1, 1, false, g_rvSTENCILOP, ELHS_FrontFaceStencilFailOp, offsetof_fx(SDepthStencilBlock, BackingStore.FrontFace.StencilFailOp), 0 },
{ "FrontFaceStencilDepthFail", EBT_DepthStencil, D3D_SVT_UINT, 1, 1, false, g_rvSTENCILOP, ELHS_FrontFaceStencilDepthFailOp,offsetof_fx(SDepthStencilBlock, BackingStore.FrontFace.StencilDepthFailOp), 0 },
{ "FrontFaceStencilPass", EBT_DepthStencil, D3D_SVT_UINT, 1, 1, false, g_rvSTENCILOP, ELHS_FrontFaceStencilPassOp, offsetof_fx(SDepthStencilBlock, BackingStore.FrontFace.StencilPassOp), 0 },
{ "FrontFaceStencilFunc", EBT_DepthStencil, D3D_SVT_UINT, 1, 1, false, g_rvCMP, ELHS_FrontFaceStencilFunc, offsetof_fx(SDepthStencilBlock, BackingStore.FrontFace.StencilFunc), 0 },
{ "BackFaceStencilFail", EBT_DepthStencil, D3D_SVT_UINT, 1, 1, false, g_rvSTENCILOP, ELHS_BackFaceStencilFailOp, offsetof_fx(SDepthStencilBlock, BackingStore.BackFace.StencilFailOp), 0 },
{ "BackFaceStencilDepthFail", EBT_DepthStencil, D3D_SVT_UINT, 1, 1, false, g_rvSTENCILOP, ELHS_BackFaceStencilDepthFailOp,offsetof_fx(SDepthStencilBlock, BackingStore.BackFace.StencilDepthFailOp), 0 },
{ "BackFaceStencilPass", EBT_DepthStencil, D3D_SVT_UINT, 1, 1, false, g_rvSTENCILOP, ELHS_BackFaceStencilPassOp, offsetof_fx(SDepthStencilBlock, BackingStore.BackFace.StencilPassOp), 0 },
{ "BackFaceStencilFunc", EBT_DepthStencil, D3D_SVT_UINT, 1, 1, false, g_rvCMP, ELHS_BackFaceStencilFunc, offsetof_fx(SDepthStencilBlock, BackingStore.BackFace.StencilFunc), 0 },
{ "AlphaToCoverageEnable", EBT_Blend, D3D_SVT_BOOL, 1, 1, false, g_rvBOOL, ELHS_AlphaToCoverage, offsetof_fx(SBlendBlock, BackingStore.AlphaToCoverageEnable), 0 },
{ "BlendEnable", EBT_Blend, D3D_SVT_BOOL, 1, 8, false, g_rvBOOL, ELHS_BlendEnable, offsetof_fx(SBlendBlock, BackingStore.RenderTarget[0].BlendEnable), strideof(SBlendBlock, BackingStore.RenderTarget) },
{ "SrcBlend", EBT_Blend, D3D_SVT_UINT, 1, 8, true, g_rvBLEND, ELHS_SrcBlend, offsetof_fx(SBlendBlock, BackingStore.RenderTarget[0].SrcBlend), strideof(SBlendBlock, BackingStore.RenderTarget) },
{ "DestBlend", EBT_Blend, D3D_SVT_UINT, 1, 8, true, g_rvBLEND, ELHS_DestBlend, offsetof_fx(SBlendBlock, BackingStore.RenderTarget[0].DestBlend), strideof(SBlendBlock, BackingStore.RenderTarget) },
{ "BlendOp", EBT_Blend, D3D_SVT_UINT, 1, 8, true, g_rvBLENDOP, ELHS_BlendOp, offsetof_fx(SBlendBlock, BackingStore.RenderTarget[0].BlendOp), strideof(SBlendBlock, BackingStore.RenderTarget) },
{ "SrcBlendAlpha", EBT_Blend, D3D_SVT_UINT, 1, 8, true, g_rvBLEND, ELHS_SrcBlendAlpha, offsetof_fx(SBlendBlock, BackingStore.RenderTarget[0].SrcBlendAlpha), strideof(SBlendBlock, BackingStore.RenderTarget) },
{ "DestBlendAlpha", EBT_Blend, D3D_SVT_UINT, 1, 8, true, g_rvBLEND, ELHS_DestBlendAlpha, offsetof_fx(SBlendBlock, BackingStore.RenderTarget[0].DestBlendAlpha), strideof(SBlendBlock, BackingStore.RenderTarget) },
{ "BlendOpAlpha", EBT_Blend, D3D_SVT_UINT, 1, 8, true, g_rvBLENDOP, ELHS_BlendOpAlpha, offsetof_fx(SBlendBlock, BackingStore.RenderTarget[0].BlendOpAlpha), strideof(SBlendBlock, BackingStore.RenderTarget) },
{ "RenderTargetWriteMask", EBT_Blend, D3D_SVT_UINT8, 1, 8, false, nullptr, ELHS_RenderTargetWriteMask, offsetof_fx(SBlendBlock, BackingStore.RenderTarget[0].RenderTargetWriteMask), strideof(SBlendBlock, BackingStore.RenderTarget) },
{ "Filter", EBT_Sampler, D3D_SVT_UINT, 1, 1, false, g_rvFILTER, ELHS_Filter, offsetof_fx(SSamplerBlock, BackingStore.SamplerDesc.Filter), 0 },
{ "AddressU", EBT_Sampler, D3D_SVT_UINT, 1, 1, false, g_rvTADDRESS, ELHS_AddressU, offsetof_fx(SSamplerBlock, BackingStore.SamplerDesc.AddressU), 0 },
{ "AddressV", EBT_Sampler, D3D_SVT_UINT, 1, 1, false, g_rvTADDRESS, ELHS_AddressV, offsetof_fx(SSamplerBlock, BackingStore.SamplerDesc.AddressV), 0 },
{ "AddressW", EBT_Sampler, D3D_SVT_UINT, 1, 1, false, g_rvTADDRESS, ELHS_AddressW, offsetof_fx(SSamplerBlock, BackingStore.SamplerDesc.AddressW), 0 },
{ "MipLODBias", EBT_Sampler, D3D_SVT_FLOAT, 1, 1, false, nullptr, ELHS_MipLODBias, offsetof_fx(SSamplerBlock, BackingStore.SamplerDesc.MipLODBias), 0 },
{ "MaxAnisotropy", EBT_Sampler, D3D_SVT_UINT, 1, 1, false, nullptr, ELHS_MaxAnisotropy, offsetof_fx(SSamplerBlock, BackingStore.SamplerDesc.MaxAnisotropy), 0 },
{ "ComparisonFunc", EBT_Sampler, D3D_SVT_UINT, 1, 1, false, g_rvCMP, ELHS_ComparisonFunc, offsetof_fx(SSamplerBlock, BackingStore.SamplerDesc.ComparisonFunc), 0 },
{ "BorderColor", EBT_Sampler, D3D_SVT_FLOAT, 4, 1, false, nullptr, ELHS_BorderColor, offsetof_fx(SSamplerBlock, BackingStore.SamplerDesc.BorderColor), 0 },
{ "MinLOD", EBT_Sampler, D3D_SVT_FLOAT, 1, 1, false, nullptr, ELHS_MinLOD, offsetof_fx(SSamplerBlock, BackingStore.SamplerDesc.MinLOD), 0 },
{ "MaxLOD", EBT_Sampler, D3D_SVT_FLOAT, 1, 1, false, nullptr, ELHS_MaxLOD, offsetof_fx(SSamplerBlock, BackingStore.SamplerDesc.MaxLOD), 0 },
{ "Texture", EBT_Sampler, D3D_SVT_TEXTURE, 1, 1, false, g_rvNULL, ELHS_Texture, offsetof_fx(SSamplerBlock, BackingStore.pTexture), 0 },
// D3D11
{ "HullShader", EBT_Pass, D3D11_SVT_HULLSHADER, 1, 1, false, g_rvNULL, ELHS_HullShaderBlock, offsetof_fx(SPassBlock, BackingStore.pHullShaderBlock), 0 },
{ "DomainShader", EBT_Pass, D3D11_SVT_DOMAINSHADER, 1, 1, false, g_rvNULL, ELHS_DomainShaderBlock, offsetof_fx(SPassBlock, BackingStore.pDomainShaderBlock), 0 },
{ "ComputeShader", EBT_Pass, D3D11_SVT_COMPUTESHADER, 1, 1, false, g_rvNULL, ELHS_ComputeShaderBlock, offsetof_fx(SPassBlock, BackingStore.pComputeShaderBlock), 0 },
};
#define NUM_STATES (sizeof(g_lvGeneral) / sizeof(LValue))
#define MAX_VECTOR_SCALAR_INDEX 8
const uint32_t g_lvGeneralCount = NUM_STATES;
} // end namespace D3DX11Effects

View File

@@ -0,0 +1,319 @@
//--------------------------------------------------------------------------------------
// File: SOParser.h
//
// Direct3D 11 Effects Stream Out Decl Parser
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// http://go.microsoft.com/fwlink/p/?LinkId=271568
//--------------------------------------------------------------------------------------
#pragma once
#include <stdio.h>
#include <string.h>
namespace D3DX11Effects
{
//////////////////////////////////////////////////////////////////////////
// CSOParser
//////////////////////////////////////////////////////////////////////////
class CSOParser
{
CEffectVector<D3D11_SO_DECLARATION_ENTRY> m_vDecls; // Set of parsed decl entries
D3D11_SO_DECLARATION_ENTRY m_newEntry; // Currently parsing entry
LPSTR m_SemanticString[D3D11_SO_BUFFER_SLOT_COUNT]; // Copy of strings
static const size_t MAX_ERROR_SIZE = 254;
char m_pError[ MAX_ERROR_SIZE + 1 ]; // Error buffer
public:
CSOParser()
{
ZeroMemory(&m_newEntry, sizeof(m_newEntry));
ZeroMemory(m_SemanticString, sizeof(m_SemanticString));
m_pError[0] = 0;
}
~CSOParser()
{
for( size_t Stream = 0; Stream < D3D11_SO_STREAM_COUNT; ++Stream )
{
SAFE_DELETE_ARRAY( m_SemanticString[Stream] );
}
}
// Parse a single string, assuming stream 0
HRESULT Parse( _In_z_ LPCSTR pString )
{
m_vDecls.Clear();
return Parse( 0, pString );
}
// Parse all 4 streams
HRESULT Parse( _In_z_ LPSTR pStreams[D3D11_SO_STREAM_COUNT] )
{
HRESULT hr = S_OK;
m_vDecls.Clear();
for( uint32_t iDecl=0; iDecl < D3D11_SO_STREAM_COUNT; ++iDecl )
{
hr = Parse( iDecl, pStreams[iDecl] );
if( FAILED(hr) )
{
char str[16];
sprintf_s( str, 16, " in stream %u.", iDecl );
str[15] = 0;
strcat_s( m_pError, MAX_ERROR_SIZE, str );
return hr;
}
}
return hr;
}
// Return resulting declarations
D3D11_SO_DECLARATION_ENTRY *GetDeclArray()
{
return &m_vDecls[0];
}
char* GetErrorString()
{
return m_pError;
}
uint32_t GetDeclCount() const
{
return m_vDecls.GetSize();
}
// Return resulting buffer strides
void GetStrides( uint32_t strides[4] )
{
size_t len = GetDeclCount();
strides[0] = strides[1] = strides[2] = strides[3] = 0;
for( size_t i=0; i < len; i++ )
{
strides[m_vDecls[i].OutputSlot] += m_vDecls[i].ComponentCount * sizeof(float);
}
}
protected:
// Parse a single string "[<slot> :] <semantic>[<index>][.<mask>]; [[<slot> :] <semantic>[<index>][.<mask>][;]]"
HRESULT Parse( _In_ uint32_t Stream, _In_z_ LPCSTR pString )
{
HRESULT hr = S_OK;
m_pError[0] = 0;
if( pString == nullptr )
return S_OK;
uint32_t len = (uint32_t)strlen( pString );
if( len == 0 )
return S_OK;
SAFE_DELETE_ARRAY( m_SemanticString[Stream] );
VN( m_SemanticString[Stream] = new char[len + 1] );
strcpy_s( m_SemanticString[Stream], len + 1, pString );
LPSTR pSemantic = m_SemanticString[Stream];
while( true )
{
// Each decl entry is delimited by a semi-colon
LPSTR pSemi = strchr( pSemantic, ';' );
// strip leading and trailing spaces
LPSTR pEnd;
if( pSemi != nullptr )
{
*pSemi = '\0';
pEnd = pSemi - 1;
}
else
{
pEnd = pSemantic + strlen( pSemantic );
}
while( isspace( (unsigned char)*pSemantic ) )
pSemantic++;
while( pEnd > pSemantic && isspace( (unsigned char)*pEnd ) )
{
*pEnd = '\0';
pEnd--;
}
if( *pSemantic != '\0' )
{
VH( AddSemantic( pSemantic ) );
m_newEntry.Stream = Stream;
VH( m_vDecls.Add( m_newEntry ) );
}
if( pSemi == nullptr )
break;
pSemantic = pSemi + 1;
}
lExit:
return hr;
}
// Parse a single decl "[<slot> :] <semantic>[<index>][.<mask>]"
HRESULT AddSemantic( _Inout_z_ LPSTR pSemantic )
{
HRESULT hr = S_OK;
assert( pSemantic );
ZeroMemory( &m_newEntry, sizeof(m_newEntry) );
VH( ConsumeOutputSlot( &pSemantic ) );
VH( ConsumeRegisterMask( pSemantic ) );
VH( ConsumeSemanticIndex( pSemantic ) );
// pSenantic now contains only the SemanticName (all other fields were consumed)
if( strcmp( "$SKIP", pSemantic ) != 0 )
{
m_newEntry.SemanticName = pSemantic;
}
lExit:
return hr;
}
// Parse optional mask "[.<mask>]"
HRESULT ConsumeRegisterMask( _Inout_z_ LPSTR pSemantic )
{
HRESULT hr = S_OK;
const char *pFullMask1 = "xyzw";
const char *pFullMask2 = "rgba";
size_t stringLength;
size_t startComponent = 0;
LPCSTR p;
assert( pSemantic );
pSemantic = strchr( pSemantic, '.' );
if( pSemantic == nullptr )
{
m_newEntry.ComponentCount = 4;
return S_OK;
}
*pSemantic = '\0';
pSemantic++;
stringLength = strlen( pSemantic );
p = strstr(pFullMask1, pSemantic );
if( p )
{
startComponent = (uint32_t)( p - pFullMask1 );
}
else
{
p = strstr( pFullMask2, pSemantic );
if( p )
startComponent = (uint32_t)( p - pFullMask2 );
else
{
sprintf_s( m_pError, MAX_ERROR_SIZE, "ID3D11Effect::ParseSODecl - invalid mask declaration '%s'", pSemantic );
VH( E_FAIL );
}
}
if( stringLength == 0 )
stringLength = 4;
m_newEntry.StartComponent = (uint8_t)startComponent;
m_newEntry.ComponentCount = (uint8_t)stringLength;
lExit:
return hr;
}
// Parse optional output slot "[<slot> :]"
HRESULT ConsumeOutputSlot( _Inout_z_ LPSTR* ppSemantic )
{
assert( ppSemantic && *ppSemantic );
_Analysis_assume_( ppSemantic && *ppSemantic );
HRESULT hr = S_OK;
LPSTR pColon = strchr( *ppSemantic, ':' );
if( pColon == nullptr )
return S_OK;
if( pColon == *ppSemantic )
{
strcpy_s( m_pError, MAX_ERROR_SIZE,
"ID3D11Effect::ParseSODecl - Invalid output slot" );
VH( E_FAIL );
}
*pColon = '\0';
int outputSlot = atoi( *ppSemantic );
if( outputSlot < 0 || outputSlot > 255 )
{
strcpy_s( m_pError, MAX_ERROR_SIZE,
"ID3D11Effect::ParseSODecl - Invalid output slot" );
VH( E_FAIL );
}
m_newEntry.OutputSlot = (uint8_t)outputSlot;
while( *ppSemantic < pColon )
{
if( !isdigit( (unsigned char)**ppSemantic ) )
{
sprintf_s( m_pError, MAX_ERROR_SIZE, "ID3D11Effect::ParseSODecl - Non-digit '%c' in output slot", **ppSemantic );
VH( E_FAIL );
}
(*ppSemantic)++;
}
// skip the colon (which is now '\0')
(*ppSemantic)++;
while( isspace( (unsigned char)**ppSemantic ) )
(*ppSemantic)++;
lExit:
return hr;
}
// Parse optional index "[<index>]"
HRESULT ConsumeSemanticIndex( _Inout_z_ LPSTR pSemantic )
{
assert( pSemantic );
uint32_t uLen = (uint32_t)strlen( pSemantic );
// Grab semantic index
while( uLen > 0 && isdigit( (unsigned char)pSemantic[uLen - 1] ) )
uLen--;
if( isdigit( (unsigned char)pSemantic[uLen] ) )
{
m_newEntry.SemanticIndex = atoi( pSemantic + uLen );
pSemantic[uLen] = '\0';
}
else
{
m_newEntry.SemanticIndex = 0;
}
return S_OK;
}
};
} // end namespace D3DX11Effects

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,331 @@
//--------------------------------------------------------------------------------------
// File: EffectAPI.cpp
//
// Effect API entry point
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// http://go.microsoft.com/fwlink/p/?LinkId=271568
//--------------------------------------------------------------------------------------
#include "pchfx.h"
#include <memory>
using namespace D3DX11Effects;
//-------------------------------------------------------------------------------------
struct handle_closer { void operator()(HANDLE h) { if (h) CloseHandle(h); } };
typedef public std::unique_ptr<void, handle_closer> ScopedHandle;
inline HANDLE safe_handle( HANDLE h ) { return (h == INVALID_HANDLE_VALUE) ? 0 : h; }
//-------------------------------------------------------------------------------------
static HRESULT LoadBinaryFromFile( _In_z_ LPCWSTR pFileName, _Inout_ std::unique_ptr<uint8_t[]>& data, _Out_ uint32_t& size )
{
// open the file
#if (_WIN32_WINNT >= _WIN32_WINNT_WIN8)
ScopedHandle hFile( safe_handle( CreateFile2( pFileName,
GENERIC_READ,
FILE_SHARE_READ,
OPEN_EXISTING,
nullptr ) ) );
#else
ScopedHandle hFile( safe_handle( CreateFileW( pFileName,
GENERIC_READ,
FILE_SHARE_READ,
nullptr,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
nullptr ) ) );
#endif
if ( !hFile )
{
return HRESULT_FROM_WIN32( GetLastError() );
}
// Get the file size
LARGE_INTEGER FileSize = { 0 };
#if (_WIN32_WINNT >= _WIN32_WINNT_VISTA)
FILE_STANDARD_INFO fileInfo;
if ( !GetFileInformationByHandleEx( hFile.get(), FileStandardInfo, &fileInfo, sizeof(fileInfo) ) )
{
return HRESULT_FROM_WIN32( GetLastError() );
}
FileSize = fileInfo.EndOfFile;
#else
GetFileSizeEx( hFile.get(), &FileSize );
#endif
// File is too big for 32-bit allocation or contains no data, so reject read
if ( !FileSize.LowPart || FileSize.HighPart > 0)
{
return E_FAIL;
}
// create enough space for the file data
data.reset( new uint8_t[ FileSize.LowPart ] );
if (!data)
{
return E_OUTOFMEMORY;
}
// read the data in
DWORD BytesRead = 0;
if (!ReadFile( hFile.get(),
data.get(),
FileSize.LowPart,
&BytesRead,
nullptr
))
{
return HRESULT_FROM_WIN32( GetLastError() );
}
if (BytesRead < FileSize.LowPart)
{
return E_FAIL;
}
size = BytesRead;
return S_OK;
}
//--------------------------------------------------------------------------------------
_Use_decl_annotations_
HRESULT WINAPI D3DX11CreateEffectFromMemory(LPCVOID pData, SIZE_T DataLength, UINT FXFlags,
ID3D11Device *pDevice, ID3DX11Effect **ppEffect, LPCSTR srcName )
{
if ( !pData || !DataLength || !pDevice || !ppEffect )
return E_INVALIDARG;
if ( DataLength > UINT32_MAX )
return E_INVALIDARG;
HRESULT hr = S_OK;
// Note that pData must point to a compiled effect, not HLSL
VN( *ppEffect = new CEffect( FXFlags & D3DX11_EFFECT_RUNTIME_VALID_FLAGS) );
VH( ((CEffect*)(*ppEffect))->LoadEffect(pData, static_cast<uint32_t>(DataLength) ) );
VH( ((CEffect*)(*ppEffect))->BindToDevice(pDevice, (srcName) ? srcName : "D3DX11Effect" ) );
lExit:
if (FAILED(hr))
{
SAFE_RELEASE(*ppEffect);
}
return hr;
}
//--------------------------------------------------------------------------------------
_Use_decl_annotations_
HRESULT WINAPI D3DX11CreateEffectFromFile( LPCWSTR pFileName, UINT FXFlags, ID3D11Device *pDevice, ID3DX11Effect **ppEffect )
{
if ( !pFileName || !pDevice || !ppEffect )
return E_INVALIDARG;
std::unique_ptr<uint8_t[]> fileData;
uint32_t size;
HRESULT hr = LoadBinaryFromFile( pFileName, fileData, size );
if ( FAILED(hr) )
return hr;
hr = S_OK;
// Note that pData must point to a compiled effect, not HLSL
VN( *ppEffect = new CEffect( FXFlags & D3DX11_EFFECT_RUNTIME_VALID_FLAGS) );
VH( ((CEffect*)(*ppEffect))->LoadEffect( fileData.get(), size ) );
// Create debug object name from input filename
CHAR strFileA[MAX_PATH];
int result = WideCharToMultiByte( CP_ACP, WC_NO_BEST_FIT_CHARS, pFileName, -1, strFileA, MAX_PATH, nullptr, FALSE );
if ( !result )
{
DPF(0, "Failed to load effect file due to WC to MB conversion failure: %ls", pFileName);
hr = E_FAIL;
goto lExit;
}
const CHAR* pstrName = strrchr( strFileA, '\\' );
if (!pstrName)
{
pstrName = strFileA;
}
else
{
pstrName++;
}
VH( ((CEffect*)(*ppEffect))->BindToDevice(pDevice, pstrName) );
lExit:
if (FAILED(hr))
{
SAFE_RELEASE(*ppEffect);
}
return hr;
}
//--------------------------------------------------------------------------------------
_Use_decl_annotations_
HRESULT D3DX11CompileEffectFromMemory( LPCVOID pData, SIZE_T DataLength, LPCSTR srcName,
const D3D_SHADER_MACRO *pDefines, ID3DInclude *pInclude, UINT HLSLFlags, UINT FXFlags,
ID3D11Device *pDevice, ID3DX11Effect **ppEffect, ID3DBlob **ppErrors )
{
if ( !pData || !DataLength || !pDevice || !ppEffect )
return E_INVALIDARG;
if ( FXFlags & D3DCOMPILE_EFFECT_CHILD_EFFECT )
{
DPF(0, "Effect pools (i.e. D3DCOMPILE_EFFECT_CHILD_EFFECT) not supported" );
return E_NOTIMPL;
}
ID3DBlob *blob = nullptr;
HRESULT hr = D3DCompile( pData, DataLength, srcName, pDefines, pInclude, "", "fx_5_0", HLSLFlags, FXFlags, &blob, ppErrors );
if ( FAILED(hr) )
{
DPF(0, "D3DCompile of fx_5_0 profile failed: %08X", hr );
return hr;
}
hr = S_OK;
VN( *ppEffect = new CEffect( FXFlags & D3DX11_EFFECT_RUNTIME_VALID_FLAGS ) );
VH( ((CEffect*)(*ppEffect))->LoadEffect(blob->GetBufferPointer(), static_cast<uint32_t>( blob->GetBufferSize() ) ) );
SAFE_RELEASE( blob );
VH( ((CEffect*)(*ppEffect))->BindToDevice(pDevice, (srcName) ? srcName : "D3DX11Effect" ) );
lExit:
if (FAILED(hr))
{
SAFE_RELEASE(*ppEffect);
}
return hr;
}
//--------------------------------------------------------------------------------------
_Use_decl_annotations_
HRESULT D3DX11CompileEffectFromFile( LPCWSTR pFileName,
const D3D_SHADER_MACRO *pDefines, ID3DInclude *pInclude, UINT HLSLFlags, UINT FXFlags,
ID3D11Device *pDevice, ID3DX11Effect **ppEffect, ID3DBlob **ppErrors )
{
if ( !pFileName || !pDevice || !ppEffect )
return E_INVALIDARG;
if ( FXFlags & D3DCOMPILE_EFFECT_CHILD_EFFECT )
{
DPF(0, "Effect pools (i.e. D3DCOMPILE_EFFECT_CHILD_EFFECT) not supported" );
return E_NOTIMPL;
}
ID3DBlob *blob = nullptr;
#if (D3D_COMPILER_VERSION >= 46) && ( !defined(WINAPI_FAMILY) || ( (WINAPI_FAMILY != WINAPI_FAMILY_APP) && (WINAPI_FAMILY != WINAPI_FAMILY_PHONE_APP) ) )
HRESULT hr = D3DCompileFromFile( pFileName, pDefines, pInclude, "", "fx_5_0", HLSLFlags, FXFlags, &blob, ppErrors );
if ( FAILED(hr) )
{
DPF(0, "D3DCompileFromFile of fx_5_0 profile failed %08X: %ls", hr, pFileName );
return hr;
}
#else // D3D_COMPILER_VERSION < 46
std::unique_ptr<uint8_t[]> fileData;
uint32_t size;
HRESULT hr = LoadBinaryFromFile( pFileName, fileData, size );
if ( FAILED(hr) )
{
DPF(0, "Failed to load effect file %08X: %ls", hr, pFileName);
return hr;
}
// Create debug object name from input filename
CHAR strFileA[MAX_PATH];
int result = WideCharToMultiByte( CP_ACP, WC_NO_BEST_FIT_CHARS, pFileName, -1, strFileA, MAX_PATH, nullptr, FALSE );
if ( !result )
{
DPF(0, "Failed to load effect file due to WC to MB conversion failure: %ls", pFileName);
return E_FAIL;
}
const CHAR* pstrName = strrchr( strFileA, '\\' );
if (!pstrName)
{
pstrName = strFileA;
}
else
{
pstrName++;
}
hr = D3DCompile( fileData.get(), size, pstrName, pDefines, pInclude, "", "fx_5_0", HLSLFlags, FXFlags, &blob, ppErrors );
if ( FAILED(hr) )
{
DPF(0, "D3DCompile of fx_5_0 profile failed: %08X", hr );
return hr;
}
#endif // D3D_COMPILER_VERSION
if ( blob->GetBufferSize() > UINT32_MAX)
{
SAFE_RELEASE( blob );
return E_FAIL;
}
hr = S_OK;
VN( *ppEffect = new CEffect( FXFlags & D3DX11_EFFECT_RUNTIME_VALID_FLAGS ) );
VH( ((CEffect*)(*ppEffect))->LoadEffect(blob->GetBufferPointer(), static_cast<uint32_t>( blob->GetBufferSize() ) ) );
SAFE_RELEASE( blob );
#if (D3D_COMPILER_VERSION >= 46) && ( !defined(WINAPI_FAMILY) || ( (WINAPI_FAMILY != WINAPI_FAMILY_APP) && (WINAPI_FAMILY != WINAPI_FAMILY_PHONE_APP) ) )
// Create debug object name from input filename
CHAR strFileA[MAX_PATH];
int result = WideCharToMultiByte( CP_ACP, WC_NO_BEST_FIT_CHARS, pFileName, -1, strFileA, MAX_PATH, nullptr, FALSE );
if ( !result )
{
DPF(0, "Failed to load effect file due to WC to MB conversion failure: %ls", pFileName);
hr = E_FAIL;
goto lExit;
}
const CHAR* pstrName = strrchr( strFileA, '\\' );
if (!pstrName)
{
pstrName = strFileA;
}
else
{
pstrName++;
}
#endif
VH( ((CEffect*)(*ppEffect))->BindToDevice(pDevice, pstrName) );
lExit:
if (FAILED(hr))
{
SAFE_RELEASE(*ppEffect);
}
return hr;
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,156 @@
//--------------------------------------------------------------------------------------
// File: EffectLoad.h
//
// Direct3D 11 Effects header for the FX file loader
// A CEffectLoader is created at load time to facilitate loading
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// http://go.microsoft.com/fwlink/p/?LinkId=271568
//--------------------------------------------------------------------------------------
#pragma once
namespace D3DX11Effects
{
// Ranges are used for dependency checking during load
enum ERanges
{
ER_CBuffer = 0,
ER_Texture, // Includes TBuffers
ER_Sampler,
ER_UnorderedAccessView,
ER_Interfaces,
ER_Count // This should be the size of the enum
};
struct SRange
{
uint32_t start;
uint32_t last;
CEffectVector<void *> vResources; // should be (last - start) in length, resource type depends on the range type
};
// Used during load to validate assignments
D3D_SHADER_VARIABLE_TYPE GetSimpleParameterTypeFromObjectType(EObjectType ObjectType);
// A class to facilitate loading an Effect. This class is a friend of CEffect.
class CEffectLoader
{
friend HRESULT CEffect::CloneEffect(_In_ uint32_t Flags, _Outptr_ ID3DX11Effect** ppClonedEffect );
protected:
// Load-time allocations that eventually get moved happen out of the TempHeap. This heap will grow as needed
CDataBlockStore m_BulkHeap;
uint8_t *m_pData;
SBinaryHeader5 *m_pHeader;
DWORD m_Version;
CEffect *m_pEffect;
CEffectReflection *m_pReflection;
D3DX11Core::CMemoryStream m_msStructured;
D3DX11Core::CMemoryStream m_msUnstructured;
// used to avoid repeated hash buffer allocations in LoadTypeAndAddToPool
CEffectVector<uint8_t> m_HashBuffer;
uint32_t m_dwBufferSize; // Size of data buffer in bytes
// List of SInterface blocks created to back class instances bound to shaders
CEffectVector<SInterface*> m_BackgroundInterfaces;
// Pointers to pre-reallocation data
SGlobalVariable *m_pOldVars;
SShaderBlock *m_pOldShaders;
SDepthStencilBlock *m_pOldDS;
SBlendBlock *m_pOldAB;
SRasterizerBlock *m_pOldRS;
SConstantBuffer *m_pOldCBs;
SSamplerBlock *m_pOldSamplers;
uint32_t m_OldInterfaceCount;
SInterface *m_pOldInterfaces;
SShaderResource *m_pOldShaderResources;
SUnorderedAccessView *m_pOldUnorderedAccessViews;
SRenderTargetView *m_pOldRenderTargetViews;
SDepthStencilView *m_pOldDepthStencilViews;
SString *m_pOldStrings;
SMemberDataPointer *m_pOldMemberDataBlocks;
CEffectVectorOwner<SMember> *m_pvOldMemberInterfaces;
SGroup *m_pOldGroups;
uint32_t m_EffectMemory; // Effect private heap
uint32_t m_ReflectionMemory; // Reflection private heap
// Loader helpers
HRESULT LoadCBs();
HRESULT LoadNumericVariable(_In_ SConstantBuffer *pParentCB);
HRESULT LoadObjectVariables();
HRESULT LoadInterfaceVariables();
HRESULT LoadTypeAndAddToPool(_Outptr_ SType **ppType, _In_ uint32_t dwOffset);
HRESULT LoadStringAndAddToPool(_Outptr_result_maybenull_z_ char **ppString, _In_ uint32_t dwOffset);
HRESULT LoadAssignments( _In_ uint32_t Assignments, _Out_writes_(Assignments) SAssignment **pAssignments,
_In_ uint8_t *pBackingStore, _Out_opt_ uint32_t *pRTVAssignments, _Out_opt_ uint32_t *pFinalAssignments );
HRESULT LoadGroups();
HRESULT LoadTechnique( STechnique* pTech );
HRESULT LoadAnnotations(uint32_t *pcAnnotations, SAnnotation **ppAnnotations);
HRESULT ExecuteConstantAssignment(_In_ const SBinaryConstant *pConstant, _Out_writes_bytes_(4) void *pLHS, _In_ D3D_SHADER_VARIABLE_TYPE lhsType);
uint32_t UnpackData(uint8_t *pDestData, uint8_t *pSrcData, uint32_t PackedDataSize, SType *pType, uint32_t *pBytesRead);
// Build shader blocks
HRESULT ConvertRangesToBindings(SShaderBlock *pShaderBlock, CEffectVector<SRange> *pvRanges );
HRESULT GrabShaderData(SShaderBlock *pShaderBlock);
HRESULT BuildShaderBlock(SShaderBlock *pShaderBlock);
// Memory compactors
HRESULT InitializeReflectionDataAndMoveStrings( uint32_t KnownSize = 0 );
HRESULT ReallocateReflectionData( bool Cloning = false );
HRESULT ReallocateEffectData( bool Cloning = false );
HRESULT ReallocateShaderBlocks();
template<class T> HRESULT ReallocateBlockAssignments(T* &pBlocks, uint32_t cBlocks, T* pOldBlocks = nullptr);
HRESULT ReallocateAnnotationData(uint32_t cAnnotations, SAnnotation **ppAnnotations);
HRESULT CalculateAnnotationSize(uint32_t cAnnotations, SAnnotation *pAnnotations);
uint32_t CalculateShaderBlockSize();
template<class T> uint32_t CalculateBlockAssignmentSize(T* &pBlocks, uint32_t cBlocks);
HRESULT FixupCBPointer(_Inout_ SConstantBuffer **ppCB);
HRESULT FixupShaderPointer(_Inout_ SShaderBlock **ppShaderBlock);
HRESULT FixupDSPointer(_Inout_ SDepthStencilBlock **ppDSBlock);
HRESULT FixupABPointer(_Inout_ SBlendBlock **ppABBlock);
HRESULT FixupRSPointer(_Inout_ SRasterizerBlock **ppRSBlock);
HRESULT FixupInterfacePointer(_Inout_ SInterface **ppInterface, _In_ bool CheckBackgroundInterfaces);
HRESULT FixupShaderResourcePointer(_Inout_ SShaderResource **ppResource);
HRESULT FixupUnorderedAccessViewPointer(_Inout_ SUnorderedAccessView **ppResource);
HRESULT FixupRenderTargetViewPointer(_Inout_ SRenderTargetView **ppRenderTargetView);
HRESULT FixupDepthStencilViewPointer(_Inout_ SDepthStencilView **ppDepthStencilView);
HRESULT FixupSamplerPointer(_Inout_ SSamplerBlock **ppSampler);
HRESULT FixupVariablePointer(_Inout_ SGlobalVariable **ppVar);
HRESULT FixupStringPointer(_Inout_ SString **ppString);
HRESULT FixupMemberDataPointer(_Inout_ SMemberDataPointer **ppMemberData);
HRESULT FixupGroupPointer(_Inout_ SGroup **ppGroup);
// Methods to retrieve data from the unstructured block
// (these do not make copies; they simply return pointers into the block)
HRESULT GetStringAndAddToReflection(_In_ uint32_t offset, _Outptr_result_maybenull_z_ char **ppPointer); // Returns a string from the file string block, updates m_EffectMemory
HRESULT GetUnstructuredDataBlock(_In_ uint32_t offset, _Out_ uint32_t *pdwSize, _Outptr_result_buffer_(*pdwSize) void **ppData);
// This function makes a copy of the array of SInterfaceParameters, but not a copy of the strings
HRESULT GetInterfaceParametersAndAddToReflection( _In_ uint32_t InterfaceCount, _In_ uint32_t offset, _Outptr_result_buffer_all_maybenull_(InterfaceCount) SShaderBlock::SInterfaceParameter **ppInterfaces );
public:
HRESULT LoadEffect(_In_ CEffect *pEffect, _In_reads_bytes_(cbEffectBuffer) const void *pEffectBuffer, _In_ uint32_t cbEffectBuffer);
};
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,722 @@
//--------------------------------------------------------------------------------------
// File: EffectRuntime.cpp
//
// Direct3D 11 Effect runtime routines (performance critical)
// These functions are expected to be called at high frequency
// (when applying a pass).
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// http://go.microsoft.com/fwlink/p/?LinkId=271568
//--------------------------------------------------------------------------------------
#include "pchfx.h"
namespace D3DX11Effects
{
// D3D11_KEEP_UNORDERED_ACCESS_VIEWS == (uint32_t)-1
uint32_t g_pNegativeOnes[8] = { D3D11_KEEP_UNORDERED_ACCESS_VIEWS, D3D11_KEEP_UNORDERED_ACCESS_VIEWS, D3D11_KEEP_UNORDERED_ACCESS_VIEWS,
D3D11_KEEP_UNORDERED_ACCESS_VIEWS, D3D11_KEEP_UNORDERED_ACCESS_VIEWS, D3D11_KEEP_UNORDERED_ACCESS_VIEWS,
D3D11_KEEP_UNORDERED_ACCESS_VIEWS, D3D11_KEEP_UNORDERED_ACCESS_VIEWS };
bool SBaseBlock::ApplyAssignments(CEffect *pEffect)
{
SAssignment *pAssignment = pAssignments;
SAssignment *pLastAssn = pAssignments + AssignmentCount;
bool bRecreate = false;
for(; pAssignment < pLastAssn; pAssignment++)
{
bRecreate |= pEffect->EvaluateAssignment(pAssignment);
}
return bRecreate;
}
void SPassBlock::ApplyPassAssignments()
{
SAssignment *pAssignment = pAssignments;
SAssignment *pLastAssn = pAssignments + AssignmentCount;
pEffect->IncrementTimer();
for(; pAssignment < pLastAssn; pAssignment++)
{
pEffect->EvaluateAssignment(pAssignment);
}
}
// Returns true if the shader uses global interfaces (since these interfaces can be updated through SetClassInstance)
bool SPassBlock::CheckShaderDependencies( _In_ const SShaderBlock* pBlock )
{
if( pBlock->InterfaceDepCount > 0 )
{
assert( pBlock->InterfaceDepCount == 1 );
for( size_t i=0; i < pBlock->pInterfaceDeps[0].Count; i++ )
{
SInterface* pInterfaceDep = pBlock->pInterfaceDeps[0].ppFXPointers[i];
if( pInterfaceDep > pEffect->m_pInterfaces && pInterfaceDep < (pEffect->m_pInterfaces + pEffect->m_InterfaceCount) )
{
// This is a global interface pointer (as opposed to an SInterface created in a BindInterface call
return true;
}
}
}
return false;
}
// Returns true if the pass (and sets HasDependencies) if the pass sets objects whose backing stores can be updated
#pragma warning(push)
#pragma warning(disable: 4616 6282)
bool SPassBlock::CheckDependencies()
{
if( HasDependencies )
return true;
for( size_t i=0; i < AssignmentCount; i++ )
{
if( pAssignments[i].DependencyCount > 0 )
return HasDependencies = true;
}
if( BackingStore.pBlendBlock && BackingStore.pBlendBlock->AssignmentCount > 0 )
{
for( size_t i=0; i < BackingStore.pBlendBlock->AssignmentCount; i++ )
{
if( BackingStore.pBlendBlock->pAssignments[i].DependencyCount > 0 )
return HasDependencies = true;
}
}
if( BackingStore.pDepthStencilBlock && BackingStore.pDepthStencilBlock->AssignmentCount > 0 )
{
for( size_t i=0; i < BackingStore.pDepthStencilBlock->AssignmentCount; i++ )
{
if( BackingStore.pDepthStencilBlock->pAssignments[i].DependencyCount > 0 )
return HasDependencies = true;
}
}
if( BackingStore.pRasterizerBlock && BackingStore.pRasterizerBlock->AssignmentCount > 0 )
{
for( size_t i=0; i < BackingStore.pRasterizerBlock->AssignmentCount; i++ )
{
if( BackingStore.pRasterizerBlock->pAssignments[i].DependencyCount > 0 )
return HasDependencies = true;
}
}
if( BackingStore.pVertexShaderBlock && CheckShaderDependencies( BackingStore.pVertexShaderBlock ) )
{
return HasDependencies = true;
}
if( BackingStore.pGeometryShaderBlock && CheckShaderDependencies( BackingStore.pGeometryShaderBlock ) )
{
return HasDependencies = true;
}
if( BackingStore.pPixelShaderBlock && CheckShaderDependencies( BackingStore.pPixelShaderBlock ) )
{
return HasDependencies = true;
}
if( BackingStore.pHullShaderBlock && CheckShaderDependencies( BackingStore.pHullShaderBlock ) )
{
return HasDependencies = true;
}
if( BackingStore.pDomainShaderBlock && CheckShaderDependencies( BackingStore.pDomainShaderBlock ) )
{
return HasDependencies = true;
}
if( BackingStore.pComputeShaderBlock && CheckShaderDependencies( BackingStore.pComputeShaderBlock ) )
{
return HasDependencies = true;
}
return HasDependencies;
}
#pragma warning(pop)
// Update constant buffer contents if necessary
inline void CheckAndUpdateCB_FX(ID3D11DeviceContext *pContext, SConstantBuffer *pCB)
{
if (pCB->IsDirty && !pCB->IsNonUpdatable)
{
// CB out of date; rebuild it
pContext->UpdateSubresource(pCB->pD3DObject, 0, nullptr, pCB->pBackingStore, pCB->Size, pCB->Size);
pCB->IsDirty = false;
}
}
//--------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------
// Set the shader and dependent state (SRVs, samplers, UAVs, interfaces)
void CEffect::ApplyShaderBlock(_In_ SShaderBlock *pBlock)
{
SD3DShaderVTable *pVT = pBlock->pVT;
// Apply constant buffers first (tbuffers are done later)
SShaderCBDependency *pCBDep = pBlock->pCBDeps;
SShaderCBDependency *pLastCBDep = pBlock->pCBDeps + pBlock->CBDepCount;
for (; pCBDep<pLastCBDep; pCBDep++)
{
assert(pCBDep->ppFXPointers);
for (size_t i = 0; i < pCBDep->Count; ++ i)
{
CheckAndUpdateCB_FX(m_pContext, (SConstantBuffer*)pCBDep->ppFXPointers[i]);
}
(m_pContext->*(pVT->pSetConstantBuffers))(pCBDep->StartIndex, pCBDep->Count, pCBDep->ppD3DObjects);
}
// Next, apply samplers
SShaderSamplerDependency *pSampDep = pBlock->pSampDeps;
SShaderSamplerDependency *pLastSampDep = pBlock->pSampDeps + pBlock->SampDepCount;
for (; pSampDep<pLastSampDep; pSampDep++)
{
assert(pSampDep->ppFXPointers);
for (size_t i=0; i<pSampDep->Count; i++)
{
if ( ApplyRenderStateBlock(pSampDep->ppFXPointers[i]) )
{
// If the sampler was updated, its pointer will have changed
pSampDep->ppD3DObjects[i] = pSampDep->ppFXPointers[i]->pD3DObject;
}
}
(m_pContext->*(pVT->pSetSamplers))(pSampDep->StartIndex, pSampDep->Count, pSampDep->ppD3DObjects);
}
// Set the UAVs
// UAV ranges were combined in EffectLoad. This code remains unchanged, however, so that ranges can be easily split
assert( pBlock->UAVDepCount < 2 );
if( pBlock->UAVDepCount > 0 )
{
SUnorderedAccessViewDependency *pUAVDep = pBlock->pUAVDeps;
assert(pUAVDep->ppFXPointers != 0);
_Analysis_assume_(pUAVDep->ppFXPointers != 0);
for (size_t i=0; i<pUAVDep->Count; i++)
{
pUAVDep->ppD3DObjects[i] = pUAVDep->ppFXPointers[i]->pUnorderedAccessView;
}
if( EOT_ComputeShader5 == pBlock->GetShaderType() )
{
m_pContext->CSSetUnorderedAccessViews( pUAVDep->StartIndex, pUAVDep->Count, pUAVDep->ppD3DObjects, g_pNegativeOnes );
}
else
{
// This call could be combined with the call to set render targets if both exist in the pass
m_pContext->OMSetRenderTargetsAndUnorderedAccessViews( D3D11_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL, nullptr, nullptr, pUAVDep->StartIndex, pUAVDep->Count, pUAVDep->ppD3DObjects, g_pNegativeOnes );
}
}
// TBuffers are funny:
// We keep two references to them. One is in as a standard texture dep, and that gets used for all sets
// The other is as a part of the TBufferDeps array, which tells us to rebuild the matching CBs.
// These two refs could be rolled into one, but then we would have to predicate on each CB or each texture.
SConstantBuffer **ppTB = pBlock->ppTbufDeps;
SConstantBuffer **ppLastTB = ppTB + pBlock->TBufferDepCount;
for (; ppTB<ppLastTB; ppTB++)
{
CheckAndUpdateCB_FX(m_pContext, (SConstantBuffer*)*ppTB);
}
// Set the textures
SShaderResourceDependency *pResourceDep = pBlock->pResourceDeps;
SShaderResourceDependency *pLastResourceDep = pBlock->pResourceDeps + pBlock->ResourceDepCount;
for (; pResourceDep<pLastResourceDep; pResourceDep++)
{
assert(pResourceDep->ppFXPointers != 0);
_Analysis_assume_(pResourceDep->ppFXPointers != 0);
for (size_t i=0; i<pResourceDep->Count; i++)
{
pResourceDep->ppD3DObjects[i] = pResourceDep->ppFXPointers[i]->pShaderResource;
}
(m_pContext->*(pVT->pSetShaderResources))(pResourceDep->StartIndex, pResourceDep->Count, pResourceDep->ppD3DObjects);
}
// Update Interface dependencies
uint32_t Interfaces = 0;
ID3D11ClassInstance** ppClassInstances = nullptr;
assert( pBlock->InterfaceDepCount < 2 );
if( pBlock->InterfaceDepCount > 0 )
{
SInterfaceDependency *pInterfaceDep = pBlock->pInterfaceDeps;
assert(pInterfaceDep->ppFXPointers);
ppClassInstances = pInterfaceDep->ppD3DObjects;
Interfaces = pInterfaceDep->Count;
for (size_t i=0; i<pInterfaceDep->Count; i++)
{
assert(pInterfaceDep->ppFXPointers != 0);
_Analysis_assume_(pInterfaceDep->ppFXPointers != 0);
SClassInstanceGlobalVariable* pCI = pInterfaceDep->ppFXPointers[i]->pClassInstance;
if( pCI )
{
assert( pCI->pMemberData != 0 );
_Analysis_assume_( pCI->pMemberData != 0 );
pInterfaceDep->ppD3DObjects[i] = pCI->pMemberData->Data.pD3DClassInstance;
}
else
{
pInterfaceDep->ppD3DObjects[i] = nullptr;
}
}
}
// Now set the shader
(m_pContext->*(pVT->pSetShader))(pBlock->pD3DObject, ppClassInstances, Interfaces);
}
// Returns true if the block D3D data was recreated
bool CEffect::ApplyRenderStateBlock(_In_ SBaseBlock *pBlock)
{
if( pBlock->IsUserManaged )
{
return false;
}
bool bRecreate = pBlock->ApplyAssignments(this);
if (bRecreate)
{
switch (pBlock->BlockType)
{
case EBT_Sampler:
{
SSamplerBlock *pSBlock = pBlock->AsSampler();
assert(pSBlock->pD3DObject != 0);
_Analysis_assume_(pSBlock->pD3DObject != 0);
pSBlock->pD3DObject->Release();
HRESULT hr = m_pDevice->CreateSamplerState( &pSBlock->BackingStore.SamplerDesc, &pSBlock->pD3DObject );
if ( SUCCEEDED(hr) )
{
SetDebugObjectName(pSBlock->pD3DObject, "D3DX11Effect");
}
}
break;
case EBT_DepthStencil:
{
SDepthStencilBlock *pDSBlock = pBlock->AsDepthStencil();
assert(nullptr != pDSBlock->pDSObject);
SAFE_RELEASE( pDSBlock->pDSObject );
if( SUCCEEDED( m_pDevice->CreateDepthStencilState( &pDSBlock->BackingStore, &pDSBlock->pDSObject ) ) )
{
pDSBlock->IsValid = true;
SetDebugObjectName( pDSBlock->pDSObject, "D3DX11Effect" );
}
else
pDSBlock->IsValid = false;
}
break;
case EBT_Blend:
{
SBlendBlock *pBBlock = pBlock->AsBlend();
assert(nullptr != pBBlock->pBlendObject);
SAFE_RELEASE( pBBlock->pBlendObject );
if( SUCCEEDED( m_pDevice->CreateBlendState( &pBBlock->BackingStore, &pBBlock->pBlendObject ) ) )
{
pBBlock->IsValid = true;
SetDebugObjectName( pBBlock->pBlendObject, "D3DX11Effect" );
}
else
pBBlock->IsValid = false;
}
break;
case EBT_Rasterizer:
{
SRasterizerBlock *pRBlock = pBlock->AsRasterizer();
assert(nullptr != pRBlock->pRasterizerObject);
SAFE_RELEASE( pRBlock->pRasterizerObject );
if( SUCCEEDED( m_pDevice->CreateRasterizerState( &pRBlock->BackingStore, &pRBlock->pRasterizerObject ) ) )
{
pRBlock->IsValid = true;
SetDebugObjectName( pRBlock->pRasterizerObject, "D3DX11Effect" );
}
else
pRBlock->IsValid = false;
}
break;
default:
assert(0);
}
}
return bRecreate;
}
void CEffect::ValidateIndex(_In_ uint32_t Elements)
{
if (m_FXLIndex >= Elements)
{
DPF(0, "ID3DX11Effect: Overindexing variable array (size: %u, index: %u), using index = 0 instead", Elements, m_FXLIndex);
m_FXLIndex = 0;
}
}
// Returns true if the assignment was changed
bool CEffect::EvaluateAssignment(_Inout_ SAssignment *pAssignment)
{
bool bNeedUpdate = false;
SGlobalVariable *pVarDep0, *pVarDep1;
switch (pAssignment->AssignmentType)
{
case ERAT_NumericVariable:
assert(pAssignment->DependencyCount == 1);
if (pAssignment->pDependencies[0].pVariable->LastModifiedTime >= pAssignment->LastRecomputedTime)
{
memcpy(pAssignment->Destination.pNumeric, pAssignment->Source.pNumeric, pAssignment->DataSize);
bNeedUpdate = true;
}
break;
case ERAT_NumericVariableIndex:
assert(pAssignment->DependencyCount == 2);
pVarDep0 = pAssignment->pDependencies[0].pVariable;
pVarDep1 = pAssignment->pDependencies[1].pVariable;
if (pVarDep0->LastModifiedTime >= pAssignment->LastRecomputedTime)
{
m_FXLIndex = *pVarDep0->Data.pNumericDword;
ValidateIndex(pVarDep1->pType->Elements);
// Array index variable is dirty, update the pointer
pAssignment->Source.pNumeric = pVarDep1->Data.pNumeric + pVarDep1->pType->Stride * m_FXLIndex;
// Copy the new data
memcpy(pAssignment->Destination.pNumeric, pAssignment->Source.pNumeric, pAssignment->DataSize);
bNeedUpdate = true;
}
else if (pVarDep1->LastModifiedTime >= pAssignment->LastRecomputedTime)
{
// Only the array variable is dirty, copy the new data
memcpy(pAssignment->Destination.pNumeric, pAssignment->Source.pNumeric, pAssignment->DataSize);
bNeedUpdate = true;
}
break;
case ERAT_ObjectVariableIndex:
assert(pAssignment->DependencyCount == 1);
pVarDep0 = pAssignment->pDependencies[0].pVariable;
if (pVarDep0->LastModifiedTime >= pAssignment->LastRecomputedTime)
{
m_FXLIndex = *pVarDep0->Data.pNumericDword;
ValidateIndex(pAssignment->MaxElements);
// Array index variable is dirty, update the destination pointer
*((void **)pAssignment->Destination.pGeneric) = pAssignment->Source.pNumeric +
pAssignment->DataSize * m_FXLIndex;
bNeedUpdate = true;
}
break;
default:
//case ERAT_Constant: -- These are consumed and discarded
//case ERAT_ObjectVariable: -- These are consumed and discarded
//case ERAT_ObjectConstIndex: -- These are consumed and discarded
//case ERAT_ObjectInlineShader: -- These are consumed and discarded
//case ERAT_NumericConstIndex: -- ERAT_NumericVariable should be generated instead
assert(0);
break;
}
// Mark the assignment as not dirty
pAssignment->LastRecomputedTime = m_LocalTimer;
return bNeedUpdate;
}
// Returns false if this shader has interface dependencies which are nullptr (SetShader will fail).
bool CEffect::ValidateShaderBlock( _Inout_ SShaderBlock* pBlock )
{
if( !pBlock->IsValid )
return false;
if( pBlock->InterfaceDepCount > 0 )
{
assert( pBlock->InterfaceDepCount == 1 );
for( size_t i=0; i < pBlock->pInterfaceDeps[0].Count; i++ )
{
SInterface* pInterfaceDep = pBlock->pInterfaceDeps[0].ppFXPointers[i];
assert( pInterfaceDep != 0 );
_Analysis_assume_( pInterfaceDep != 0 );
if( pInterfaceDep->pClassInstance == nullptr )
{
return false;
}
}
}
return true;
}
// Returns false if any state in the pass is invalid
bool CEffect::ValidatePassBlock( _Inout_ SPassBlock* pBlock )
{
pBlock->ApplyPassAssignments();
if (nullptr != pBlock->BackingStore.pBlendBlock)
{
ApplyRenderStateBlock(pBlock->BackingStore.pBlendBlock);
pBlock->BackingStore.pBlendState = pBlock->BackingStore.pBlendBlock->pBlendObject;
if( !pBlock->BackingStore.pBlendBlock->IsValid )
return false;
}
if( nullptr != pBlock->BackingStore.pDepthStencilBlock )
{
ApplyRenderStateBlock( pBlock->BackingStore.pDepthStencilBlock );
pBlock->BackingStore.pDepthStencilState = pBlock->BackingStore.pDepthStencilBlock->pDSObject;
if( !pBlock->BackingStore.pDepthStencilBlock->IsValid )
return false;
}
if( nullptr != pBlock->BackingStore.pRasterizerBlock )
{
ApplyRenderStateBlock( pBlock->BackingStore.pRasterizerBlock );
if( !pBlock->BackingStore.pRasterizerBlock->IsValid )
return false;
}
if( nullptr != pBlock->BackingStore.pVertexShaderBlock && !ValidateShaderBlock(pBlock->BackingStore.pVertexShaderBlock) )
return false;
if( nullptr != pBlock->BackingStore.pGeometryShaderBlock && !ValidateShaderBlock(pBlock->BackingStore.pGeometryShaderBlock) )
return false;
if( nullptr != pBlock->BackingStore.pPixelShaderBlock )
{
if( !ValidateShaderBlock(pBlock->BackingStore.pPixelShaderBlock) )
return false;
else if( pBlock->BackingStore.pPixelShaderBlock->UAVDepCount > 0 &&
pBlock->BackingStore.RenderTargetViewCount > pBlock->BackingStore.pPixelShaderBlock->pUAVDeps[0].StartIndex )
{
return false;
}
}
if( nullptr != pBlock->BackingStore.pHullShaderBlock && !ValidateShaderBlock(pBlock->BackingStore.pHullShaderBlock) )
return false;
if( nullptr != pBlock->BackingStore.pDomainShaderBlock && !ValidateShaderBlock(pBlock->BackingStore.pDomainShaderBlock) )
return false;
if( nullptr != pBlock->BackingStore.pComputeShaderBlock && !ValidateShaderBlock(pBlock->BackingStore.pComputeShaderBlock) )
return false;
return true;
}
// Set all state defined in the pass
void CEffect::ApplyPassBlock(_Inout_ SPassBlock *pBlock)
{
pBlock->ApplyPassAssignments();
if (nullptr != pBlock->BackingStore.pBlendBlock)
{
ApplyRenderStateBlock(pBlock->BackingStore.pBlendBlock);
#ifdef FXDEBUG
if( !pBlock->BackingStore.pBlendBlock->IsValid )
DPF( 0, "Pass::Apply - warning: applying invalid BlendState." );
#endif
pBlock->BackingStore.pBlendState = pBlock->BackingStore.pBlendBlock->pBlendObject;
m_pContext->OMSetBlendState(pBlock->BackingStore.pBlendState,
pBlock->BackingStore.BlendFactor,
pBlock->BackingStore.SampleMask);
}
if (nullptr != pBlock->BackingStore.pDepthStencilBlock)
{
ApplyRenderStateBlock(pBlock->BackingStore.pDepthStencilBlock);
#ifdef FXDEBUG
if( !pBlock->BackingStore.pDepthStencilBlock->IsValid )
DPF( 0, "Pass::Apply - warning: applying invalid DepthStencilState." );
#endif
pBlock->BackingStore.pDepthStencilState = pBlock->BackingStore.pDepthStencilBlock->pDSObject;
m_pContext->OMSetDepthStencilState(pBlock->BackingStore.pDepthStencilState,
pBlock->BackingStore.StencilRef);
}
if (nullptr != pBlock->BackingStore.pRasterizerBlock)
{
ApplyRenderStateBlock(pBlock->BackingStore.pRasterizerBlock);
#ifdef FXDEBUG
if( !pBlock->BackingStore.pRasterizerBlock->IsValid )
DPF( 0, "Pass::Apply - warning: applying invalid RasterizerState." );
#endif
m_pContext->RSSetState(pBlock->BackingStore.pRasterizerBlock->pRasterizerObject);
}
if (nullptr != pBlock->BackingStore.pRenderTargetViews[0])
{
// Grab all render targets
ID3D11RenderTargetView *pRTV[D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT];
assert(pBlock->BackingStore.RenderTargetViewCount <= D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT);
_Analysis_assume_(D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT >= pBlock->BackingStore.RenderTargetViewCount);
for (uint32_t i=0; i<pBlock->BackingStore.RenderTargetViewCount; i++)
{
pRTV[i] = pBlock->BackingStore.pRenderTargetViews[i]->pRenderTargetView;
}
// This call could be combined with the call to set PS UAVs if both exist in the pass
m_pContext->OMSetRenderTargetsAndUnorderedAccessViews( pBlock->BackingStore.RenderTargetViewCount, pRTV, pBlock->BackingStore.pDepthStencilView->pDepthStencilView, 7, D3D11_KEEP_UNORDERED_ACCESS_VIEWS, nullptr, nullptr );
}
if (nullptr != pBlock->BackingStore.pVertexShaderBlock)
{
#ifdef FXDEBUG
if( !pBlock->BackingStore.pVertexShaderBlock->IsValid )
DPF( 0, "Pass::Apply - warning: applying invalid vertex shader." );
#endif
ApplyShaderBlock(pBlock->BackingStore.pVertexShaderBlock);
}
if (nullptr != pBlock->BackingStore.pPixelShaderBlock)
{
#ifdef FXDEBUG
if( !pBlock->BackingStore.pPixelShaderBlock->IsValid )
DPF( 0, "Pass::Apply - warning: applying invalid pixel shader." );
#endif
ApplyShaderBlock(pBlock->BackingStore.pPixelShaderBlock);
}
if (nullptr != pBlock->BackingStore.pGeometryShaderBlock)
{
#ifdef FXDEBUG
if( !pBlock->BackingStore.pGeometryShaderBlock->IsValid )
DPF( 0, "Pass::Apply - warning: applying invalid geometry shader." );
#endif
ApplyShaderBlock(pBlock->BackingStore.pGeometryShaderBlock);
}
if (nullptr != pBlock->BackingStore.pHullShaderBlock)
{
#ifdef FXDEBUG
if( !pBlock->BackingStore.pHullShaderBlock->IsValid )
DPF( 0, "Pass::Apply - warning: applying invalid hull shader." );
#endif
ApplyShaderBlock(pBlock->BackingStore.pHullShaderBlock);
}
if (nullptr != pBlock->BackingStore.pDomainShaderBlock)
{
#ifdef FXDEBUG
if( !pBlock->BackingStore.pDomainShaderBlock->IsValid )
DPF( 0, "Pass::Apply - warning: applying invalid domain shader." );
#endif
ApplyShaderBlock(pBlock->BackingStore.pDomainShaderBlock);
}
if (nullptr != pBlock->BackingStore.pComputeShaderBlock)
{
#ifdef FXDEBUG
if( !pBlock->BackingStore.pComputeShaderBlock->IsValid )
DPF( 0, "Pass::Apply - warning: applying invalid compute shader." );
#endif
ApplyShaderBlock(pBlock->BackingStore.pComputeShaderBlock);
}
}
void CEffect::IncrementTimer()
{
m_LocalTimer++;
#ifndef _M_X64
#if _DEBUG
if (m_LocalTimer > g_TimerRolloverCount)
{
DPF(0, "Rolling over timer (current time: %u, rollover cap: %u).", m_LocalTimer, g_TimerRolloverCount);
#else
if (m_LocalTimer >= 0x80000000) // check to see if we've exceeded ~2 billion
{
#endif
HandleLocalTimerRollover();
m_LocalTimer = 1;
}
#endif // _M_X64
}
// This function resets all timers, rendering all assignments dirty
// This is clearly bad for performance, but should only happen every few billion ticks
void CEffect::HandleLocalTimerRollover()
{
uint32_t i, j, k;
// step 1: update variables
for (i = 0; i < m_VariableCount; ++ i)
{
m_pVariables[i].LastModifiedTime = 0;
}
// step 2: update assignments on all blocks (pass, depth stencil, rasterizer, blend, sampler)
for (uint32_t iGroup = 0; iGroup < m_GroupCount; ++ iGroup)
{
for (i = 0; i < m_pGroups[iGroup].TechniqueCount; ++ i)
{
for (j = 0; j < m_pGroups[iGroup].pTechniques[i].PassCount; ++ j)
{
for (k = 0; k < m_pGroups[iGroup].pTechniques[i].pPasses[j].AssignmentCount; ++ k)
{
m_pGroups[iGroup].pTechniques[i].pPasses[j].pAssignments[k].LastRecomputedTime = 0;
}
}
}
}
for (i = 0; i < m_DepthStencilBlockCount; ++ i)
{
for (j = 0; j < m_pDepthStencilBlocks[i].AssignmentCount; ++ j)
{
m_pDepthStencilBlocks[i].pAssignments[j].LastRecomputedTime = 0;
}
}
for (i = 0; i < m_RasterizerBlockCount; ++ i)
{
for (j = 0; j < m_pRasterizerBlocks[i].AssignmentCount; ++ j)
{
m_pRasterizerBlocks[i].pAssignments[j].LastRecomputedTime = 0;
}
}
for (i = 0; i < m_BlendBlockCount; ++ i)
{
for (j = 0; j < m_pBlendBlocks[i].AssignmentCount; ++ j)
{
m_pBlendBlocks[i].pAssignments[j].LastRecomputedTime = 0;
}
}
for (i = 0; i < m_SamplerBlockCount; ++ i)
{
for (j = 0; j < m_pSamplerBlocks[i].AssignmentCount; ++ j)
{
m_pSamplerBlocks[i].pAssignments[j].LastRecomputedTime = 0;
}
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,31 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Effects11", "Effects11_2013.vcxproj", "{DF460EAB-570D-4B50-9089-2E2FC801BF38}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Profile|Win32 = Profile|Win32
Profile|x64 = Profile|x64
Release|Win32 = Release|Win32
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Debug|Win32.ActiveCfg = Debug|Win32
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Debug|Win32.Build.0 = Debug|Win32
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Debug|x64.ActiveCfg = Debug|x64
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Debug|x64.Build.0 = Debug|x64
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Profile|Win32.ActiveCfg = Profile|Win32
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Profile|Win32.Build.0 = Profile|Win32
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Profile|x64.ActiveCfg = Profile|x64
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Profile|x64.Build.0 = Profile|x64
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Release|Win32.ActiveCfg = Release|Win32
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Release|Win32.Build.0 = Release|Win32
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Release|x64.ActiveCfg = Release|x64
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,419 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Profile|Win32">
<Configuration>Profile</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Profile|x64">
<Configuration>Profile</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>Effects11</ProjectName>
<ProjectGuid>{DF460EAB-570D-4B50-9089-2E2FC801BF38}</ProjectGuid>
<RootNamespace>Effects11</RootNamespace>
<Keyword>Win32Proj</Keyword>
<VCTargetsPath Condition="'$(VCTargetsPath11)' != '' and '$(VSVersion)' == '' and '$(VisualStudioVersion)' == ''">$(VCTargetsPath11)</VCTargetsPath>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11d</TargetName>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">
<OutDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11d</TargetName>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11</TargetName>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'">
<OutDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11</TargetName>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
<OutDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11</TargetName>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">
<OutDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Desktop_2013\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11</TargetName>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>Disabled</Optimization>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>.\Binary;.\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_WIN7_PLATFORM_UPDATE;WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;_LIB;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>Disabled</Optimization>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>.\Binary;.\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_WIN7_PLATFORM_UPDATE;WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;_LIB;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>.\Binary;.\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_WIN7_PLATFORM_UPDATE;WIN32;NDEBUG;_WINDOWS;_LIB;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>.\Binary;.\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_WIN7_PLATFORM_UPDATE;WIN32;NDEBUG;_WINDOWS;_LIB;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>.\Binary;.\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_WIN7_PLATFORM_UPDATE;WIN32;NDEBUG;PROFILE;_WINDOWS;_LIB;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>.\Binary;.\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_WIN7_PLATFORM_UPDATE;WIN32;NDEBUG;PROFILE;_WINDOWS;_LIB;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemGroup />
<ItemGroup>
<CLInclude Include="pchfx.h" />
<CLInclude Include=".\Inc\d3dx11effect.h" />
<CLInclude Include=".\Inc\d3dxglobal.h" />
<CLInclude Include=".\Binary\EffectBinaryFormat.h" />
<CLInclude Include=".\Binary\EffectStateBase11.h" />
<CLInclude Include=".\Binary\EffectStates11.h" />
<CLInclude Include=".\Binary\SOParser.h" />
<ClCompile Include="d3dxGlobal.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|X64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">Create</PrecompiledHeader>
</ClCompile>
<CLInclude Include="Effect.h" />
<ClCompile Include="EffectAPI.cpp" />
<ClCompile Include="EffectLoad.cpp" />
<CLInclude Include="EffectLoad.h" />
<ClCompile Include="EffectNonRuntime.cpp" />
<ClCompile Include="EffectReflection.cpp" />
<ClCompile Include="EffectRuntime.cpp" />
<None Include="EffectVariable.inl" />
<CLInclude Include="IUnknownImp.h" />
</ItemGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets" />
</Project>

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns:atg="http://atg.xbox.com" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Resource Files">
<UniqueIdentifier>{8e114980-c1a3-4ada-ad7c-83caadf5daeb}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
</Filter>
</ItemGroup>
<ItemGroup />
<ItemGroup>
<CLInclude Include="pchfx.h" />
<CLInclude Include=".\Inc\d3dx11effect.h" />
<CLInclude Include=".\Inc\d3dxglobal.h" />
<CLInclude Include=".\Binary\EffectBinaryFormat.h" />
<CLInclude Include=".\Binary\EffectStateBase11.h" />
<CLInclude Include=".\Binary\EffectStates11.h" />
<CLInclude Include=".\Binary\SOParser.h" />
<ClCompile Include="d3dxGlobal.cpp" />
<CLInclude Include="Effect.h" />
<ClCompile Include="EffectAPI.cpp" />
<ClCompile Include="EffectLoad.cpp" />
<CLInclude Include="EffectLoad.h" />
<ClCompile Include="EffectNonRuntime.cpp" />
<ClCompile Include="EffectReflection.cpp" />
<ClCompile Include="EffectRuntime.cpp" />
<None Include="EffectVariable.inl" />
<CLInclude Include="IUnknownImp.h" />
</ItemGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup>
</ItemGroup>
</Project>

View File

@@ -0,0 +1,31 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Effects11", "Effects11_2015.vcxproj", "{DF460EAB-570D-4B50-9089-2E2FC801BF38}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Profile|Win32 = Profile|Win32
Profile|x64 = Profile|x64
Release|Win32 = Release|Win32
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Debug|Win32.ActiveCfg = Debug|Win32
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Debug|Win32.Build.0 = Debug|Win32
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Debug|x64.ActiveCfg = Debug|x64
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Debug|x64.Build.0 = Debug|x64
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Profile|Win32.ActiveCfg = Profile|Win32
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Profile|Win32.Build.0 = Profile|Win32
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Profile|x64.ActiveCfg = Profile|x64
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Profile|x64.Build.0 = Profile|x64
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Release|Win32.ActiveCfg = Release|Win32
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Release|Win32.Build.0 = Release|Win32
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Release|x64.ActiveCfg = Release|x64
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,348 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>Effects11</ProjectName>
<ProjectGuid>{DF460EAB-570D-4B50-9089-2E2FC801BF38}</ProjectGuid>
<RootNamespace>Effects11</RootNamespace>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11d</TargetName>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">
<OutDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11d</TargetName>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11</TargetName>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'">
<OutDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11</TargetName>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">
<OutDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Desktop_2015\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11</TargetName>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>Disabled</Optimization>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>.\Binary;.\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_WIN7_PLATFORM_UPDATE;WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;_LIB;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>Disabled</Optimization>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>.\Binary;.\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_WIN7_PLATFORM_UPDATE;WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;_LIB;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>.\Binary;.\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_WIN7_PLATFORM_UPDATE;WIN32;NDEBUG;_WINDOWS;_LIB;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>.\Binary;.\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_WIN7_PLATFORM_UPDATE;WIN32;NDEBUG;_WINDOWS;_LIB;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>.\Binary;.\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_WIN7_PLATFORM_UPDATE;WIN32;NDEBUG;PROFILE;_WINDOWS;_LIB;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemGroup />
<ItemGroup>
<CLInclude Include="pchfx.h" />
<CLInclude Include=".\Inc\d3dx11effect.h" />
<CLInclude Include=".\Inc\d3dxglobal.h" />
<CLInclude Include=".\Binary\EffectBinaryFormat.h" />
<CLInclude Include=".\Binary\EffectStateBase11.h" />
<CLInclude Include=".\Binary\EffectStates11.h" />
<CLInclude Include=".\Binary\SOParser.h" />
<ClCompile Include="d3dxGlobal.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|X64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">Create</PrecompiledHeader>
</ClCompile>
<CLInclude Include="Effect.h" />
<ClCompile Include="EffectAPI.cpp" />
<ClCompile Include="EffectLoad.cpp" />
<CLInclude Include="EffectLoad.h" />
<ClCompile Include="EffectNonRuntime.cpp" />
<ClCompile Include="EffectReflection.cpp" />
<ClCompile Include="EffectRuntime.cpp" />
<None Include="EffectVariable.inl" />
<CLInclude Include="IUnknownImp.h" />
</ItemGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets" />
</Project>

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns:atg="http://atg.xbox.com" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Resource Files">
<UniqueIdentifier>{8e114980-c1a3-4ada-ad7c-83caadf5daeb}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
</Filter>
</ItemGroup>
<ItemGroup />
<ItemGroup>
<CLInclude Include="pchfx.h" />
<CLInclude Include=".\Inc\d3dx11effect.h" />
<CLInclude Include=".\Inc\d3dxglobal.h" />
<CLInclude Include=".\Binary\EffectBinaryFormat.h" />
<CLInclude Include=".\Binary\EffectStateBase11.h" />
<CLInclude Include=".\Binary\EffectStates11.h" />
<CLInclude Include=".\Binary\SOParser.h" />
<ClCompile Include="d3dxGlobal.cpp" />
<CLInclude Include="Effect.h" />
<ClCompile Include="EffectAPI.cpp" />
<ClCompile Include="EffectLoad.cpp" />
<CLInclude Include="EffectLoad.h" />
<ClCompile Include="EffectNonRuntime.cpp" />
<ClCompile Include="EffectReflection.cpp" />
<ClCompile Include="EffectRuntime.cpp" />
<None Include="EffectVariable.inl" />
<CLInclude Include="IUnknownImp.h" />
</ItemGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup>
</ItemGroup>
</Project>

View File

@@ -0,0 +1,31 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Effects11", "Effects11_2015_Win10.vcxproj", "{DF460EAB-570D-4B50-9089-2E2FC801BF38}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Profile|Win32 = Profile|Win32
Profile|x64 = Profile|x64
Release|Win32 = Release|Win32
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Debug|Win32.ActiveCfg = Debug|Win32
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Debug|Win32.Build.0 = Debug|Win32
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Debug|x64.ActiveCfg = Debug|x64
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Debug|x64.Build.0 = Debug|x64
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Profile|Win32.ActiveCfg = Profile|Win32
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Profile|Win32.Build.0 = Profile|Win32
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Profile|x64.ActiveCfg = Profile|x64
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Profile|x64.Build.0 = Profile|x64
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Release|Win32.ActiveCfg = Release|Win32
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Release|Win32.Build.0 = Release|Win32
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Release|x64.ActiveCfg = Release|x64
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,419 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Profile|Win32">
<Configuration>Profile</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Profile|x64">
<Configuration>Profile</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>Effects11</ProjectName>
<ProjectGuid>{DF460EAB-570D-4B50-9089-2E2FC801BF38}</ProjectGuid>
<RootNamespace>Effects11</RootNamespace>
<Keyword>Win32Proj</Keyword>
<WindowsTargetPlatformVersion>10.0.14393.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>Bin\Desktop_2015_Win10\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Desktop_2015_Win10\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11d</TargetName>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">
<OutDir>Bin\Desktop_2015_Win10\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Desktop_2015_Win10\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11d</TargetName>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>Bin\Desktop_2015_Win10\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Desktop_2015_Win10\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11</TargetName>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'">
<OutDir>Bin\Desktop_2015_Win10\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Desktop_2015_Win10\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11</TargetName>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
<OutDir>Bin\Desktop_2015_Win10\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Desktop_2015_Win10\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11</TargetName>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">
<OutDir>Bin\Desktop_2015_Win10\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Desktop_2015_Win10\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11</TargetName>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>Disabled</Optimization>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>.\Binary;.\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_WIN7_PLATFORM_UPDATE;WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;_LIB;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>Disabled</Optimization>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>.\Binary;.\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_WIN7_PLATFORM_UPDATE;WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;_LIB;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>.\Binary;.\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_WIN7_PLATFORM_UPDATE;WIN32;NDEBUG;_WINDOWS;_LIB;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>.\Binary;.\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_WIN7_PLATFORM_UPDATE;WIN32;NDEBUG;_WINDOWS;_LIB;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>.\Binary;.\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_WIN7_PLATFORM_UPDATE;WIN32;NDEBUG;PROFILE;_WINDOWS;_LIB;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>.\Binary;.\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_WIN7_PLATFORM_UPDATE;WIN32;NDEBUG;PROFILE;_WINDOWS;_LIB;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemGroup />
<ItemGroup>
<CLInclude Include="pchfx.h" />
<CLInclude Include=".\Inc\d3dx11effect.h" />
<CLInclude Include=".\Inc\d3dxglobal.h" />
<CLInclude Include=".\Binary\EffectBinaryFormat.h" />
<CLInclude Include=".\Binary\EffectStateBase11.h" />
<CLInclude Include=".\Binary\EffectStates11.h" />
<CLInclude Include=".\Binary\SOParser.h" />
<ClCompile Include="d3dxGlobal.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|X64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">Create</PrecompiledHeader>
</ClCompile>
<CLInclude Include="Effect.h" />
<ClCompile Include="EffectAPI.cpp" />
<ClCompile Include="EffectLoad.cpp" />
<CLInclude Include="EffectLoad.h" />
<ClCompile Include="EffectNonRuntime.cpp" />
<ClCompile Include="EffectReflection.cpp" />
<ClCompile Include="EffectRuntime.cpp" />
<None Include="EffectVariable.inl" />
<CLInclude Include="IUnknownImp.h" />
</ItemGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets" />
</Project>

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns:atg="http://atg.xbox.com" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Resource Files">
<UniqueIdentifier>{8e114980-c1a3-4ada-ad7c-83caadf5daeb}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
</Filter>
</ItemGroup>
<ItemGroup />
<ItemGroup>
<CLInclude Include="pchfx.h" />
<CLInclude Include=".\Inc\d3dx11effect.h" />
<CLInclude Include=".\Inc\d3dxglobal.h" />
<CLInclude Include=".\Binary\EffectBinaryFormat.h" />
<CLInclude Include=".\Binary\EffectStateBase11.h" />
<CLInclude Include=".\Binary\EffectStates11.h" />
<CLInclude Include=".\Binary\SOParser.h" />
<ClCompile Include="d3dxGlobal.cpp" />
<CLInclude Include="Effect.h" />
<ClCompile Include="EffectAPI.cpp" />
<ClCompile Include="EffectLoad.cpp" />
<CLInclude Include="EffectLoad.h" />
<ClCompile Include="EffectNonRuntime.cpp" />
<ClCompile Include="EffectReflection.cpp" />
<ClCompile Include="EffectRuntime.cpp" />
<None Include="EffectVariable.inl" />
<CLInclude Include="IUnknownImp.h" />
</ItemGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup>
</ItemGroup>
</Project>

View File

@@ -0,0 +1,31 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2017
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Effects11", "Effects11_2017_Win10.vcxproj", "{DF460EAB-570D-4B50-9089-2E2FC801BF38}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Profile|Win32 = Profile|Win32
Profile|x64 = Profile|x64
Release|Win32 = Release|Win32
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Debug|Win32.ActiveCfg = Debug|Win32
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Debug|Win32.Build.0 = Debug|Win32
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Debug|x64.ActiveCfg = Debug|x64
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Debug|x64.Build.0 = Debug|x64
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Profile|Win32.ActiveCfg = Profile|Win32
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Profile|Win32.Build.0 = Profile|Win32
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Profile|x64.ActiveCfg = Profile|x64
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Profile|x64.Build.0 = Profile|x64
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Release|Win32.ActiveCfg = Release|Win32
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Release|Win32.Build.0 = Release|Win32
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Release|x64.ActiveCfg = Release|x64
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,419 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Profile|Win32">
<Configuration>Profile</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Profile|x64">
<Configuration>Profile</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>Effects11</ProjectName>
<ProjectGuid>{DF460EAB-570D-4B50-9089-2E2FC801BF38}</ProjectGuid>
<RootNamespace>Effects11</RootNamespace>
<Keyword>Win32Proj</Keyword>
<WindowsTargetPlatformVersion>10.0.14393.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>Bin\Desktop_2017_Win10\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Desktop_2017_Win10\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11d</TargetName>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">
<OutDir>Bin\Desktop_2017_Win10\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Desktop_2017_Win10\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11d</TargetName>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>Bin\Desktop_2017_Win10\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Desktop_2017_Win10\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11</TargetName>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'">
<OutDir>Bin\Desktop_2017_Win10\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Desktop_2017_Win10\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11</TargetName>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
<OutDir>Bin\Desktop_2017_Win10\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Desktop_2017_Win10\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11</TargetName>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">
<OutDir>Bin\Desktop_2017_Win10\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Desktop_2017_Win10\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11</TargetName>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>Disabled</Optimization>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>.\Binary;.\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_WIN7_PLATFORM_UPDATE;WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;_LIB;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>Disabled</Optimization>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>.\Binary;.\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_WIN7_PLATFORM_UPDATE;WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;_LIB;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>.\Binary;.\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_WIN7_PLATFORM_UPDATE;WIN32;NDEBUG;_WINDOWS;_LIB;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>.\Binary;.\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_WIN7_PLATFORM_UPDATE;WIN32;NDEBUG;_WINDOWS;_LIB;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>.\Binary;.\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_WIN7_PLATFORM_UPDATE;WIN32;NDEBUG;PROFILE;_WINDOWS;_LIB;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<OpenMPSupport>false</OpenMPSupport>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FloatingPointModel>Fast</FloatingPointModel>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<ExceptionHandling>Sync</ExceptionHandling>
<AdditionalIncludeDirectories>.\Binary;.\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_WIN7_PLATFORM_UPDATE;WIN32;NDEBUG;PROFILE;_WINDOWS;_LIB;D3DXFX_LARGEADDRESS_HANDLE;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
<Link>
<AdditionalOptions> %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LargeAddressAware>true</LargeAddressAware>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention>true</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
<UACExecutionLevel>AsInvoker</UACExecutionLevel>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Manifest>
<EnableDPIAwareness>false</EnableDPIAwareness>
</Manifest>
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<PostBuildEvent>
<Command>
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemGroup />
<ItemGroup>
<CLInclude Include="pchfx.h" />
<CLInclude Include=".\Inc\d3dx11effect.h" />
<CLInclude Include=".\Inc\d3dxglobal.h" />
<CLInclude Include=".\Binary\EffectBinaryFormat.h" />
<CLInclude Include=".\Binary\EffectStateBase11.h" />
<CLInclude Include=".\Binary\EffectStates11.h" />
<CLInclude Include=".\Binary\SOParser.h" />
<ClCompile Include="d3dxGlobal.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|X64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|X64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|X64'">Create</PrecompiledHeader>
</ClCompile>
<CLInclude Include="Effect.h" />
<ClCompile Include="EffectAPI.cpp" />
<ClCompile Include="EffectLoad.cpp" />
<CLInclude Include="EffectLoad.h" />
<ClCompile Include="EffectNonRuntime.cpp" />
<ClCompile Include="EffectReflection.cpp" />
<ClCompile Include="EffectRuntime.cpp" />
<None Include="EffectVariable.inl" />
<CLInclude Include="IUnknownImp.h" />
</ItemGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets" />
</Project>

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns:atg="http://atg.xbox.com" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Resource Files">
<UniqueIdentifier>{8e114980-c1a3-4ada-ad7c-83caadf5daeb}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
</Filter>
</ItemGroup>
<ItemGroup />
<ItemGroup>
<CLInclude Include="pchfx.h" />
<CLInclude Include=".\Inc\d3dx11effect.h" />
<CLInclude Include=".\Inc\d3dxglobal.h" />
<CLInclude Include=".\Binary\EffectBinaryFormat.h" />
<CLInclude Include=".\Binary\EffectStateBase11.h" />
<CLInclude Include=".\Binary\EffectStates11.h" />
<CLInclude Include=".\Binary\SOParser.h" />
<ClCompile Include="d3dxGlobal.cpp" />
<CLInclude Include="Effect.h" />
<ClCompile Include="EffectAPI.cpp" />
<ClCompile Include="EffectLoad.cpp" />
<CLInclude Include="EffectLoad.h" />
<ClCompile Include="EffectNonRuntime.cpp" />
<ClCompile Include="EffectReflection.cpp" />
<ClCompile Include="EffectRuntime.cpp" />
<None Include="EffectVariable.inl" />
<CLInclude Include="IUnknownImp.h" />
</ItemGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup>
</ItemGroup>
</Project>

View File

@@ -0,0 +1,34 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.22609.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Effects11", "Effects11_Windows10.vcxproj", "{9188BD60-F60C-4A40-98CF-F704E467D775}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|ARM = Debug|ARM
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|ARM = Release|ARM
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{9188BD60-F60C-4A40-98CF-F704E467D775}.Debug|ARM.ActiveCfg = Debug|ARM
{9188BD60-F60C-4A40-98CF-F704E467D775}.Debug|ARM.Build.0 = Debug|ARM
{9188BD60-F60C-4A40-98CF-F704E467D775}.Debug|x64.ActiveCfg = Debug|x64
{9188BD60-F60C-4A40-98CF-F704E467D775}.Debug|x64.Build.0 = Debug|x64
{9188BD60-F60C-4A40-98CF-F704E467D775}.Debug|x86.ActiveCfg = Debug|Win32
{9188BD60-F60C-4A40-98CF-F704E467D775}.Debug|x86.Build.0 = Debug|Win32
{9188BD60-F60C-4A40-98CF-F704E467D775}.Release|ARM.ActiveCfg = Release|ARM
{9188BD60-F60C-4A40-98CF-F704E467D775}.Release|ARM.Build.0 = Release|ARM
{9188BD60-F60C-4A40-98CF-F704E467D775}.Release|x64.ActiveCfg = Release|x64
{9188BD60-F60C-4A40-98CF-F704E467D775}.Release|x64.Build.0 = Release|x64
{9188BD60-F60C-4A40-98CF-F704E467D775}.Release|x86.ActiveCfg = Release|Win32
{9188BD60-F60C-4A40-98CF-F704E467D775}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,257 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|ARM">
<Configuration>Debug</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM">
<Configuration>Release</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClInclude Include="Binary\EffectBinaryFormat.h" />
<ClInclude Include="Binary\EffectStateBase11.h" />
<ClInclude Include="Binary\EffectStates11.h" />
<ClInclude Include="Binary\SOParser.h" />
<ClInclude Include="Effect.h" />
<ClInclude Include="EffectLoad.h" />
<ClInclude Include="inc\d3dx11effect.h" />
<ClInclude Include="inc\d3dxGlobal.h" />
<ClInclude Include="IUnknownImp.h" />
<ClInclude Include="pchfx.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="d3dxGlobal.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="EffectAPI.cpp" />
<ClCompile Include="EffectLoad.cpp" />
<ClCompile Include="EffectNonRuntime.cpp" />
<ClCompile Include="EffectReflection.cpp" />
<ClCompile Include="EffectRuntime.cpp" />
</ItemGroup>
<ItemGroup>
<None Include="EffectVariable.inl" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{9188bd60-f60c-4a40-98cf-f704e467d775}</ProjectGuid>
<Keyword>StaticLibrary</Keyword>
<ProjectName>Effects11</ProjectName>
<RootNamespace>Effects11</RootNamespace>
<DefaultLanguage>en-US</DefaultLanguage>
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
<AppContainerApplication>true</AppContainerApplication>
<ApplicationType>Windows Store</ApplicationType>
<WindowsTargetPlatformVersion>10.0.14393.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.10586.0</WindowsTargetPlatformMinVersion>
<ApplicationTypeRevision>10.0</ApplicationTypeRevision>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>Bin\Windows10\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Windows10\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11d</TargetName>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>Bin\Windows10\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Windows10\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11</TargetName>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
<OutDir>Bin\Windows10\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Windows10\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11d</TargetName>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
<OutDir>Bin\Windows10\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Windows10\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11</TargetName>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutDir>Bin\Windows10\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Windows10\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11d</TargetName>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>Bin\Windows10\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Windows10\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11</TargetName>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<CompileAsWinRT>false</CompileAsWinRT>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>.\Binary;.\Inc;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<CompileAsWinRT>false</CompileAsWinRT>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>.\Binary;.\Inc;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|arm'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<CompileAsWinRT>false</CompileAsWinRT>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>.\Binary;.\Inc;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|arm'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<CompileAsWinRT>false</CompileAsWinRT>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>.\Binary;.\Inc;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<CompileAsWinRT>false</CompileAsWinRT>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>.\Binary;.\Inc;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<CompileAsWinRT>false</CompileAsWinRT>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>.\Binary;.\Inc;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
</Link>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ClInclude Include="Binary\EffectBinaryFormat.h" />
<ClInclude Include="Binary\EffectStateBase11.h" />
<ClInclude Include="Binary\EffectStates11.h" />
<ClInclude Include="Binary\SOParser.h" />
<ClInclude Include="inc\d3dx11effect.h" />
<ClInclude Include="inc\d3dxGlobal.h" />
<ClInclude Include="Effect.h" />
<ClInclude Include="EffectLoad.h" />
<ClInclude Include="IUnknownImp.h" />
<ClInclude Include="pchfx.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="d3dxGlobal.cpp" />
<ClCompile Include="EffectAPI.cpp" />
<ClCompile Include="EffectLoad.cpp" />
<ClCompile Include="EffectNonRuntime.cpp" />
<ClCompile Include="EffectReflection.cpp" />
<ClCompile Include="EffectRuntime.cpp" />
</ItemGroup>
<ItemGroup>
<None Include="EffectVariable.inl" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,34 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.21005.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Effects11_Windows81", "Effects11_Windows81.vcxproj", "{3218B7F0-ABB8-47C3-8036-B61756E8ACC3}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|ARM = Debug|ARM
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Release|ARM = Release|ARM
Release|Win32 = Release|Win32
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{3218B7F0-ABB8-47C3-8036-B61756E8ACC3}.Debug|ARM.ActiveCfg = Debug|ARM
{3218B7F0-ABB8-47C3-8036-B61756E8ACC3}.Debug|ARM.Build.0 = Debug|ARM
{3218B7F0-ABB8-47C3-8036-B61756E8ACC3}.Debug|Win32.ActiveCfg = Debug|Win32
{3218B7F0-ABB8-47C3-8036-B61756E8ACC3}.Debug|Win32.Build.0 = Debug|Win32
{3218B7F0-ABB8-47C3-8036-B61756E8ACC3}.Debug|x64.ActiveCfg = Debug|x64
{3218B7F0-ABB8-47C3-8036-B61756E8ACC3}.Debug|x64.Build.0 = Debug|x64
{3218B7F0-ABB8-47C3-8036-B61756E8ACC3}.Release|ARM.ActiveCfg = Release|ARM
{3218B7F0-ABB8-47C3-8036-B61756E8ACC3}.Release|ARM.Build.0 = Release|ARM
{3218B7F0-ABB8-47C3-8036-B61756E8ACC3}.Release|Win32.ActiveCfg = Release|Win32
{3218B7F0-ABB8-47C3-8036-B61756E8ACC3}.Release|Win32.Build.0 = Release|Win32
{3218B7F0-ABB8-47C3-8036-B61756E8ACC3}.Release|x64.ActiveCfg = Release|x64
{3218B7F0-ABB8-47C3-8036-B61756E8ACC3}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,239 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|ARM">
<Configuration>Debug</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM">
<Configuration>Release</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClInclude Include="Binary\EffectBinaryFormat.h" />
<ClInclude Include="Binary\EffectStateBase11.h" />
<ClInclude Include="Binary\EffectStates11.h" />
<ClInclude Include="Binary\SOParser.h" />
<ClInclude Include="Effect.h" />
<ClInclude Include="EffectLoad.h" />
<ClInclude Include="inc\d3dx11effect.h" />
<ClInclude Include="inc\d3dxGlobal.h" />
<ClInclude Include="IUnknownImp.h" />
<ClInclude Include="pchfx.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="d3dxGlobal.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="EffectAPI.cpp" />
<ClCompile Include="EffectLoad.cpp" />
<ClCompile Include="EffectNonRuntime.cpp" />
<ClCompile Include="EffectReflection.cpp" />
<ClCompile Include="EffectRuntime.cpp" />
</ItemGroup>
<ItemGroup>
<None Include="EffectVariable.inl" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{3218b7f0-abb8-47c3-8036-b61756e8acc3}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<ProjectName>Effects11_Windows81</ProjectName>
<RootNamespace>Effects11_Windows81</RootNamespace>
<DefaultLanguage>en-US</DefaultLanguage>
<MinimumVisualStudioVersion>12.0</MinimumVisualStudioVersion>
<AppContainerApplication>true</AppContainerApplication>
<ApplicationType>Windows Store</ApplicationType>
<ApplicationTypeRevision>8.1</ApplicationTypeRevision>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>Bin\Windows81\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Windows81\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11d</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>Bin\Windows81\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Windows81\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
<OutDir>Bin\Windows81\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Windows81\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11d</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
<OutDir>Bin\Windows81\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Windows81\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutDir>Bin\Windows81\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Windows81\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11d</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>Bin\Windows81\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\Windows81\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<CompileAsWinRT>false</CompileAsWinRT>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>.\Binary;.\Inc;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<CompileAsWinRT>false</CompileAsWinRT>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>.\Binary;.\Inc;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|arm'">
<ClCompile>
<CompileAsWinRT>false</CompileAsWinRT>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>.\Binary;.\Inc;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|arm'">
<ClCompile>
<CompileAsWinRT>false</CompileAsWinRT>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>.\Binary;.\Inc;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<CompileAsWinRT>false</CompileAsWinRT>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>.\Binary;.\Inc;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<CompileAsWinRT>false</CompileAsWinRT>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>.\Binary;.\Inc;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
</Link>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="inc\d3dx11effect.h" />
<ClInclude Include="inc\d3dxGlobal.h" />
<ClInclude Include="Binary\EffectBinaryFormat.h" />
<ClInclude Include="Binary\EffectStateBase11.h" />
<ClInclude Include="Binary\EffectStates11.h" />
<ClInclude Include="Binary\SOParser.h" />
<ClInclude Include="Effect.h" />
<ClInclude Include="EffectLoad.h" />
<ClInclude Include="IUnknownImp.h" />
<ClInclude Include="pchfx.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="d3dxGlobal.cpp" />
<ClCompile Include="EffectAPI.cpp" />
<ClCompile Include="EffectLoad.cpp" />
<ClCompile Include="EffectNonRuntime.cpp" />
<ClCompile Include="EffectReflection.cpp" />
<ClCompile Include="EffectRuntime.cpp" />
</ItemGroup>
<ItemGroup>
<None Include="EffectVariable.inl" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,28 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.30501.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Effects11_WindowsPhone81", "Effects11_WindowsPhone81.vcxproj", "{961262DB-696C-48AF-BD8C-A080FC64C3F1}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|ARM = Debug|ARM
Debug|Win32 = Debug|Win32
Release|ARM = Release|ARM
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{961262DB-696C-48AF-BD8C-A080FC64C3F1}.Debug|ARM.ActiveCfg = Debug|ARM
{961262DB-696C-48AF-BD8C-A080FC64C3F1}.Debug|ARM.Build.0 = Debug|ARM
{961262DB-696C-48AF-BD8C-A080FC64C3F1}.Debug|Win32.ActiveCfg = Debug|Win32
{961262DB-696C-48AF-BD8C-A080FC64C3F1}.Debug|Win32.Build.0 = Debug|Win32
{961262DB-696C-48AF-BD8C-A080FC64C3F1}.Release|ARM.ActiveCfg = Release|ARM
{961262DB-696C-48AF-BD8C-A080FC64C3F1}.Release|ARM.Build.0 = Release|ARM
{961262DB-696C-48AF-BD8C-A080FC64C3F1}.Release|Win32.ActiveCfg = Release|Win32
{961262DB-696C-48AF-BD8C-A080FC64C3F1}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,180 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|ARM">
<Configuration>Debug</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM">
<Configuration>Release</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClInclude Include="Binary\EffectBinaryFormat.h" />
<ClInclude Include="Binary\EffectStateBase11.h" />
<ClInclude Include="Binary\EffectStates11.h" />
<ClInclude Include="Binary\SOParser.h" />
<ClInclude Include="Effect.h" />
<ClInclude Include="EffectLoad.h" />
<ClInclude Include="inc\d3dx11effect.h" />
<ClInclude Include="inc\d3dxGlobal.h" />
<ClInclude Include="IUnknownImp.h" />
<ClInclude Include="pchfx.h" />
</ItemGroup>
<ItemGroup>
<None Include="EffectVariable.inl" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="d3dxGlobal.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="EffectAPI.cpp" />
<ClCompile Include="EffectLoad.cpp" />
<ClCompile Include="EffectNonRuntime.cpp" />
<ClCompile Include="EffectReflection.cpp" />
<ClCompile Include="EffectRuntime.cpp" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{961262db-696c-48af-bd8c-a080fc64c3f1}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<ProjectName>Effects11</ProjectName>
<RootNamespace>Effects11</RootNamespace>
<DefaultLanguage>en-US</DefaultLanguage>
<MinimumVisualStudioVersion>12.0</MinimumVisualStudioVersion>
<AppContainerApplication>true</AppContainerApplication>
<ApplicationType>Windows Phone</ApplicationType>
<ApplicationTypeRevision>8.1</ApplicationTypeRevision>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v120_wp81</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v120_wp81</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v120_wp81</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v120_wp81</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
<IntDir>Bin\WindowsPhone81\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>Bin\WindowsPhone81\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\WindowsPhone81\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11d</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>Bin\WindowsPhone81\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\WindowsPhone81\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
<OutDir>Bin\WindowsPhone81\$(Platform)\$(Configuration)\</OutDir>
<TargetName>Effects11d</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
<OutDir>Bin\WindowsPhone81\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\WindowsPhone81\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<CompileAsWinRT>false</CompileAsWinRT>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>.\Binary;.\Inc;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<CompileAsWinRT>false</CompileAsWinRT>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>.\Binary;.\Inc;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<CompileAsWinRT>false</CompileAsWinRT>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>.\Binary;.\Inc;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<CompileAsWinRT>false</CompileAsWinRT>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>.\Binary;.\Inc;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
</Link>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ClInclude Include="Effect.h" />
<ClInclude Include="EffectLoad.h" />
<ClInclude Include="IUnknownImp.h" />
<ClInclude Include="pchfx.h" />
<ClInclude Include="inc\d3dx11effect.h" />
<ClInclude Include="inc\d3dxGlobal.h" />
<ClInclude Include="Binary\EffectBinaryFormat.h" />
<ClInclude Include="Binary\EffectStateBase11.h" />
<ClInclude Include="Binary\EffectStates11.h" />
<ClInclude Include="Binary\SOParser.h" />
</ItemGroup>
<ItemGroup>
<None Include="EffectVariable.inl" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="d3dxGlobal.cpp" />
<ClCompile Include="EffectAPI.cpp" />
<ClCompile Include="EffectLoad.cpp" />
<ClCompile Include="EffectNonRuntime.cpp" />
<ClCompile Include="EffectReflection.cpp" />
<ClCompile Include="EffectRuntime.cpp" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,23 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Effects11", "Effects11_XboxOneXDK_2015.vcxproj", "{A2D70D23-3516-40EC-B831-2FAD3DAFD8B7}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Durango = Debug|Durango
Profile|Durango = Profile|Durango
Release|Durango = Release|Durango
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{A2D70D23-3516-40EC-B831-2FAD3DAFD8B7}.Debug|Durango.ActiveCfg = Debug|Durango
{A2D70D23-3516-40EC-B831-2FAD3DAFD8B7}.Debug|Durango.Build.0 = Debug|Durango
{A2D70D23-3516-40EC-B831-2FAD3DAFD8B7}.Profile|Durango.ActiveCfg = Profile|Durango
{A2D70D23-3516-40EC-B831-2FAD3DAFD8B7}.Profile|Durango.Build.0 = Profile|Durango
{A2D70D23-3516-40EC-B831-2FAD3DAFD8B7}.Release|Durango.ActiveCfg = Release|Durango
{A2D70D23-3516-40EC-B831-2FAD3DAFD8B7}.Release|Durango.Build.0 = Release|Durango
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,197 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Release|Durango">
<Configuration>Release</Configuration>
<Platform>Durango</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Profile|Durango">
<Configuration>Profile</Configuration>
<Platform>Durango</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|Durango">
<Configuration>Debug</Configuration>
<Platform>Durango</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<RootNamespace>Effects11</RootNamespace>
<ProjectGuid>{a2d70d23-3516-40ec-b831-2fad3dafd8b7}</ProjectGuid>
<DefaultLanguage>en-US</DefaultLanguage>
<Keyword>Win32Proj</Keyword>
<ApplicationEnvironment>title</ApplicationEnvironment>
<ProjectName>Effects11</ProjectName>
<!-- - - - -->
<PlatformToolset>v110</PlatformToolset>
<MinimumVisualStudioVersion>11.0</MinimumVisualStudioVersion>
<TargetRuntime>Native</TargetRuntime>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Durango'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v140</PlatformToolset>
<UseDebugLibraries>false</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<EmbedManifest>false</EmbedManifest>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Durango'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v140</PlatformToolset>
<UseDebugLibraries>false</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<EmbedManifest>false</EmbedManifest>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v140</PlatformToolset>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<EmbedManifest>false</EmbedManifest>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Durango'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Durango'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Durango'">
<ReferencePath>$(Console_SdkLibPath);$(Console_SdkWindowsMetadataPath)</ReferencePath>
<LibraryPath>$(Console_SdkLibPath)</LibraryPath>
<LibraryWPath>$(Console_SdkLibPath);$(Console_SdkWindowsMetadataPath)</LibraryWPath>
<IncludePath>$(Console_SdkIncludeRoot)</IncludePath>
<ExecutablePath>$(Console_SdkRoot)bin;$(VCInstallDir)bin\x86_amd64;$(VCInstallDir)bin;$(WindowsSDK_ExecutablePath_x86);$(VSInstallDir)Common7\Tools\bin;$(VSInstallDir)Common7\tools;$(VSInstallDir)Common7\ide;$(ProgramFiles)\HTML Help Workshop;$(MSBuildToolsPath32);$(FxCopDir);$(PATH);</ExecutablePath>
<OutDir>Bin\XboxOneXDK\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\XboxOneXDK\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Durango'">
<ReferencePath>$(Console_SdkLibPath);$(Console_SdkWindowsMetadataPath)</ReferencePath>
<LibraryPath>$(Console_SdkLibPath)</LibraryPath>
<LibraryWPath>$(Console_SdkLibPath);$(Console_SdkWindowsMetadataPath)</LibraryWPath>
<IncludePath>$(Console_SdkIncludeRoot)</IncludePath>
<ExecutablePath>$(Console_SdkRoot)bin;$(VCInstallDir)bin\x86_amd64;$(VCInstallDir)bin;$(WindowsSDK_ExecutablePath_x86);$(VSInstallDir)Common7\Tools\bin;$(VSInstallDir)Common7\tools;$(VSInstallDir)Common7\ide;$(ProgramFiles)\HTML Help Workshop;$(MSBuildToolsPath32);$(FxCopDir);$(PATH);</ExecutablePath>
<OutDir>Bin\XboxOneXDK\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\XboxOneXDK\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'">
<ReferencePath>$(Console_SdkLibPath);$(Console_SdkWindowsMetadataPath)</ReferencePath>
<LibraryPath>$(Console_SdkLibPath)</LibraryPath>
<LibraryWPath>$(Console_SdkLibPath);$(Console_SdkWindowsMetadataPath)</LibraryWPath>
<IncludePath>$(Console_SdkIncludeRoot)</IncludePath>
<ExecutablePath>$(Console_SdkRoot)bin;$(VCInstallDir)bin\x86_amd64;$(VCInstallDir)bin;$(WindowsSDK_ExecutablePath_x86);$(VSInstallDir)Common7\Tools\bin;$(VSInstallDir)Common7\tools;$(VSInstallDir)Common7\ide;$(ProgramFiles)\HTML Help Workshop;$(MSBuildToolsPath32);$(FxCopDir);$(PATH);</ExecutablePath>
<OutDir>Bin\XboxOneXDK\$(Platform)\$(Configuration)\</OutDir>
<IntDir>Bin\XboxOneXDK\$(Platform)\$(Configuration)\</IntDir>
<TargetName>Effects11d</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Durango'">
<Link>
<AdditionalDependencies>d3d11_x.lib;combase.lib;kernelx.lib;uuid.lib;</AdditionalDependencies>
<EntryPointSymbol>
</EntryPointSymbol>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
</Link>
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<AdditionalUsingDirectories>$(Console_SdkPackagesRoot);$(Console_SdkWindowsMetadataPath);%(AdditionalUsingDirectories)</AdditionalUsingDirectories>
<Optimization>MaxSpeed</Optimization>
<PreprocessorDefinitions>NDEBUG;__WRL_NO_DEFAULT_LIB__;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<WarningLevel>Level4</WarningLevel>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<CompileAsWinRT>false</CompileAsWinRT>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<AdditionalIncludeDirectories>.\Binary;.\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Durango'">
<Link>
<AdditionalDependencies>pixEvt.lib;d3d11_x.lib;combase.lib;kernelx.lib;uuid.lib;</AdditionalDependencies>
<EntryPointSymbol>
</EntryPointSymbol>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
</Link>
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<AdditionalUsingDirectories>$(Console_SdkPackagesRoot);$(Console_SdkWindowsMetadataPath);%(AdditionalUsingDirectories)</AdditionalUsingDirectories>
<Optimization>MaxSpeed</Optimization>
<PreprocessorDefinitions>NDEBUG;__WRL_NO_DEFAULT_LIB__;_LIB;PROFILE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<WarningLevel>Level4</WarningLevel>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<CompileAsWinRT>false</CompileAsWinRT>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<AdditionalIncludeDirectories>.\Binary;.\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'">
<Link>
<AdditionalDependencies>d3d11_x.lib;combase.lib;kernelx.lib;uuid.lib;</AdditionalDependencies>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
</Link>
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pchfx.h</PrecompiledHeaderFile>
<MinimalRebuild>false</MinimalRebuild>
<AdditionalUsingDirectories>$(Console_SdkPackagesRoot);$(Console_SdkWindowsMetadataPath);%(AdditionalUsingDirectories)</AdditionalUsingDirectories>
<WarningLevel>Level4</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_DEBUG;__WRL_NO_DEFAULT_LIB__;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<CompileAsWinRT>false</CompileAsWinRT>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
<AdditionalIncludeDirectories>.\Binary;.\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="Binary\EffectBinaryFormat.h" />
<ClInclude Include="Binary\EffectStateBase11.h" />
<ClInclude Include="Binary\EffectStates11.h" />
<ClInclude Include="Binary\SOParser.h" />
<ClInclude Include="Effect.h" />
<ClInclude Include="EffectLoad.h" />
<ClInclude Include="inc\d3dx11effect.h" />
<ClInclude Include="inc\d3dxGlobal.h" />
<ClInclude Include="IUnknownImp.h" />
<ClInclude Include="pchfx.h" />
</ItemGroup>
<ItemGroup>
<None Include="EffectVariable.inl" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="d3dxGlobal.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Durango'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|Durango'">Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="EffectAPI.cpp" />
<ClCompile Include="EffectLoad.cpp" />
<ClCompile Include="EffectNonRuntime.cpp" />
<ClCompile Include="EffectReflection.cpp" />
<ClCompile Include="EffectRuntime.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ClInclude Include="Binary\EffectBinaryFormat.h" />
<ClInclude Include="Binary\EffectStateBase11.h" />
<ClInclude Include="Binary\EffectStates11.h" />
<ClInclude Include="Binary\SOParser.h" />
<ClInclude Include="inc\d3dx11effect.h" />
<ClInclude Include="inc\d3dxGlobal.h" />
<ClInclude Include="Effect.h" />
<ClInclude Include="EffectLoad.h" />
<ClInclude Include="IUnknownImp.h" />
<ClInclude Include="pchfx.h" />
</ItemGroup>
<ItemGroup>
<None Include="EffectVariable.inl" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="d3dxGlobal.cpp" />
<ClCompile Include="EffectAPI.cpp" />
<ClCompile Include="EffectLoad.cpp" />
<ClCompile Include="EffectNonRuntime.cpp" />
<ClCompile Include="EffectReflection.cpp" />
<ClCompile Include="EffectRuntime.cpp" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,57 @@
//--------------------------------------------------------------------------------------
// File: IUnknownImp.h
//
// Direct3D 11 Effects Helper for COM interop
//
// Lifetime for most Effects objects is based on the the lifetime of the master
// effect, so the reference count is not used.
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// http://go.microsoft.com/fwlink/p/?LinkId=271568
//--------------------------------------------------------------------------------------
#pragma once
#define IUNKNOWN_IMP(Class, Interface, BaseInterface) \
\
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, _COM_Outptr_ LPVOID *ppv) override \
{ \
if( !ppv ) \
return E_INVALIDARG; \
\
*ppv = nullptr; \
if(IsEqualIID(iid, IID_IUnknown)) \
{ \
*ppv = (IUnknown*)((Interface*)this); \
} \
else if(IsEqualIID(iid, IID_##Interface)) \
{ \
*ppv = (Interface *)this; \
} \
else if(IsEqualIID(iid, IID_##BaseInterface)) \
{ \
*ppv = (BaseInterface *)this; \
} \
else \
{ \
return E_NOINTERFACE; \
} \
\
return S_OK; \
} \
\
ULONG STDMETHODCALLTYPE AddRef() override \
{ \
return 1; \
} \
\
ULONG STDMETHODCALLTYPE Release() override \
{ \
return 0; \
}

View File

@@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2017 Microsoft Corp
Permission is hereby granted, free of charge, to any person obtaining a copy of this
software and associated documentation files (the "Software"), to deal in the Software
without restriction, including without limitation the rights to use, copy, modify,
merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice shall be included in all copies
or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@@ -0,0 +1,150 @@
EFFECTS FOR DIRECT3D 11 (FX11)
------------------------------
Copyright (c) Microsoft Corporation. All rights reserved.
March 10, 2017
Effects for Direct3D 11 (FX11) is a management runtime for authoring HLSL shaders, render
state, and runtime variables together.
The source is written for Visual Studio 2013 or 2015. It is recommended that you
make use of VS 2013 Update 5, VS 2015 Update 2, and Windows 7 Service Pack 1 or later.
These components are designed to work without requiring any content from the DirectX SDK. For details,
see "Where is the DirectX SDK?" <http://msdn.microsoft.com/en-us/library/ee663275.aspx>.
All content and source code for this package are subject to the terms of the MIT License.
<http://opensource.org/licenses/MIT>.
For the latest version of FX11, more detailed documentation, etc., please visit the project site.
http://go.microsoft.com/fwlink/p/?LinkId=271568
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the
Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
https://opensource.microsoft.com/codeofconduct/
-------
SAMPLES
-------
Direct3D Tutorial 11-14
BasicHLSLFX11, DynamicShaderLinkageFX11, FixedFuncEMUFX11, InstancingFX11
These samples are hosted on GitHub <https://github.com/walbourn/directx-sdk-samples>
----------
DISCLAIMER
----------
Effects 11 is being provided as a porting aid for older code that makes use of the Effects 10 (FX10) API or Effects 9 (FX9)
API in the deprecated D3DX9 library. See MSDN for a list of differences compared to the Effects 10 (FX10) library.
https://msdn.microsoft.com/en-us/library/windows/desktop/ff476141.aspx
The Effects 11 library is for use in Win32 desktop applications. FX11 requires the D3DCompiler API be available at runtime
to provide shader reflection functionality, and this API is not deployable for Windows Store apps on Windows 8.0, Windows RT,
or Windows phone 8.0.
The fx_5_0 profile support in the HLSL compiler is deprecated, and does not fully support DirectX 11.1 HLSL features
such as minimum precision types. It is supported in the Windows 8.1 SDK version of the HLSL compiler (FXC.EXE) and
D3DCompile API (#46), is supported but generates a deprecation warning with D3DCompile API (#47), and could be removed
in a future update.
---------------
RELEASE HISTORY
---------------
March 10, 2017 (11.19)
Add VS 2017 projects
Minor code cleanup
September 15, 2016 (11.18)
Minor code cleanup
August 2, 2016 (11.17)
Updated for VS 2015 Update 3 and Windows 10 SDK (14393)
Added 'D' suffix to debug libraries per request
April 26, 2016 (11.16)
Retired VS 2012 projects
Minor code and project file cleanup
November 30, 2015 (11.15)
Updated for VS 2015 Update 1 and Windows 10 SDK (10586)
July 29, 2015 (11.14)
Updated for VS 2015 and Windows 10 SDK RTM
Retired VS 2010 projects
June 17, 2015 (11.13)
Fix for Get/SetFloatVectorArray with an offset
April 14, 2015 (11.12)
More updates for VS 2015
November 24, 2014 (11.11)
Updates for Visual Studio 2015 Technical Preview
July 15, 2014 (11.10)
Minor code review fixes
January 24, 2014 (11.09)
VS 2010 projects now require Windows 8.1 SDK
Added pragma for needed libs to public header
Minor code cleanup
October 21, 2013 (11.08)
Updated for Visual Studio 2013 and Windows 8.1 SDK RTM
July 16, 2013 (11.07)
Added VS 2013 Preview project files
Cleaned up project files
Fixed a number of /analyze issues
June 13, 2013 (11.06)
Added GetMatrixPointerArray, GetMatrixTransposePointerArray, SetMatrixPointerArray, SetMatrixTransposePointerArray methods
Reverted back to BOOL in some cases because sizeof(bool)==1, sizeof(BOOL)==4
Some code-cleanup: minor SAL fix, removed bad assert, and added use of override keyword
February 22, 2013 (11.05)
Cleaned up some warning level 4 warnings
November 6, 2012 (11.04)
Added IUnknown as a base class for all Effects 11 interfaces to simplify use in managed interop sceanrios, although the
lifetime for these objects is still based on the lifetime of the parent ID3DX11Effect object. Therefore reference counting
is ignored for these interfaces.
ID3DX11EffectType, ID3DX11EffectVariable and derived classes, ID3DX11EffectPass,
ID3DX11EffectTechnique, and ID3DX11EffectGroup
October 24, 2012 (11.03)
Removed the dependency on the D3DX11 headers, so FX11 no longer requires the legacy DirectX SDK to build.
It does require the d3dcompiler.h header from either the Windows 8.0 SDK or from the legacy DirectX SDK
Removed references to D3D10 constants and interfaces
Deleted the d3dx11dbg.cpp and d3dx11dbg.h files
Deleted the D3DX11_EFFECT_PASS flags which were never implemented
General C++ code cleanups (nullptr, C++ style casting, stdint.h types, Safer CRT, etc.) which are compatible with Visual C++ 2010 and 2012
SAL2 annotation and /analyze cleanup
Added population of Direct3D debug names for object naming support in PIX and the SDK debug layer
Added additional optional parameter to D3DX11CreateEffectFromMemory to provide a debug name
Added D3DX11CreateEffectFromFile, D3DX11CompileEffectFromMemory, and D3DX11CompileEffectFromFile
June 2010 (11.02)
The DirectX SDK (June 2010) included an update with some minor additional bug fixes. This also included the Effects 11-based
sample DynamicShaderLinkageFX11. This is the last version to support Visual Studio 2008. The source code is located in
Samples\C++\Effects11.
February 2010 (11.01)
An update was shipped with the DirectX SDK (February 2010). This fixed a problem with the library which prevented it from
working correctly on 9.x and 10.x feature levels. This is the last version to support Visual Studio 2005. The source code
is located in Samples\C++\Effects11.
August 2009 (11.00)
The initial release of Effects 11 (FX11) was in the DirectX SDK (August 2009). The source code is located in
Utilities\Source\Effects11. This is essentially the Effects 10 (FX10) system ported to Direct3D 11.0 with
support for effects pools removed and support for groups added.

View File

@@ -0,0 +1,392 @@
//--------------------------------------------------------------------------------------
// File: d3dxGlobal.cpp
//
// Direct3D 11 Effects implementation for helper data structures
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// http://go.microsoft.com/fwlink/p/?LinkId=271568
//--------------------------------------------------------------------------------------
#include "pchfx.h"
#include <intsafe.h>
#include <stdio.h>
#include <stdarg.h>
namespace D3DX11Core
{
//////////////////////////////////////////////////////////////////////////
// CMemoryStream - A class to simplify reading binary data
//////////////////////////////////////////////////////////////////////////
CMemoryStream::CMemoryStream() : m_pData(nullptr), m_cbData(0), m_readPtr(0)
{
}
CMemoryStream::~CMemoryStream()
{
}
_Use_decl_annotations_
HRESULT CMemoryStream::SetData(const void *pData, size_t size)
{
m_pData = (uint8_t*) pData;
m_cbData = size;
m_readPtr = 0;
return S_OK;
}
_Use_decl_annotations_
HRESULT CMemoryStream::ReadAtOffset(size_t offset, size_t size, void **ppData)
{
if (offset >= m_cbData)
return E_FAIL;
m_readPtr = offset;
return Read(ppData, size);
}
_Use_decl_annotations_
HRESULT CMemoryStream::ReadAtOffset(size_t offset, LPCSTR *ppString)
{
if (offset >= m_cbData)
return E_FAIL;
m_readPtr = offset;
return Read(ppString);
}
_Use_decl_annotations_
HRESULT CMemoryStream::Read(void **ppData, size_t size)
{
size_t temp = m_readPtr + size;
if (temp < m_readPtr || temp > m_cbData)
return E_FAIL;
*ppData = m_pData + m_readPtr;
m_readPtr = temp;
return S_OK;
}
_Use_decl_annotations_
HRESULT CMemoryStream::Read(uint32_t *pDword)
{
uint32_t *pTempDword;
HRESULT hr;
hr = Read((void**) &pTempDword, sizeof(uint32_t));
if (FAILED(hr))
return E_FAIL;
*pDword = *pTempDword;
return S_OK;
}
_Use_decl_annotations_
HRESULT CMemoryStream::Read(LPCSTR *ppString)
{
size_t iChar=m_readPtr;
for(; m_pData[iChar]; iChar++)
{
if (iChar > m_cbData)
return E_FAIL;
}
*ppString = (LPCSTR) (m_pData + m_readPtr);
m_readPtr = iChar;
return S_OK;
}
size_t CMemoryStream::GetPosition()
{
return m_readPtr;
}
HRESULT CMemoryStream::Seek(_In_ size_t offset)
{
if (offset > m_cbData)
return E_FAIL;
m_readPtr = offset;
return S_OK;
}
}
//////////////////////////////////////////////////////////////////////////
// CDataBlock - used to dynamically build up the effect file in memory
//////////////////////////////////////////////////////////////////////////
CDataBlock::CDataBlock() :
m_size(0),
m_maxSize(0),
m_pData(nullptr),
m_pNext(nullptr),
m_IsAligned(false)
{
}
CDataBlock::~CDataBlock()
{
SAFE_DELETE_ARRAY(m_pData);
SAFE_DELETE(m_pNext);
}
void CDataBlock::EnableAlignment()
{
m_IsAligned = true;
}
_Use_decl_annotations_
HRESULT CDataBlock::AddData(const void *pvNewData, uint32_t bufferSize, CDataBlock **ppBlock)
{
HRESULT hr = S_OK;
uint32_t bytesToCopy;
const uint8_t *pNewData = (const uint8_t*) pvNewData;
if (m_maxSize == 0)
{
// This is a brand new DataBlock, fill it up
m_maxSize = std::max<uint32_t>(8192, bufferSize);
VN( m_pData = new uint8_t[m_maxSize] );
}
assert(m_pData == AlignToPowerOf2(m_pData, c_DataAlignment));
bytesToCopy = std::min(m_maxSize - m_size, bufferSize);
memcpy(m_pData + m_size, pNewData, bytesToCopy);
pNewData += bytesToCopy;
if (m_IsAligned)
{
assert(m_size == AlignToPowerOf2(m_size, c_DataAlignment));
m_size += AlignToPowerOf2(bytesToCopy, c_DataAlignment);
}
else
{
m_size += bytesToCopy;
}
bufferSize -= bytesToCopy;
*ppBlock = this;
if (bufferSize != 0)
{
assert(nullptr == m_pNext); // make sure we're not overwriting anything
// Couldn't fit all data into this block, spill over into next
VN( m_pNext = new CDataBlock() );
if (m_IsAligned)
{
m_pNext->EnableAlignment();
}
VH( m_pNext->AddData(pNewData, bufferSize, ppBlock) );
}
lExit:
return hr;
}
_Use_decl_annotations_
void* CDataBlock::Allocate(uint32_t bufferSize, CDataBlock **ppBlock)
{
void *pRetValue;
uint32_t temp = m_size + bufferSize;
if (temp < m_size)
return nullptr;
*ppBlock = this;
if (m_maxSize == 0)
{
// This is a brand new DataBlock, fill it up
m_maxSize = std::max<uint32_t>(8192, bufferSize);
m_pData = new uint8_t[m_maxSize];
if (!m_pData)
return nullptr;
memset(m_pData, 0xDD, m_maxSize);
}
else if (temp > m_maxSize)
{
assert(nullptr == m_pNext); // make sure we're not overwriting anything
// Couldn't fit data into this block, spill over into next
m_pNext = new CDataBlock();
if (!m_pNext)
return nullptr;
if (m_IsAligned)
{
m_pNext->EnableAlignment();
}
return m_pNext->Allocate(bufferSize, ppBlock);
}
assert(m_pData == AlignToPowerOf2(m_pData, c_DataAlignment));
pRetValue = m_pData + m_size;
if (m_IsAligned)
{
assert(m_size == AlignToPowerOf2(m_size, c_DataAlignment));
m_size = AlignToPowerOf2(temp, c_DataAlignment);
}
else
{
m_size = temp;
}
return pRetValue;
}
//////////////////////////////////////////////////////////////////////////
CDataBlockStore::CDataBlockStore() :
m_pFirst(nullptr),
m_pLast(nullptr),
m_Size(0),
m_Offset(0),
m_IsAligned(false)
{
#if _DEBUG
m_cAllocations = 0;
#endif
}
CDataBlockStore::~CDataBlockStore()
{
// Can't just do SAFE_DELETE(m_pFirst) since it blows the stack when deleting long chains of data
CDataBlock* pData = m_pFirst;
while(pData)
{
CDataBlock* pCurrent = pData;
pData = pData->m_pNext;
pCurrent->m_pNext = nullptr;
delete pCurrent;
}
// m_pLast will be deleted automatically
}
void CDataBlockStore::EnableAlignment()
{
m_IsAligned = true;
}
_Use_decl_annotations_
HRESULT CDataBlockStore::AddString(LPCSTR pString, uint32_t *pOffset)
{
size_t strSize = strlen(pString) + 1;
assert( strSize <= 0xffffffff );
return AddData(pString, (uint32_t)strSize, pOffset);
}
_Use_decl_annotations_
HRESULT CDataBlockStore::AddData(const void *pNewData, uint32_t bufferSize, uint32_t *pCurOffset)
{
HRESULT hr = S_OK;
if (bufferSize == 0)
{
if (pCurOffset)
{
*pCurOffset = 0;
}
goto lExit;
}
if (!m_pFirst)
{
VN( m_pFirst = new CDataBlock() );
if (m_IsAligned)
{
m_pFirst->EnableAlignment();
}
m_pLast = m_pFirst;
}
if (pCurOffset)
*pCurOffset = m_Size + m_Offset;
VH( m_pLast->AddData(pNewData, bufferSize, &m_pLast) );
m_Size += bufferSize;
lExit:
return hr;
}
void* CDataBlockStore::Allocate(_In_ uint32_t bufferSize)
{
void *pRetValue = nullptr;
#if _DEBUG
m_cAllocations++;
#endif
if (!m_pFirst)
{
m_pFirst = new CDataBlock();
if (!m_pFirst)
return nullptr;
if (m_IsAligned)
{
m_pFirst->EnableAlignment();
}
m_pLast = m_pFirst;
}
if (FAILED(UIntAdd(m_Size, bufferSize, &m_Size)))
return nullptr;
pRetValue = m_pLast->Allocate(bufferSize, &m_pLast);
if (!pRetValue)
return nullptr;
return pRetValue;
}
uint32_t CDataBlockStore::GetSize()
{
return m_Size;
}
//////////////////////////////////////////////////////////////////////////
#ifdef _DEBUG
_Use_decl_annotations_
void __cdecl D3DXDebugPrintf(UINT lvl, LPCSTR szFormat, ...)
{
UNREFERENCED_PARAMETER(lvl);
char strA[4096];
char strB[4096];
va_list ap;
va_start(ap, szFormat);
vsprintf_s(strA, sizeof(strA), szFormat, ap);
strA[4095] = '\0';
va_end(ap);
sprintf_s(strB, sizeof(strB), "Effects11: %s\r\n", strA);
strB[4095] = '\0';
OutputDebugStringA(strB);
}
#endif // _DEBUG

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,62 @@
//--------------------------------------------------------------------------------------
// File: pchfx.h
//
// Direct3D 11 shader effects precompiled header
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// http://go.microsoft.com/fwlink/p/?LinkId=271568
//--------------------------------------------------------------------------------------
#pragma once
#pragma warning(disable : 4102 4127 4201 4505 4616 4706 6326)
#ifndef NOMINMAX
#define NOMINMAX
#endif
#include <algorithm>
#if defined(_XBOX_ONE) && defined(_TITLE)
#include <d3d11_x.h>
#include <D3DCompiler_x.h>
#define DCOMMON_H_INCLUDED
#define NO_D3D11_DEBUG_NAME
#elif (_WIN32_WINNT >= 0x0602) || defined(_WIN7_PLATFORM_UPDATE)
#include <d3d11_1.h>
#include <D3DCompiler.h>
#else
#include <d3d11.h>
#include <D3DCompiler.h>
#endif
#ifndef _WIN32_WINNT_WIN8
#define _WIN32_WINNT_WIN8 0x0602
#endif
#undef DEFINE_GUID
#include "INITGUID.h"
#include "d3dx11effect.h"
#define UNUSED -1
//////////////////////////////////////////////////////////////////////////
#define offsetof_fx( a, b ) (uint32_t)offsetof( a, b )
#include "d3dxGlobal.h"
#include <stddef.h>
#include <stdlib.h>
#include "Effect.h"
#include "EffectStateBase11.h"
#include "EffectLoad.h"

View File

@@ -0,0 +1,49 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.26403.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LouigiVeronaDisk", "LouigiVeronaDisk.vcxproj", "{551D8F57-07C0-4232-B9F6-A3FEBFD52B53}"
ProjectSection(ProjectDependencies) = postProject
{DF460EAB-570D-4B50-9089-2E2FC801BF38} = {DF460EAB-570D-4B50-9089-2E2FC801BF38}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Effects11", "FX11-master\Effects11_2015.vcxproj", "{DF460EAB-570D-4B50-9089-2E2FC801BF38}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Profile|x64 = Profile|x64
Profile|x86 = Profile|x86
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{551D8F57-07C0-4232-B9F6-A3FEBFD52B53}.Debug|x64.ActiveCfg = Debug|Win32
{551D8F57-07C0-4232-B9F6-A3FEBFD52B53}.Debug|x86.ActiveCfg = Debug|Win32
{551D8F57-07C0-4232-B9F6-A3FEBFD52B53}.Debug|x86.Build.0 = Debug|Win32
{551D8F57-07C0-4232-B9F6-A3FEBFD52B53}.Profile|x64.ActiveCfg = Profile|Win32
{551D8F57-07C0-4232-B9F6-A3FEBFD52B53}.Profile|x86.ActiveCfg = Profile|Win32
{551D8F57-07C0-4232-B9F6-A3FEBFD52B53}.Profile|x86.Build.0 = Profile|Win32
{551D8F57-07C0-4232-B9F6-A3FEBFD52B53}.Release|x64.ActiveCfg = Release|Win32
{551D8F57-07C0-4232-B9F6-A3FEBFD52B53}.Release|x86.ActiveCfg = Release|Win32
{551D8F57-07C0-4232-B9F6-A3FEBFD52B53}.Release|x86.Build.0 = Release|Win32
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Debug|x64.ActiveCfg = Debug|x64
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Debug|x64.Build.0 = Debug|x64
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Debug|x86.ActiveCfg = Debug|Win32
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Debug|x86.Build.0 = Debug|Win32
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Profile|x64.ActiveCfg = Release|x64
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Profile|x64.Build.0 = Release|x64
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Profile|x64.Deploy.0 = Release|x64
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Profile|x86.ActiveCfg = Debug|Win32
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Profile|x86.Build.0 = Debug|Win32
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Release|x64.ActiveCfg = Release|x64
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Release|x64.Build.0 = Release|x64
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Release|x86.ActiveCfg = Release|Win32
{DF460EAB-570D-4B50-9089-2E2FC801BF38}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,236 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Profile|Win32">
<Configuration>Profile</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{551D8F57-07C0-4232-B9F6-A3FEBFD52B53}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>LouigiVeronaDisk</RootNamespace>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)bin\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)obj\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
<LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)bin\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)obj\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
<OutDir>$(SolutionDir)bin\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)obj\$(Configuration)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<AdditionalIncludeDirectories>$(SolutionDir)\FX11-master\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
<PostBuildEvent>
<Command>xcopy /y /e $(ProjectDir)src\shaders\*.* $(TargetDir)shaders\*.*</Command>
</PostBuildEvent>
<PostBuildEvent>
<Message>Copying shaders...</Message>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;PROFILE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<AdditionalIncludeDirectories>$(SolutionDir)\FX11-master\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
<PostBuildEvent>
<Command>xcopy /y /e $(ProjectDir)src\shaders\*.* $(TargetDir)shaders\*.*</Command>
</PostBuildEvent>
<PostBuildEvent>
<Message>Copying shaders...</Message>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>Use</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<AdditionalIncludeDirectories>$(SolutionDir)\FX11-master\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
<PostBuildEvent>
<Command>xcopy /y /e $(ProjectDir)src\shaders\*.* $(TargetDir)shaders\*.*</Command>
</PostBuildEvent>
<PostBuildEvent>
<Message>Copying shaders...</Message>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="src\button.h" />
<ClInclude Include="src\d2dbitmap.h" />
<ClInclude Include="src/config.h" />
<ClInclude Include="src/dx.h" />
<ClInclude Include="src/LouigiVeronaDisk.h" />
<ClInclude Include="src/Resource.h" />
<ClInclude Include="src/stdafx.h" />
<ClInclude Include="src/targetver.h" />
<ClInclude Include="src\bass.h" />
<ClInclude Include="src\bassflac.h" />
<ClInclude Include="src\bassmix.h" />
<ClInclude Include="src\d3dtexture.h" />
<ClInclude Include="src\error.h" />
<ClInclude Include="src\music.h" />
<ClInclude Include="src\shader.h" />
<ClInclude Include="src\window.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="src\button.cpp" />
<ClCompile Include="src\d2dbitmap.cpp" />
<ClCompile Include="src/LouigiVeronaDisk.cpp" />
<ClCompile Include="src/stdafx.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="src\d3dtexture.cpp" />
<ClCompile Include="src\dx.cpp" />
<ClCompile Include="src\error.cpp" />
<ClCompile Include="src\music.cpp" />
<ClCompile Include="src\shader.cpp" />
<ClCompile Include="src\window.cpp" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="src/LouigiVeronaDisk.rc" />
</ItemGroup>
<ItemGroup>
<Image Include="src/LouigiVeronaDisk.ico" />
<Image Include="src/small.ico" />
</ItemGroup>
<ItemGroup>
<CustomBuild Include="src\bass.dll">
<DeploymentContent>true</DeploymentContent>
<FileType>Document</FileType>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy /y "%(FullPath)" "$(TargetDir)"</Command>
<Command Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">copy /y "%(FullPath)" "$(TargetDir)"</Command>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Copying bass.dll</Message>
<Message Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">Copying bass.dll</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">copy /y "%(FullPath)" "$(TargetDir)"</Command>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Copying bass.dll</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(TargetDir)bass.dll;%(Outputs)</Outputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(TargetDir)bass.dll;%(Outputs)</Outputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(TargetDir)bass.dll;%(Outputs)</Outputs>
</CustomBuild>
</ItemGroup>
<ItemGroup>
<Library Include="src\bass.lib" />
<Library Include="src\bassflac.lib" />
<Library Include="src\bassmix.lib">
<FileType>Document</FileType>
</Library>
</ItemGroup>
<ItemGroup>
<CustomBuild Include="src\bassflac.dll">
<FileType>Document</FileType>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy /y "%(FullPath)" "$(TargetDir)"</Command>
<Command Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">copy /y "%(FullPath)" "$(TargetDir)"</Command>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">copy /y "%(FullPath)" "$(TargetDir)"</Command>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Copying bassflac.dll</Message>
<Message Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">Copying bassflac.dll</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(TargetDir)bassflac.dll;%(Outputs)</Outputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(TargetDir)bassflac.dll;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Copying bassflac.dll</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(TargetDir)bassflac.dll;%(Outputs)</Outputs>
</CustomBuild>
</ItemGroup>
<ItemGroup>
<CustomBuild Include="src\bassmix.dll">
<FileType>Document</FileType>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy /y "%(FullPath)" "$(TargetDir)"</Command>
<Command Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">copy /y "%(FullPath)" "$(TargetDir)"</Command>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Copying bassmix.dll...</Message>
<Message Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">Copying bassmix.dll...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">copy /y "%(FullPath)" "$(TargetDir)"</Command>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Copying bassmix.dll...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(TargetDir)bassmix.dll;%(Outputs)</Outputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(TargetDir)bassmix.dll;%(Outputs)</Outputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(TargetDir)bassmix.dll;%(Outputs)</Outputs>
</CustomBuild>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="FX11-master\Effects11_2015.vcxproj">
<Project>{df460eab-570d-4b50-9089-2e2fc801bf38}</Project>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -0,0 +1,122 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="src/config.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="src/dx.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="src/LouigiVeronaDisk.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="src/Resource.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="src/stdafx.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="src/targetver.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="src\bass.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="src\music.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="src\bassflac.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="src\bassmix.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="src\d2dbitmap.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="src\button.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="src\error.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="src\window.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="src\d3dtexture.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="src\shader.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="src/LouigiVeronaDisk.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src/stdafx.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\dx.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\music.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\d2dbitmap.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\error.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\button.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\window.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\d3dtexture.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\shader.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="src/LouigiVeronaDisk.rc">
<Filter>Resource Files</Filter>
</ResourceCompile>
</ItemGroup>
<ItemGroup>
<Image Include="src/LouigiVeronaDisk.ico">
<Filter>Resource Files</Filter>
</Image>
<Image Include="src/small.ico">
<Filter>Resource Files</Filter>
</Image>
</ItemGroup>
<ItemGroup>
<Library Include="src\bass.lib" />
<Library Include="src\bassflac.lib" />
<Library Include="src\bassmix.lib" />
</ItemGroup>
<ItemGroup>
<CustomBuild Include="src\bass.dll" />
<CustomBuild Include="src\bassflac.dll" />
<CustomBuild Include="src\bassmix.dll" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ShowAllFiles>true</ShowAllFiles>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LocalDebuggerWorkingDirectory>$(ProjectDir)src</LocalDebuggerWorkingDirectory>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">
<LocalDebuggerWorkingDirectory>$(ProjectDir)src</LocalDebuggerWorkingDirectory>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LocalDebuggerWorkingDirectory>$(ProjectDir)src</LocalDebuggerWorkingDirectory>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
</PropertyGroup>
</Project>

Binary file not shown.

View File

@@ -0,0 +1,26 @@
#include "stdafx.h"
#include "LouigiVeronaDisk.h"
int __stdcall wWinMain(HINSTANCE module, HINSTANCE, PWSTR, int)
{
CreatePlayerWindow(module);
InitDX();
InitMusic();
InitVis();
ShowWindow(hWnd, SW_SHOWNORMAL);
while (!bDone)
{
DrawWindow();
HR(swapChain->Present(1, 0));
MSG msg;
while (PeekMessage(&msg, hWnd, 0, 0, PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
FreeVis();
}

View File

@@ -0,0 +1,3 @@
#pragma once
#include "resource.h"

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

1051
LouigiVeronaDisk/src/bass.h Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,91 @@
/*
BASSFLAC 2.4 C/C++ header file
Copyright (c) 2004-2013 Un4seen Developments Ltd.
See the BASSFLAC.CHM file for more detailed documentation
*/
#ifndef BASSFLAC_H
#define BASSFLAC_H
#include "bass.h"
#if BASSVERSION!=0x204
#error conflicting BASS and BASSFLAC versions
#endif
#ifdef __cplusplus
extern "C" {
#endif
#ifndef BASSFLACDEF
#define BASSFLACDEF(f) WINAPI f
#endif
// BASS_CHANNELINFO type
#define BASS_CTYPE_STREAM_FLAC 0x10900
#define BASS_CTYPE_STREAM_FLAC_OGG 0x10901
// Additional tag types
#define BASS_TAG_FLAC_CUE 12 // cuesheet : TAG_FLAC_CUE structure
#define BASS_TAG_FLAC_PICTURE 0x12000 // + index #, picture : TAG_FLAC_PICTURE structure
typedef struct {
DWORD apic; // ID3v2 "APIC" picture type
const char *mime; // mime type
const char *desc; // description
DWORD width;
DWORD height;
DWORD depth;
DWORD colors;
DWORD length; // data length
const void *data;
} TAG_FLAC_PICTURE;
typedef struct {
QWORD offset; // index offset relative to track offset (samples)
DWORD number; // index number
} TAG_FLAC_CUE_TRACK_INDEX;
typedef struct {
QWORD offset; // track offset (samples)
DWORD number; // track number
const char *isrc; // ISRC
DWORD flags;
DWORD nindexes; // number of indexes
const TAG_FLAC_CUE_TRACK_INDEX *indexes; // the indexes
} TAG_FLAC_CUE_TRACK;
typedef struct {
const char *catalog; // media catalog number
DWORD leadin; // lead-in (samples)
BOOL iscd; // a CD?
DWORD ntracks; // number of tracks
const TAG_FLAC_CUE_TRACK *tracks; // the tracks
} TAG_FLAC_CUE;
// TAG_FLAC_CUE_TRACK flags
#define TAG_FLAC_CUE_TRACK_DATA 1 // data track
#define TAG_FLAC_CUE_TRACK_PRE 2 // pre-emphasis
HSTREAM BASSFLACDEF(BASS_FLAC_StreamCreateFile)(BOOL mem, const void *file, QWORD offset, QWORD length, DWORD flags);
HSTREAM BASSFLACDEF(BASS_FLAC_StreamCreateURL)(const char *url, DWORD offset, DWORD flags, DOWNLOADPROC *proc, void *user);
HSTREAM BASSFLACDEF(BASS_FLAC_StreamCreateFileUser)(DWORD system, DWORD flags, const BASS_FILEPROCS *procs, void *user);
#ifdef __cplusplus
}
#ifdef _WIN32
static inline HSTREAM BASS_FLAC_StreamCreateFile(BOOL mem, const WCHAR *file, QWORD offset, QWORD length, DWORD flags)
{
return BASS_FLAC_StreamCreateFile(mem, (const void*)file, offset, length, flags|BASS_UNICODE);
}
static inline HSTREAM BASS_FLAC_StreamCreateURL(const WCHAR *url, DWORD offset, DWORD flags, DOWNLOADPROC *proc, void *user)
{
return BASS_FLAC_StreamCreateURL((const char*)url, offset, flags|BASS_UNICODE, proc, user);
}
#endif
#endif
#endif

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,111 @@
/*
BASSmix 2.4 C/C++ header file
Copyright (c) 2005-2016 Un4seen Developments Ltd.
See the BASSMIX.CHM file for more detailed documentation
*/
#ifndef BASSMIX_H
#define BASSMIX_H
#include "bass.h"
#if BASSVERSION!=0x204
#error conflicting BASS and BASSmix versions
#endif
#ifdef __cplusplus
extern "C" {
#endif
#ifndef BASSMIXDEF
#define BASSMIXDEF(f) WINAPI f
#endif
// additional BASS_SetConfig option
#define BASS_CONFIG_MIXER_BUFFER 0x10601
#define BASS_CONFIG_MIXER_POSEX 0x10602
#define BASS_CONFIG_SPLIT_BUFFER 0x10610
// BASS_Mixer_StreamCreate flags
#define BASS_MIXER_END 0x10000 // end the stream when there are no sources
#define BASS_MIXER_NONSTOP 0x20000 // don't stall when there are no sources
#define BASS_MIXER_RESUME 0x1000 // resume stalled immediately upon new/unpaused source
#define BASS_MIXER_POSEX 0x2000 // enable BASS_Mixer_ChannelGetPositionEx support
// source flags
#define BASS_MIXER_BUFFER 0x2000 // buffer data for BASS_Mixer_ChannelGetData/Level
#define BASS_MIXER_LIMIT 0x4000 // limit mixer processing to the amount available from this source
#define BASS_MIXER_MATRIX 0x10000 // matrix mixing
#define BASS_MIXER_PAUSE 0x20000 // don't process the source
#define BASS_MIXER_DOWNMIX 0x400000 // downmix to stereo/mono
#define BASS_MIXER_NORAMPIN 0x800000 // don't ramp-in the start
// mixer attributes
#define BASS_ATTRIB_MIXER_LATENCY 0x15000
// splitter flags
#define BASS_SPLIT_SLAVE 0x1000 // only read buffered data
#define BASS_SPLIT_POS 0x2000
// splitter attributes
#define BASS_ATTRIB_SPLIT_ASYNCBUFFER 0x15010
#define BASS_ATTRIB_SPLIT_ASYNCPERIOD 0x15011
// envelope node
typedef struct {
QWORD pos;
float value;
} BASS_MIXER_NODE;
// envelope types
#define BASS_MIXER_ENV_FREQ 1
#define BASS_MIXER_ENV_VOL 2
#define BASS_MIXER_ENV_PAN 3
#define BASS_MIXER_ENV_LOOP 0x10000 // flag: loop
// additional sync type
#define BASS_SYNC_MIXER_ENVELOPE 0x10200
#define BASS_SYNC_MIXER_ENVELOPE_NODE 0x10201
// BASS_CHANNELINFO type
#define BASS_CTYPE_STREAM_MIXER 0x10800
#define BASS_CTYPE_STREAM_SPLIT 0x10801
DWORD BASSMIXDEF(BASS_Mixer_GetVersion)();
HSTREAM BASSMIXDEF(BASS_Mixer_StreamCreate)(DWORD freq, DWORD chans, DWORD flags);
BOOL BASSMIXDEF(BASS_Mixer_StreamAddChannel)(HSTREAM handle, DWORD channel, DWORD flags);
BOOL BASSMIXDEF(BASS_Mixer_StreamAddChannelEx)(HSTREAM handle, DWORD channel, DWORD flags, QWORD start, QWORD length);
DWORD BASSMIXDEF(BASS_Mixer_StreamGetChannels)(HSTREAM handle, DWORD *channels, DWORD count);
HSTREAM BASSMIXDEF(BASS_Mixer_ChannelGetMixer)(DWORD handle);
DWORD BASSMIXDEF(BASS_Mixer_ChannelFlags)(DWORD handle, DWORD flags, DWORD mask);
BOOL BASSMIXDEF(BASS_Mixer_ChannelRemove)(DWORD handle);
BOOL BASSMIXDEF(BASS_Mixer_ChannelSetPosition)(DWORD handle, QWORD pos, DWORD mode);
QWORD BASSMIXDEF(BASS_Mixer_ChannelGetPosition)(DWORD handle, DWORD mode);
QWORD BASSMIXDEF(BASS_Mixer_ChannelGetPositionEx)(DWORD channel, DWORD mode, DWORD delay);
DWORD BASSMIXDEF(BASS_Mixer_ChannelGetLevel)(DWORD handle);
BOOL BASSMIXDEF(BASS_Mixer_ChannelGetLevelEx)(DWORD handle, float *levels, float length, DWORD flags);
DWORD BASSMIXDEF(BASS_Mixer_ChannelGetData)(DWORD handle, void *buffer, DWORD length);
HSYNC BASSMIXDEF(BASS_Mixer_ChannelSetSync)(DWORD handle, DWORD type, QWORD param, SYNCPROC *proc, void *user);
BOOL BASSMIXDEF(BASS_Mixer_ChannelRemoveSync)(DWORD channel, HSYNC sync);
BOOL BASSMIXDEF(BASS_Mixer_ChannelSetMatrix)(DWORD handle, const void *matrix);
BOOL BASSMIXDEF(BASS_Mixer_ChannelSetMatrixEx)(DWORD handle, const void *matrix, float time);
BOOL BASSMIXDEF(BASS_Mixer_ChannelGetMatrix)(DWORD handle, void *matrix);
BOOL BASSMIXDEF(BASS_Mixer_ChannelSetEnvelope)(DWORD handle, DWORD type, const BASS_MIXER_NODE *nodes, DWORD count);
BOOL BASSMIXDEF(BASS_Mixer_ChannelSetEnvelopePos)(DWORD handle, DWORD type, QWORD pos);
QWORD BASSMIXDEF(BASS_Mixer_ChannelGetEnvelopePos)(DWORD handle, DWORD type, float *value);
HSTREAM BASSMIXDEF(BASS_Split_StreamCreate)(DWORD channel, DWORD flags, const int *chanmap);
DWORD BASSMIXDEF(BASS_Split_StreamGetSource)(HSTREAM handle);
DWORD BASSMIXDEF(BASS_Split_StreamGetSplits)(DWORD handle, HSTREAM *splits, DWORD count);
BOOL BASSMIXDEF(BASS_Split_StreamReset)(DWORD handle);
BOOL BASSMIXDEF(BASS_Split_StreamResetEx)(DWORD handle, DWORD offset);
DWORD BASSMIXDEF(BASS_Split_StreamGetAvailable)(DWORD handle);
#ifdef __cplusplus
}
#endif
#endif

Binary file not shown.

View File

@@ -0,0 +1,35 @@
#include "stdafx.h"
Button::Button()
: BitmapNormal()
, BitmapHover()
, Left(0)
, Top(0)
, Hover(false)
, Enabled(true)
{
}
Button::Button(int left, int top, int resourceNormal, int resourceHover)
: BitmapNormal(resourceNormal, L"PNG")
, BitmapHover(resourceHover, L"PNG")
, Left(left)
, Top(top)
, Hover(false)
, Enabled(true)
{
}
bool Button::HitTest(int x, int y)
{
return Enabled && (x >= Left && y >= Top && x <= Left + (int)BitmapNormal.Width && y <= Top + (int)BitmapNormal.Height);
}
void Button::Draw()
{
if (Enabled)
{
d2Context->DrawBitmap(Hover ? BitmapHover : BitmapNormal, D2D1::RectF((float)Left, (float)Top, Left + (float)BitmapNormal.Width, Top + (float)BitmapNormal.Height));
}
}

View File

@@ -0,0 +1,17 @@
#pragma once
class Button
{
public:
Button();
Button(int left, int top, int resourceNormal, int resourceHover);
bool HitTest(int x, int y);
void Draw();
bool Hover;
bool Enabled;
int Left;
int Top;
D2DBITMAP BitmapNormal;
D2DBITMAP BitmapHover;
};

View File

@@ -0,0 +1,45 @@
#pragma once
static const int windowWidth = 800;
static const int windowHeight = 800;
static const wchar_t* playerName = L"Louigi Verona - Life Inside Machine";
static const int songCount = 8;
static const int multisampleCount = 4;
static const char* songs[songCount] =
{
"music\\01_warming_up.flac",
"music\\02_electron.flac",
"music\\03_two_way_traffic.flac",
"music\\04_the_all_different_nagato.flac",
"music\\05_jungle.flac",
"music\\06_robo_dance.flac",
"music\\07_ocean.flac",
"music\\08_saying_goodbye.flac",
};
static const wchar_t* songNames[songCount] =
{
L"Warming up",
L"Electron",
L"Two way traffic",
L"The all different nagato",
L"Jungle",
L"Robo dance",
L"Ocean",
L"Saying goodbye",
};
static const wchar_t* playerShaderFile = L"shaders\\player.hlsl";
static const wchar_t* transitionShaderFile = L"shaders\\transition.hlsl";
static const wchar_t* shaderFiles[songCount] =
{
L"shaders\\01_warming_up.hlsl",
L"shaders\\02_electron.hlsl",
L"shaders\\03_two_way_traffic.hlsl",
L"shaders\\04_the_all_different_nagato.hlsl",
L"shaders\\05_jungle.hlsl",
L"shaders\\06_robo_dance.hlsl",
L"shaders\\07_ocean.hlsl",
L"shaders\\08_saying_goodbye.hlsl",
};

View File

@@ -0,0 +1,85 @@
#include "stdafx.h"
ComPtr<IWICImagingFactory> pIWICFactory;
D2DBITMAP::D2DBITMAP()
: bitmap(nullptr)
, pDecoder(nullptr)
, pSource(nullptr)
, pStream(nullptr)
, pConverter(nullptr)
, imageResHandle(0)
, imageResDataHandle(0)
, pImageFile(nullptr)
, imageFileSize(0)
{
if (pIWICFactory == nullptr)
{
CoInitialize(0);
HR(CoCreateInstance(CLSID_WICImagingFactory, NULL, CLSCTX_INPROC_SERVER, IID_IWICImagingFactory, reinterpret_cast<void **>(pIWICFactory.GetAddressOf())));
}
}
D2DBITMAP::~D2DBITMAP()
{
}
D2DBITMAP::D2DBITMAP(int resource, PCWSTR resourceType)
: bitmap(nullptr)
{
if (pIWICFactory == nullptr)
{
CoInitialize(0);
HR(CoCreateInstance(CLSID_WICImagingFactory, NULL, CLSCTX_INPROC_SERVER, IID_IWICImagingFactory, reinterpret_cast<void **>(pIWICFactory.GetAddressOf())));
}
imageResHandle = FindResourceW(hInstance, MAKEINTRESOURCE(resource), resourceType);
HR(imageResHandle ? S_OK : E_FAIL);
imageResDataHandle = LoadResource(hInstance, imageResHandle);
HR(imageResDataHandle ? S_OK : E_FAIL);
pImageFile = LockResource(imageResDataHandle);
HR(pImageFile ? S_OK : E_FAIL);
imageFileSize = SizeofResource(hInstance, imageResHandle);
HR(imageFileSize ? S_OK : E_FAIL);
HR(pIWICFactory->CreateStream(pStream.GetAddressOf()));
HR(pStream->InitializeFromMemory(reinterpret_cast<BYTE*>(pImageFile), imageFileSize));
HR(pIWICFactory->CreateDecoderFromStream(pStream.Get(), NULL, WICDecodeMetadataCacheOnLoad, pDecoder.GetAddressOf()));
HR(pDecoder->GetFrame(0, pSource.GetAddressOf()));
HR(pIWICFactory->CreateFormatConverter(pConverter.GetAddressOf()));
HR(pConverter->Initialize(pSource.Get(), GUID_WICPixelFormat32bppPBGRA, WICBitmapDitherTypeNone, NULL, 0.f, WICBitmapPaletteTypeMedianCut));
pConverter->GetSize(&Width, &Height);
pImagePixels = new BYTE[Width * Height * 4];
WICRect rect{ 0, 0, (int)Width, (int)Height };
HR(pConverter->CopyPixels(&rect, Width * 4, Width * Height * 4, pImagePixels));
BITMAPV5HEADER bmp_header;
memset(&bmp_header, 0, sizeof(BITMAPV5HEADER));
bmp_header.bV5Size = sizeof(BITMAPV5HEADER);
bmp_header.bV5Width = Width;
bmp_header.bV5Height = -(int)Height;
bmp_header.bV5Planes = 1;
bmp_header.bV5BitCount = 32;
bmp_header.bV5Compression = BI_RGB;
HDC hdc = GetDC(hWnd);
hDC = CreateCompatibleDC(hdc);
hBitmap = CreateDIBitmap(hdc, (BITMAPINFOHEADER *)&bmp_header, CBM_INIT, pImagePixels, (BITMAPINFO *)&bmp_header, DIB_RGB_COLORS);
}
bool D2DBITMAP::HitTest(int x, int y)
{
auto uints = (UINT*)pImagePixels;
auto pixel = uints[y * Width + x];
auto pixels = (BYTE*)&pixel;
return pixels[3] > 127;
}
D2DBITMAP::operator ID2D1Bitmap* ()
{
if (bitmap == nullptr)
{
HR(d2Context->CreateBitmapFromWicBitmap(pConverter.Get(), NULL, bitmap.GetAddressOf()));
}
return bitmap.Get();
}

View File

@@ -0,0 +1,32 @@
#pragma once
using namespace Microsoft::WRL;
extern ComPtr<IWICImagingFactory> pIWICFactory;
class D2DBITMAP
{
public:
D2DBITMAP();
D2DBITMAP(int resource, PCWSTR resourceType);
~D2DBITMAP();
UINT Width;
UINT Height;
BYTE *pImagePixels;
HDC hDC;
HBITMAP hBitmap;
operator ID2D1Bitmap* ();
bool HitTest(int x, int y);
private:
ComPtr<IWICBitmapDecoder> pDecoder;
ComPtr<IWICBitmapFrameDecode> pSource;
ComPtr<IWICStream> pStream;
ComPtr<IWICFormatConverter> pConverter;
HRSRC imageResHandle;
HGLOBAL imageResDataHandle;
void* pImageFile;
DWORD imageFileSize;
ComPtr<ID2D1Bitmap> bitmap;
};

View File

@@ -0,0 +1,91 @@
#include "stdafx.h"
D3DTEXTURE::D3DTEXTURE()
{
}
D3DTEXTURE::D3DTEXTURE(int width, int height, bool multiSample)
{
D3D11_TEXTURE2D_DESC texDesc = {};
texDesc.Width = width;
texDesc.Height = height;
texDesc.ArraySize = 1;
texDesc.BindFlags = D3D11_BIND_RENDER_TARGET | D3D11_BIND_SHADER_RESOURCE | (multiSample ? 0 : D3D11_BIND_UNORDERED_ACCESS);
texDesc.CPUAccessFlags = 0;
texDesc.Format = DXGI_FORMAT_R32G32B32A32_FLOAT;
texDesc.MipLevels = 1;
texDesc.MiscFlags = 0;
texDesc.SampleDesc.Count = multiSample ? multisampleCount : 1;
texDesc.SampleDesc.Quality = 0;
texDesc.Usage = D3D11_USAGE_DEFAULT;
MultiSample = multiSample;
HR(d3Device->CreateTexture2D(&texDesc, NULL, TEX.GetAddressOf()));
HR(d3Device->CreateShaderResourceView(TEX.Get(), NULL, SRV.GetAddressOf()));
HR(d3Device->CreateRenderTargetView(TEX.Get(), NULL, RTV.GetAddressOf()));
if (!multiSample)
{
HR(d3Device->CreateUnorderedAccessView(TEX.Get(), NULL, UAV.GetAddressOf()));
}
HR(TEX.Get()->QueryInterface(dxgiSurface.GetAddressOf()));
}
D3DTEXTURE::D3DTEXTURE(int resource, PCWSTR resourceType)
{
auto d2bmp = D2DBITMAP(resource, resourceType);
D3D11_TEXTURE2D_DESC texDesc = {};
texDesc.Width = d2bmp.Width;
texDesc.Height = d2bmp.Height;
texDesc.ArraySize = 1;
texDesc.BindFlags = D3D11_BIND_RENDER_TARGET | D3D11_BIND_SHADER_RESOURCE;
texDesc.CPUAccessFlags = 0;
texDesc.Format = DXGI_FORMAT_B8G8R8A8_UNORM;
texDesc.MipLevels = 1;
texDesc.MiscFlags = 0;
texDesc.SampleDesc.Count = 1;
texDesc.SampleDesc.Quality = 0;
texDesc.Usage = D3D11_USAGE_DEFAULT;
MultiSample = false;
D3D11_SUBRESOURCE_DATA data =
{
d2bmp.pImagePixels,
4 * d2bmp.Width,
4 * d2bmp.Width * d2bmp.Height
};
HR(d3Device->CreateTexture2D(&texDesc, &data, TEX.GetAddressOf()));
HR(d3Device->CreateShaderResourceView(TEX.Get(), NULL, SRV.GetAddressOf()));
HR(d3Device->CreateRenderTargetView(TEX.Get(), NULL, RTV.GetAddressOf()));
HR(TEX.Get()->QueryInterface(dxgiSurface.GetAddressOf()));
}
D3DTEXTURE::operator ID3D11Texture2D* ()
{
return TEX.Get();
}
D3DTEXTURE::operator ID3D11ShaderResourceView* ()
{
return SRV.Get();
}
D3DTEXTURE::operator ID3D11RenderTargetView* ()
{
return RTV.Get();
}
D3DTEXTURE::operator ID3D11UnorderedAccessView* ()
{
return UAV.Get();
}
D3DTEXTURE::operator ID2D1Bitmap* ()
{
if (bitmap == nullptr)
{
HR(d2Context->CreateBitmapFromDxgiSurface(dxgiSurface.Get(), NULL, bitmap.GetAddressOf()));
}
return bitmap.Get();
}

View File

@@ -0,0 +1,28 @@
#pragma once
using namespace Microsoft::WRL;
class D3DTEXTURE
{
public:
D3DTEXTURE();
D3DTEXTURE(int width, int height, bool multiSample = false);
D3DTEXTURE(int resource, PCWSTR resourceType);
operator ID3D11Texture2D* ();
operator ID3D11ShaderResourceView* ();
operator ID3D11RenderTargetView* ();
operator ID3D11UnorderedAccessView* ();
operator ID2D1Bitmap* ();
ComPtr<ID3D11Texture2D> TEX;
ComPtr<ID3D11ShaderResourceView> SRV;
ComPtr<ID3D11RenderTargetView> RTV;
ComPtr<ID3D11UnorderedAccessView> UAV;
ComPtr<IDXGISurface> dxgiSurface;
bool MultiSample;
private:
ComPtr<ID2D1Bitmap1> bitmap;
HANDLE sharedHandle;
};

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

163
LouigiVeronaDisk/src/dx.cpp Normal file
View File

@@ -0,0 +1,163 @@
#include "stdafx.h"
ComPtr<ID3D11Device> d3Device;
ComPtr<ID3D11DeviceContext> d3Context;
ComPtr<ID3D11Texture2D> backBufferTEX;
ComPtr<ID3D11RenderTargetView> backBufferRTV;
ComPtr<IDXGIDevice> dxgiDevice;
ComPtr<IDXGIFactory2> dxFactory;
ComPtr<IDXGISwapChain1> swapChain;
ComPtr<ID2D1Factory2> d2Factory;
ComPtr<ID2D1Device1> d2Device;
ComPtr<ID2D1DeviceContext> d2Context;
ComPtr<IDXGISurface2> surface;
ComPtr<IDCompositionDevice> dcompDevice;
ComPtr<IDCompositionTarget> target;
ComPtr<IDCompositionVisual> visual;
ComPtr<ID2D1Bitmap1> d2Bitmap;
ComPtr<IDWriteFactory> dWriteFactory;
ComPtr<IDWriteTextFormat> textFormat;
ComPtr<ID2D1SolidColorBrush> textBrush;
ComPtr<ID3D11Texture2D> depthStencilBuffer;
ComPtr<ID3D11DepthStencilState> depthTestWrite;
ComPtr<ID3D11DepthStencilView> depthStencilView;
D3DTEXTURE textTexture;
byte zero[64] = {};
DXGI_SWAP_CHAIN_DESC1 swapChainDescription =
{
0,
0,
DXGI_FORMAT_B8G8R8A8_UNORM,
FALSE,
{ 1, 0 },
DXGI_USAGE_RENDER_TARGET_OUTPUT,
2,
DXGI_SCALING_STRETCH,
#ifdef PROFILE
DXGI_SWAP_EFFECT_DISCARD,
DXGI_ALPHA_MODE_UNSPECIFIED,
#else
DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL,
DXGI_ALPHA_MODE_PREMULTIPLIED,
#endif
DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE
};
D3D11_VIEWPORT viewPort =
{
0,
0,
-1,
-1,
0,
1
};
const D2D1_BITMAP_PROPERTIES1 bitmapProperties =
{
{
DXGI_FORMAT_B8G8R8A8_UNORM,
D2D1_ALPHA_MODE_PREMULTIPLIED
},
0.0f,
0.0f,
D2D1_BITMAP_OPTIONS_TARGET | D2D1_BITMAP_OPTIONS_CANNOT_DRAW,
nullptr
};
D3D11_DEPTH_STENCIL_VIEW_DESC depthStencilViewDesc =
{
DXGI_FORMAT_D32_FLOAT,
multisampleCount == 1 ? D3D11_DSV_DIMENSION_TEXTURE2D : D3D11_DSV_DIMENSION_TEXTURE2DMS,
0,
{
0
}
};
D3D11_TEXTURE2D_DESC depthBufferDesc =
{
0,
0,
1,
1,
DXGI_FORMAT_D32_FLOAT,
{
multisampleCount, 0
},
D3D11_USAGE_DEFAULT,
D3D11_BIND_DEPTH_STENCIL,
0,
0
};
D3D_FEATURE_LEVEL feature = D3D_FEATURE_LEVEL_9_1;
const D3D_FEATURE_LEVEL lvl[] =
{
D3D_FEATURE_LEVEL_11_1,
D3D_FEATURE_LEVEL_11_0,
D3D_FEATURE_LEVEL_10_1,
D3D_FEATURE_LEVEL_10_0
};
void InitDX()
{
#if defined(_DEBUG)
HR(D3D11CreateDevice(nullptr, D3D_DRIVER_TYPE_HARDWARE, nullptr, D3D11_CREATE_DEVICE_BGRA_SUPPORT | D3D11_CREATE_DEVICE_DEBUG, lvl, _countof(lvl), D3D11_SDK_VERSION, &d3Device, &feature, nullptr));
#else
HR(D3D11CreateDevice(nullptr, D3D_DRIVER_TYPE_HARDWARE, nullptr, D3D11_CREATE_DEVICE_BGRA_SUPPORT, lvl, _countof(lvl), D3D11_SDK_VERSION, &d3Device, &feature, nullptr));
#endif
HR(d3Device.As(&dxgiDevice));
d3Device->GetImmediateContext(d3Context.GetAddressOf());
#ifdef _DEBUG
HR(CreateDXGIFactory2(DXGI_CREATE_FACTORY_DEBUG, __uuidof(dxFactory), reinterpret_cast<void **>(dxFactory.GetAddressOf())));
#else
HR(CreateDXGIFactory2(0, __uuidof(dxFactory), reinterpret_cast<void **>(dxFactory.GetAddressOf())));
#endif
#ifdef PROFILE
HR(dxFactory->CreateSwapChainForHwnd(dxgiDevice.Get(), hWnd, &swapChainDescription, nullptr, nullptr, swapChain.GetAddressOf()));
#else
HR(dxFactory->CreateSwapChainForComposition(dxgiDevice.Get(), &swapChainDescription, nullptr, swapChain.GetAddressOf()));
#endif
HR(D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, d2dFactoryOptions, d2Factory.GetAddressOf()));
HR(DWriteCreateFactory(DWRITE_FACTORY_TYPE_SHARED, __uuidof(IDWriteFactory), reinterpret_cast<IUnknown**>(dWriteFactory.GetAddressOf())));
HR(dWriteFactory->CreateTextFormat(
L"Segoe UI Black",
NULL,
DWRITE_FONT_WEIGHT_EXTRA_BLACK,
DWRITE_FONT_STYLE_NORMAL,
DWRITE_FONT_STRETCH_NORMAL,
92.0f,
L"en-us",
textFormat.GetAddressOf()
));
HR(textFormat->SetTextAlignment(DWRITE_TEXT_ALIGNMENT_CENTER));
HR(textFormat->SetParagraphAlignment(DWRITE_PARAGRAPH_ALIGNMENT_CENTER));
HR(d2Factory->CreateDevice(dxgiDevice.Get(), d2Device.GetAddressOf()));
HR(d2Device->CreateDeviceContext(D2D1_DEVICE_CONTEXT_OPTIONS_NONE, d2Context.GetAddressOf()));
HR(swapChain->GetBuffer(0, __uuidof(surface), reinterpret_cast<void **>(surface.GetAddressOf())));
HR(swapChain->GetBuffer(0, __uuidof(backBufferTEX), reinterpret_cast<void **>(backBufferTEX.GetAddressOf())));
HR(d3Device->CreateRenderTargetView(backBufferTEX.Get(), NULL, backBufferRTV.GetAddressOf()));
HR(d2Context->CreateBitmapFromDxgiSurface(surface.Get(), bitmapProperties, d2Bitmap.GetAddressOf()));
HR(d2Context->CreateSolidColorBrush(D2D1::ColorF(D2D1::ColorF::Black), textBrush.GetAddressOf()));
HR(d3Device->CreateTexture2D(&depthBufferDesc, NULL, depthStencilBuffer.GetAddressOf()));
HR(d3Device->CreateDepthStencilView(depthStencilBuffer.Get(), &depthStencilViewDesc, depthStencilView.GetAddressOf()));
#ifndef PROFILE
HR(DCompositionCreateDevice(dxgiDevice.Get(), __uuidof(dcompDevice), reinterpret_cast<void **>(dcompDevice.GetAddressOf())));
HR(dcompDevice->CreateTargetForHwnd(hWnd, true, target.GetAddressOf()));
HR(dcompDevice->CreateVisual(visual.GetAddressOf()));
HR(visual->SetContent(swapChain.Get()));
HR(target->SetRoot(visual.Get()));
HR(dcompDevice->Commit());
#endif
d3Context->RSSetViewports(1, &viewPort);
textTexture = D3DTEXTURE(windowWidth, windowHeight);
}

38
LouigiVeronaDisk/src/dx.h Normal file
View File

@@ -0,0 +1,38 @@
#pragma once
#include "d3dtexture.h"
using namespace Microsoft::WRL;
#ifdef _DEBUG
static const D2D1_FACTORY_OPTIONS d2dFactoryOptions = { D2D1_DEBUG_LEVEL_INFORMATION };
#else
static const D2D1_FACTORY_OPTIONS d2dFactoryOptions = { D2D1_DEBUG_LEVEL_NONE };
#endif
extern ComPtr<ID3D11Device> d3Device;
extern ComPtr<ID3D11DeviceContext> d3Context;
extern ComPtr<ID3D11Texture2D> backBufferTEX;
extern ComPtr<ID3D11RenderTargetView> backBufferRTV;
extern ComPtr<IDXGIDevice> dxgiDevice;
extern ComPtr<IDXGIFactory2> dxFactory;
extern ComPtr<IDXGISwapChain1> swapChain;
extern ComPtr<ID2D1Factory2> d2Factory;
extern ComPtr<ID2D1Device1> d2Device;
extern ComPtr<ID2D1DeviceContext> d2Context;
extern ComPtr<ID2D1Bitmap1> d2Bitmap;
extern ComPtr<IDXGISurface2> surface;
extern ComPtr<IDCompositionDevice> dcompDevice;
extern ComPtr<IDCompositionTarget> target;
extern ComPtr<IDCompositionVisual> visual;
extern ComPtr<IDWriteTextFormat> textFormat;
extern ComPtr<ID2D1SolidColorBrush> textBrush;
extern ComPtr<ID3D11Texture2D> depthStencilBuffer;
extern ComPtr<ID3D11DepthStencilView> depthStencilView;
extern D3DTEXTURE textTexture;
extern DXGI_SWAP_CHAIN_DESC1 swapChainDescription;
extern D3D11_TEXTURE2D_DESC depthBufferDesc;
extern D3D11_VIEWPORT viewPort;
extern byte zero[64];
void InitDX();

View File

@@ -0,0 +1,57 @@
#include "stdafx.h"
void HR(HRESULT const result)
{
if (S_OK != result)
{
throw ComException(result);
}
}
void BE(BOOL result)
{
if (!result)
{
int error = BASS_ErrorGetCode();
switch (error)
{
case 0: throw "BASS_OK";
case 1: throw "BASS_ERROR_MEM";
case 2: throw "BASS_ERROR_FILEOPEN";
case 3: throw "BASS_ERROR_DRIVER";
case 4: throw "BASS_ERROR_BUFLOST";
case 5: throw "BASS_ERROR_HANDLE";
case 6: throw "BASS_ERROR_FORMAT";
case 7: throw "BASS_ERROR_POSITION";
case 8: throw "BASS_ERROR_INIT";
case 9: throw "BASS_ERROR_START";
case 10: throw "BASS_ERROR_SSL";
case 14: throw "BASS_ERROR_ALREADY";
case 18: throw "BASS_ERROR_NOCHAN";
case 19: throw "BASS_ERROR_ILLTYPE";
case 20: throw "BASS_ERROR_ILLPARAM";
case 21: throw "BASS_ERROR_NO3D";
case 22: throw "BASS_ERROR_NOEAX";
case 23: throw "BASS_ERROR_DEVICE";
case 24: throw "BASS_ERROR_NOPLAY";
case 25: throw "BASS_ERROR_FREQ";
case 27: throw "BASS_ERROR_NOTFILE";
case 29: throw "BASS_ERROR_NOHW";
case 31: throw "BASS_ERROR_EMPTY";
case 32: throw "BASS_ERROR_NONET";
case 33: throw "BASS_ERROR_CREATE";
case 34: throw "BASS_ERROR_NOFX";
case 37: throw "BASS_ERROR_NOTAVAIL";
case 38: throw "BASS_ERROR_DECODE";
case 39: throw "BASS_ERROR_DX";
case 40: throw "BASS_ERROR_TIMEOUT";
case 41: throw "BASS_ERROR_FILEFORM";
case 42: throw "BASS_ERROR_SPEAKER";
case 43: throw "BASS_ERROR_VERSION";
case 44: throw "BASS_ERROR_CODEC";
case 45: throw "BASS_ERROR_ENDED";
case 46: throw "BASS_ERROR_BUSY";
case -1: throw "BASS_ERROR_UNKNOWN";
}
}
}

View File

@@ -0,0 +1,15 @@
#pragma once
struct ComException
{
HRESULT result;
DWORD error;
ComException(HRESULT const value)
: result(value)
{
error = GetLastError();
}
};
void HR(HRESULT const result);
void BE(BOOL result);

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

View File

@@ -0,0 +1,79 @@
#include "stdafx.h"
int currentSong = -1;
int previousSong = -1;
bool bTransitionPending = false;
static DWORD channels[songCount];
HSTREAM mixer;
void CALLBACK EndSync(HSYNC handle, DWORD channel, DWORD data, void* user)
{
PlayNext(BASS_MIXER_NORAMPIN);
}
void InitMusic()
{
BE(BASS_Init(-1, 44100, 0, hWnd, NULL));
mixer = BASS_Mixer_StreamCreate(44100, 2, BASS_MIXER_END); // create mixer
BASS_ChannelSetSync(mixer, BASS_SYNC_END | BASS_SYNC_MIXTIME, 0, EndSync, 0); // set sync for end
for (int i = 0; i < songCount; ++i)
{
DWORD chan = 0;
if (!(chan = BASS_FLAC_StreamCreateFile(FALSE, songs[i], 0, 0, BASS_STREAM_DECODE | BASS_SAMPLE_FLOAT))) {
throw "Can't open file";
}
channels[i] = chan;
}
BE(BASS_ChannelPlay(mixer, FALSE)); // start playing
}
void PlayNext(DWORD flags)
{
if (currentSong != -1)
{
BE(BASS_Mixer_ChannelRemove(channels[currentSong]));
}
bTransitionPending = true;
previousSong = currentSong;
currentSong++;
if (currentSong >= songCount)
currentSong = 0;
BE(BASS_ChannelSetPosition(channels[currentSong], 0, BASS_POS_BYTE)); // reset the mixer
BE(BASS_Mixer_StreamAddChannel(mixer, channels[currentSong], flags)); // plug it in
BE(BASS_ChannelSetPosition(mixer, 0, BASS_POS_BYTE)); // reset the mixer
}
void PlayPrev()
{
BE(BASS_Mixer_ChannelRemove(channels[currentSong]));
bTransitionPending = true;
previousSong = currentSong;
currentSong--;
if (currentSong < 0)
currentSong = songCount - 1;
BE(BASS_ChannelSetPosition(channels[currentSong], 0, BASS_POS_BYTE)); // reset the mixer
BE(BASS_Mixer_StreamAddChannel(mixer, channels[currentSong], 0)); // plug it in
BE(BASS_ChannelSetPosition(mixer, 0, BASS_POS_BYTE)); // reset the mixer
}
void Stop()
{
BASS_ChannelStop(mixer);
}
void Play()
{
BASS_ChannelPlay(mixer, FALSE);
}
float GetTime()
{
return (float)BASS_ChannelBytes2Seconds(mixer, BASS_ChannelGetPosition(mixer, BASS_POS_BYTE));
}

View File

@@ -0,0 +1,12 @@
#pragma once
extern int currentSong;
extern int previousSong;
extern bool bTransitionPending;
void InitMusic();
void PlayNext(DWORD flags = 0);
void PlayPrev();
float GetTime();
void Stop();
void Play();

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 562 KiB

View File

@@ -0,0 +1,276 @@
#include "stdafx.h"
#pragma data_seg(".d3dcompiler")
wchar_t d3dcompiler[] = L"d3dcompiler_47.dll";
HINSTANCE d3dCompilerLib;
pD3DCompile d3dCompile = nullptr;
struct D3INCLUDE : ID3DInclude
{
// Inherited via ID3DInclude
STDMETHOD(Open)(D3D_INCLUDE_TYPE IncludeType, LPCSTR pFileName, LPCVOID pParentData, LPCVOID * ppData, UINT * pBytes) override
{
FILE* shaderFile;
HR(fopen_s(&shaderFile, pFileName, "rb"));
fseek(shaderFile, 0, SEEK_END);
*pBytes = ftell(shaderFile);
*ppData = data = new char[*pBytes];
fseek(shaderFile, 0, SEEK_SET);
fread_s(data, *pBytes, sizeof(char), *pBytes, shaderFile);
fclose(shaderFile);
return S_OK;
}
STDMETHOD(Close)(LPCVOID pData) override
{
delete[] data;
return S_OK;
}
private:
char* data;
};
static DWORD WINAPI filemon(void* args)
{
Shader* shader = (Shader*)args;
while (shader->path != nullptr)
{
_wfinddata64i32_t fdata;
long hfile = _tfindfirst(shader->path, &fdata);
if (hfile != -1)
{
if (fdata.time_write != shader->shaderChangedDate)
{
shader->shaderChangedDate = fdata.time_write;
::SetEvent(shader->shaderCompileEvent);
}
_findclose(hfile);
}
::Sleep(100);
}
return 0;
}
Shader::Shader(const wchar_t* _path)
{
auto len = lstrlenW(_path);
path = new wchar_t[len + 1];
memcpy(path, _path, len * sizeof(wchar_t));
path[len] = 0;
if (d3dCompile == nullptr)
{
d3dCompilerLib = LoadLibrary(d3dcompiler);
if (!d3dCompilerLib)
{
d3dcompiler[13] = L'3';
d3dCompilerLib = LoadLibrary(d3dcompiler);
}
d3dCompile = (pD3DCompile)GetProcAddress(d3dCompilerLib, "D3DCompile");
}
static D3D11_BUFFER_DESC cbDesc =
{
32,
D3D11_USAGE_DEFAULT,
D3D11_BIND_CONSTANT_BUFFER,
0,
0,
0
};
d3Device->CreateBuffer(&cbDesc, NULL, constantBuffer.GetAddressOf());
shaderCompileEvent = ::CreateEventA(NULL, FALSE, FALSE, NULL);
Recompile();
_wfinddata64i32_t fdata;
long hfile = _tfindfirst(path, &fdata);
if (hfile != -1)
{
shaderChangedDate = fdata.time_write;
_findclose(hfile);
}
SetThreadPriority(thread = (HANDLE)CreateThread(0, 0, filemon, this, 0, 0), THREAD_PRIORITY_BELOW_NORMAL);
target1 = D3DTEXTURE(swapChainDescription.Width, swapChainDescription.Height, true);
target2 = D3DTEXTURE(swapChainDescription.Width, swapChainDescription.Height, true);
data1 = D3DTEXTURE(swapChainDescription.Width, swapChainDescription.Height);
data2 = D3DTEXTURE(swapChainDescription.Width, swapChainDescription.Height);
data3 = D3DTEXTURE(swapChainDescription.Width, swapChainDescription.Height);
data4 = D3DTEXTURE(swapChainDescription.Width, swapChainDescription.Height);
prevTarget1 = D3DTEXTURE(swapChainDescription.Width, swapChainDescription.Height);
prevTarget2 = D3DTEXTURE(swapChainDescription.Width, swapChainDescription.Height);
}
Shader::~Shader()
{
delete[] path;
path = nullptr;
TerminateThread(thread, 0);
}
void Shader::Recompile()
{
effect = nullptr;
UINT flags = 0;
#if defined(PROFILE) || defined(_DEBUG)
flags = D3DCOMPILE_DEBUG | D3DCOMPILE_SKIP_OPTIMIZATION;
#endif
auto hr = D3DX11CompileEffectFromFile(path, nullptr, &D3INCLUDE(), flags, 0, d3Device.Get(), &effect, errorBlob.GetAddressOf());
auto err = errorBlob == nullptr ? nullptr : (LPCSTR)errorBlob->GetBufferPointer();
if (S_OK != hr && err != nullptr)
{
MessageBoxA(hWnd, err, "Effect compiler", MB_OK);
return;
}
errorBlob = nullptr;
}
void Shader::Transition(float fTime, float fMusicTime, D3DTEXTURE& from, D3DTEXTURE& to)
{
if (::WaitForSingleObject(shaderCompileEvent, 0) == WAIT_OBJECT_0)
{
Recompile();
}
if (effect == nullptr)
return;
float constants[8] = {};
constants[0] = fTime;
constants[1] = fMusicTime;
constants[5] = windowWidth;
constants[6] = windowHeight;
constants[7] = windowWidth / windowHeight;
d3Context->UpdateSubresource(constantBuffer.Get(), 0, nullptr, constants, 16, 16);
d3Context->GSSetShader(nullptr, nullptr, 0);
effect->GetTechniqueByName("transition")->GetPassByIndex(0)->Apply(0, d3Context.Get());
d3Context->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP);
d3Context->PSSetConstantBuffers(0, 1, constantBuffer.GetAddressOf());
d3Context->PSSetShaderResources(0, 1, from.SRV.GetAddressOf());
d3Context->PSSetShaderResources(1, 1, to.SRV.GetAddressOf());
d3Context->OMSetRenderTargets(1, target1.RTV.GetAddressOf(), nullptr);
d3Context->Draw(4, 0);
d3Context->PSSetShaderResources(0, 2, (ID3D11ShaderResourceView* const*)zero);
d3Context->OMSetRenderTargets(1, (ID3D11RenderTargetView* const*)zero, nullptr);
d3Context->ResolveSubresource(prevTarget1, 0, target1, 0, DXGI_FORMAT_R32G32B32A32_FLOAT);
}
void Shader::Dispatch(float fTime, float fMusicTime, float x, float y, D3DTEXTURE& player1, D3DTEXTURE& player2)
{
float fDeltaTime = fTime - m_fLastTime;
m_fLastTime = fTime;
if (::WaitForSingleObject(shaderCompileEvent, 0) == WAIT_OBJECT_0)
{
Recompile();
}
if (effect == nullptr)
return;
float constants[8] = {};
constants[0] = fTime;
constants[1] = fMusicTime;
constants[2] = x;
constants[3] = y;
constants[4] = fDeltaTime;
constants[5] = windowWidth;
constants[6] = windowHeight;
constants[7] = windowWidth / windowHeight;
d3Context->UpdateSubresource(constantBuffer.Get(), 0, nullptr, constants, 16, 16);
ID3D11ShaderResourceView* srvs[] =
{
prevTarget1.SRV.Get(),
prevTarget2.SRV.Get(),
textTexture.SRV.Get(),
player1.SRV.Get(),
player2.SRV.Get(),
};
ID3D11UnorderedAccessView* uavs[] =
{
data1.UAV.Get(),
data2.UAV.Get(),
data3.UAV.Get(),
data4.UAV.Get(),
};
ID3D11RenderTargetView* rtvs[] =
{
target1.RTV.Get(),
target2.RTV.Get(),
};
d3Context->ClearRenderTargetView(target1, (float*)zero);
d3Context->ClearRenderTargetView(target2, (float*)zero);
D3DX11_EFFECT_DESC effectDesc;
effect->GetDesc(&effectDesc);
for (UINT t = 0; t < effectDesc.Techniques; ++t)
{
D3DX11_TECHNIQUE_DESC techDesc;
auto technique = effect->GetTechniqueByIndex(t);
technique->GetDesc(&techDesc);
for (UINT i = 0; i < techDesc.Passes; ++i)
{
D3DX11_PASS_DESC passDesc;
auto pass = technique->GetPassByIndex(i);
pass->GetDesc(&passDesc);
d3Context->GSSetShader(nullptr, nullptr, 0);
pass->Apply(0, d3Context.Get());
d3Context->CSSetShaderResources(0, 5, srvs);
d3Context->VSSetShaderResources(0, 5, srvs);
d3Context->GSSetShaderResources(0, 5, srvs);
d3Context->PSSetShaderResources(0, 5, srvs);
d3Context->CSSetConstantBuffers(0, 1, constantBuffer.GetAddressOf());
d3Context->VSSetConstantBuffers(0, 1, constantBuffer.GetAddressOf());
d3Context->GSSetConstantBuffers(0, 1, constantBuffer.GetAddressOf());
d3Context->PSSetConstantBuffers(0, 1, constantBuffer.GetAddressOf());
if (strcmp(passDesc.Name, "updateParticles") == 0)
{
d3Context->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP);
d3Context->CSSetUnorderedAccessViews(2, 4, uavs, nullptr);
d3Context->Dispatch(512, 512, 1);
}
else if (strcmp(passDesc.Name, "drawParticles") == 0)
{
d3Context->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_POINTLIST);
d3Context->OMSetRenderTargetsAndUnorderedAccessViews(2, rtvs, depthStencilView.Get(), 2, 4, uavs, nullptr);
d3Context->Draw(512 * 512, 0);
}
else if (strcmp(passDesc.Name, "fullscreenQuad") == 0)
{
d3Context->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP);
d3Context->OMSetRenderTargetsAndUnorderedAccessViews(2, rtvs, depthStencilView.Get(), 2, 4, uavs, nullptr);
d3Context->Draw(4, 0);
}
else
{
char error[256];
sprintf_s(error, "Pass not supported: %s", passDesc.Name);
MessageBoxA(hWnd, error, "FX error", MB_OK);
return;
}
d3Context->VSSetShaderResources(0, 5, (ID3D11ShaderResourceView* const*)zero);
d3Context->GSSetShaderResources(0, 5, (ID3D11ShaderResourceView* const*)zero);
d3Context->PSSetShaderResources(0, 5, (ID3D11ShaderResourceView* const*)zero);
d3Context->CSSetShaderResources(0, 5, (ID3D11ShaderResourceView* const*)zero);
d3Context->CSSetUnorderedAccessViews(2, 4, (ID3D11UnorderedAccessView* const*)zero, nullptr);
d3Context->OMSetRenderTargetsAndUnorderedAccessViews(2, (ID3D11RenderTargetView* const*)zero, nullptr, 2, 4, (ID3D11UnorderedAccessView* const*)zero, nullptr);
d3Context->ResolveSubresource(prevTarget1, 0, target1, 0, DXGI_FORMAT_R32G32B32A32_FLOAT);
d3Context->ResolveSubresource(prevTarget2, 0, target2, 0, DXGI_FORMAT_R32G32B32A32_FLOAT);
}
}
}

View File

@@ -0,0 +1,36 @@
#pragma once
using namespace Microsoft::WRL;
class Shader
{
public:
Shader(const wchar_t* _path);
~Shader();
void Dispatch(float fTime, float fMusicTime, float x, float y, D3DTEXTURE& player1, D3DTEXTURE& player2);
void Transition(float fTime, float fMusicTime, D3DTEXTURE& from, D3DTEXTURE& to);
D3DTEXTURE data1;
D3DTEXTURE data2;
D3DTEXTURE data3;
D3DTEXTURE data4;
D3DTEXTURE target1;
D3DTEXTURE target2;
D3DTEXTURE prevTarget1;
D3DTEXTURE prevTarget2;
wchar_t* path;
__time64_t shaderChangedDate;
HANDLE shaderCompileEvent;
private:
Shader() {};
void Recompile();
ComPtr<ID3D11Buffer> constantBuffer;
ComPtr<ID3DBlob> errorBlob;
ID3DX11Effect* effect;
HANDLE thread;
char* content;
size_t length;
float m_fLastTime;
};

View File

@@ -0,0 +1,145 @@
#include "shaders/common.hlsl"
#include "shaders/defaultvs.hlsl"
float4 ps_player(sample float4 id: SV_POSITION, out float z : SV_Depth) : SV_Target0
{
float4 playerData1 = player1[id.xy];
float4 playerData2 = player2[id.xy];
z = playerData2.w;
float light = playerData1.y;
float text = playerData1.z;
float alpha = playerData1.w;
float3 col = light * text;
return float4(col * float3(1, 0.5, 0.2), alpha);
}
void vs_particle(uint v : SV_VertexID, out SParticleID p)
{
p.p = ReadParticle(v);
p.w = p.p.pos;
}
[maxvertexcount(4)]
void gs_particle(point SParticleID pid[1], inout TriangleStream<SParticleDraw> triStream)
{
SParticleDraw pd;
pd.p = pid[0].p;
SParticle p = pd.p;
float3 r = float3(0, 0, -p.size), u = float3(0, p.size, 0), w = pid[0].w;
float4x4 view, proj;
float3 camPos;
cameraInit(view, proj, camPos);
float4x4 viewProj = mul(view, proj);
float3 w1 = w;
float3 w2 = w + u;
float3 w3 = w + r;
float3 w4 = w + u + r;
float2 uv1 = float2(0, 0);
float2 uv2 = float2(0, 1);
float2 uv3 = float2(1, 0);
float2 uv4 = float2(1, 1);
float z1 = depth(camPos, w1);
float z2 = depth(camPos, w2);
float z3 = depth(camPos, w3);
float z4 = depth(camPos, w4);
pd.pos = float4(project(viewProj, w1), 1); pd.uv = uv1; pd.z = z1; triStream.Append(pd);
pd.pos = float4(project(viewProj, w2), 1); pd.uv = uv2; pd.z = z2; triStream.Append(pd);
pd.pos = float4(project(viewProj, w3), 1); pd.uv = uv3; pd.z = z3; triStream.Append(pd);
pd.pos = float4(project(viewProj, w4), 1); pd.uv = uv4; pd.z = z4; triStream.Append(pd);
}
#define SDF_SIMILARITY 2.0
#define TANGENT_SPEED 1.0
#define GRADIENT_SPEED 4.0
[numthreads(16, 16, 1)]
void cs_update(uint3 id : SV_DispatchThreadID)
{
SParticle p = ReadParticle(id.xy);
setRndSeed(id.y * 512 + id.x);
// Recycle particle
if (p.age >= p.life)
{
p.dir = normalize(float3(srnd(), srnd(), srnd()));
p.pos = (step(0, p.dir) * 2 - 1)*0.8;// *noise((fTime + id.xyy) * 47);
p.age = 0;
}
// Initialize particle
if (p.life == 0)
{
p.tan = normalize(float3(srnd(), srnd(), srnd()));
p.life = 64;
p.age = rnd() * p.life;
}
p.prevPos = p.pos;
// Update particle
p.pos += p.dir * fDeltaTime;
p.age += fDeltaTime;
p.size = 0.05;
float2 e = float2(0.001, 0);
float d = map(p.pos).x;
float3 v = -calcNormal(p.pos);
float3 t = cross(p.tan, v);
v = TANGENT_SPEED * t / (1 + pow(abs(d), 0.5)) + GRADIENT_SPEED * v * d * (0.5 + 0.5 * step(0, -d));
v = lerp(p.dir, v, SDF_SIMILARITY * GRADIENT_SPEED * fDeltaTime);
p.dir = v;
WriteParticle(id.xy, p);
}
float4 ps_particle(SParticleDraw pd, out float z : SV_Depth) : SV_Target0
{
SParticle p = pd.p;
float alpha = saturate(1.0 - 2 * length(pd.uv - 0.5));
z = pd.z;
return float4(0.5, 0.8, 1, alpha);
}
technique11 player
{
pass fullscreenQuad
{
SetVertexShader(CompileShader(vs_5_0, vs_default()));
SetPixelShader(CompileShader(ps_5_0, ps_player()));
SetBlendState(NULL, float4(0.0f, 0.0f, 0.0f, 0.0f), 0xFFFFFFFF);
SetDepthStencilState(depthTestWriteState, 0);
}
}
BlendState SrcAlphaBlendingAdd
{
BlendEnable[0] = TRUE;
SrcBlend = SRC_ALPHA;
DestBlend = INV_SRC_ALPHA;
BlendOp = ADD;
SrcBlendAlpha = SRC_ALPHA;
DestBlendAlpha = DEST_ALPHA;
BlendOpAlpha = MAX;
};
technique11 particles
{
pass updateParticles
{
SetComputeShader(CompileShader(cs_5_0, cs_update()));
}
pass drawParticles
{
SetVertexShader(CompileShader(vs_5_0, vs_particle()));
SetGeometryShader(CompileShader(gs_5_0, gs_particle()));
SetPixelShader(CompileShader(ps_5_0, ps_particle()));
SetBlendState(SrcAlphaBlendingAdd, float4(0.0f, 0.0f, 0.0f, 0.0f), 0xFFFFFFFF);
SetDepthStencilState(depthTestState, 0);
}
}

Some files were not shown because too many files have changed in this diff Show More