From 904052390cc9b486ab0d4115054999c70245733b Mon Sep 17 00:00:00 2001 From: Juan Pablo Arce Date: Sun, 31 Dec 2017 17:45:05 -0300 Subject: [PATCH] Fixed LOS effect on Windows, fixed SharpDX reference, rebuilt damageshader_opengl --- .../BarotraumaClient/BarotraumaClient.csproj | 6 +- .../BarotraumaClient/Source/GameMain.cs | 2 +- .../Source/Map/Levels/WaterRenderer.cs | 15 ++--- .../Source/Map/Lights/LightManager.cs | 16 +++++- .../Source/Screens/GameScreen.cs | 7 ++- .../BarotraumaShared.projitems | 12 ++++ .../BarotraumaShared/Content/Content.mgcb | 6 ++ .../BarotraumaShared/Content/damageshader.fx | 6 +- .../Content/damageshader_opengl.xnb | Bin 1315 -> 1374 bytes .../BarotraumaShared/Content/losshader.fx | 24 ++++++++ .../BarotraumaShared/Content/losshader.xnb | Bin 0 -> 851 bytes .../Content/losshader_opengl.xnb | Bin 0 -> 696 bytes .../BarotraumaShared/Content/watershader.fx | 39 +++---------- .../BarotraumaShared/Content/watershader.xnb | Bin 2600 -> 2496 bytes Barotrauma_Solution.sln | 52 ++++++++++++------ 15 files changed, 115 insertions(+), 70 deletions(-) create mode 100644 Barotrauma/BarotraumaShared/Content/losshader.fx create mode 100644 Barotrauma/BarotraumaShared/Content/losshader.xnb create mode 100644 Barotrauma/BarotraumaShared/Content/losshader_opengl.xnb diff --git a/Barotrauma/BarotraumaClient/BarotraumaClient.csproj b/Barotrauma/BarotraumaClient/BarotraumaClient.csproj index 850f2192d..26772589a 100644 --- a/Barotrauma/BarotraumaClient/BarotraumaClient.csproj +++ b/Barotrauma/BarotraumaClient/BarotraumaClient.csproj @@ -233,8 +233,10 @@ ..\..\Libraries\NuGet\MonoGame.Framework.WindowsDX.3.6.0.1625\lib\net40\MonoGame.Framework.dll + - ..\..\Libraries\NuGet\SharpDX.4.0.1\lib\net45\SharpDX.dll + False + ..\..\Libraries\NuGet\MonoGame.Framework.WindowsDX.3.6.0.1625\lib\net40\SharpDX.dll ..\..\Libraries\NuGet\NVorbis.0.8.5.0\lib\NVorbis.dll @@ -328,4 +330,4 @@ --> - + \ No newline at end of file diff --git a/Barotrauma/BarotraumaClient/Source/GameMain.cs b/Barotrauma/BarotraumaClient/Source/GameMain.cs index 829a06b66..45fe0b4f7 100644 --- a/Barotrauma/BarotraumaClient/Source/GameMain.cs +++ b/Barotrauma/BarotraumaClient/Source/GameMain.cs @@ -225,7 +225,7 @@ namespace Barotrauma DebugConsole.Log(SelectedPackage == null ? "No content package selected" : "Content package \"" + SelectedPackage.Name + "\" selected"); yield return CoroutineStatus.Running; - LightManager = new Lights.LightManager(base.GraphicsDevice); + LightManager = new Lights.LightManager(base.GraphicsDevice, Content); Hull.renderer = new WaterRenderer(base.GraphicsDevice, Content); TitleScreen.LoadState = 1.0f; diff --git a/Barotrauma/BarotraumaClient/Source/Map/Levels/WaterRenderer.cs b/Barotrauma/BarotraumaClient/Source/Map/Levels/WaterRenderer.cs index 723a45e92..a40c59b5c 100644 --- a/Barotrauma/BarotraumaClient/Source/Map/Levels/WaterRenderer.cs +++ b/Barotrauma/BarotraumaClient/Source/Map/Levels/WaterRenderer.cs @@ -43,12 +43,7 @@ namespace Barotrauma waterEffect.Parameters["xWaveWidth"].SetValue(0.05f); waterEffect.Parameters["xWaveHeight"].SetValue(0.05f); -#if WINDOWS - //waterEffect.Parameters["xTexture"].SetValue(waterTexture); -#endif -#if LINUX waterEffect.Parameters["xWaterBumpMap"].SetValue(waterTexture); -#endif if (basicEffect == null) { @@ -68,13 +63,13 @@ namespace Barotrauma waterEffect.Parameters["xBlurDistance"].SetValue(blurAmount); //waterEffect.CurrentTechnique.Passes[0].Apply(); -#if WINDOWS +//#if WINDOWS waterEffect.Parameters["xTexture"].SetValue(texture); - spriteBatch.Draw(waterTexture, new Rectangle(0, 0, GameMain.GraphicsWidth, GameMain.GraphicsHeight), Color.White); -#elif LINUX - spriteBatch.Draw(texture, new Rectangle(0, 0, GameMain.GraphicsWidth, GameMain.GraphicsHeight), Color.White); -#endif +//#elif LINUX + +// spriteBatch.Draw(texture, new Rectangle(0, 0, GameMain.GraphicsWidth, GameMain.GraphicsHeight), Color.White); +//#endif spriteBatch.End(); } diff --git a/Barotrauma/BarotraumaClient/Source/Map/Lights/LightManager.cs b/Barotrauma/BarotraumaClient/Source/Map/Lights/LightManager.cs index 38f9ef2e7..57ecf1211 100644 --- a/Barotrauma/BarotraumaClient/Source/Map/Lights/LightManager.cs +++ b/Barotrauma/BarotraumaClient/Source/Map/Lights/LightManager.cs @@ -1,5 +1,6 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; +using Microsoft.Xna.Framework.Content; using System.Collections.Generic; using System.Linq; @@ -36,6 +37,11 @@ namespace Barotrauma.Lights } BasicEffect lightEffect; + + public Effect losEffect + { + get; private set; + } private static Texture2D alphaClearTexture; @@ -55,7 +61,7 @@ namespace Barotrauma.Lights private float ambientLightUpdateTimer; - public LightManager(GraphicsDevice graphics) + public LightManager(GraphicsDevice graphics, ContentManager content) { lights = new List(); @@ -71,12 +77,18 @@ namespace Barotrauma.Lights pp.BackBufferFormat, pp.DepthStencilFormat, pp.MultiSampleCount, RenderTargetUsage.DiscardContents); - losTexture = new RenderTarget2D(graphics, (int)(GameMain.GraphicsWidth*lightmapScale), (int)(GameMain.GraphicsHeight*lightmapScale), false, SurfaceFormat.Alpha8, DepthFormat.None); + losTexture = new RenderTarget2D(graphics, (int)(GameMain.GraphicsWidth*lightmapScale), (int)(GameMain.GraphicsHeight*lightmapScale), false, SurfaceFormat.Color, DepthFormat.None); losSource = new LightSource(Vector2.Zero, GameMain.GraphicsWidth, Color.White, null, false); losSource.texture = new Texture2D(graphics, 1, 1); losSource.texture.SetData(new Color[] { Color.White });// fill the texture with white +#if WINDOWS + losEffect = content.Load("losshader"); +#else + losEffect = content.Load("losshader_opengl"); +#endif + if (lightEffect == null) { lightEffect = new BasicEffect(GameMain.Instance.GraphicsDevice); diff --git a/Barotrauma/BarotraumaClient/Source/Screens/GameScreen.cs b/Barotrauma/BarotraumaClient/Source/Screens/GameScreen.cs index 805a27139..954e9b58a 100644 --- a/Barotrauma/BarotraumaClient/Source/Screens/GameScreen.cs +++ b/Barotrauma/BarotraumaClient/Source/Screens/GameScreen.cs @@ -237,9 +237,10 @@ namespace Barotrauma spriteBatch.Draw(renderTargetBackground, new Rectangle(0, 0, GameMain.GraphicsWidth, GameMain.GraphicsHeight), Color.Lerp(GameMain.LightManager.AmbientLight * 0.5f, Color.Red, r)); spriteBatch.End(); - Hull.renderer.waterEffect.CurrentTechnique = Hull.renderer.waterEffect.Techniques["LosShader"]; - Hull.renderer.waterEffect.Parameters["xLosTexture"].SetValue(GameMain.LightManager.losTexture); - spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.NonPremultiplied, SamplerState.PointClamp, DepthStencilState.None, null, Hull.renderer.waterEffect, null); + GameMain.LightManager.losEffect.CurrentTechnique = GameMain.LightManager.losEffect.Techniques["LosShader"]; + GameMain.LightManager.losEffect.Parameters["xTexture"].SetValue(renderTargetFinal); + GameMain.LightManager.losEffect.Parameters["xLosTexture"].SetValue(GameMain.LightManager.losTexture); + spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, SamplerState.PointClamp, DepthStencilState.None, null, GameMain.LightManager.losEffect, null); } spriteBatch.Draw(renderTargetFinal, new Rectangle(0, 0, GameMain.GraphicsWidth, GameMain.GraphicsHeight), Color.White); spriteBatch.End(); diff --git a/Barotrauma/BarotraumaShared/BarotraumaShared.projitems b/Barotrauma/BarotraumaShared/BarotraumaShared.projitems index b4eb7d23f..6a759c373 100644 --- a/Barotrauma/BarotraumaShared/BarotraumaShared.projitems +++ b/Barotrauma/BarotraumaShared/BarotraumaShared.projitems @@ -763,6 +763,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest @@ -904,6 +907,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest @@ -1036,6 +1042,12 @@ PreserveNewest + + PreserveNewest + + + PreserveNewest + PreserveNewest diff --git a/Barotrauma/BarotraumaShared/Content/Content.mgcb b/Barotrauma/BarotraumaShared/Content/Content.mgcb index 9cf60ed0f..6e9d21bf9 100644 --- a/Barotrauma/BarotraumaShared/Content/Content.mgcb +++ b/Barotrauma/BarotraumaShared/Content/Content.mgcb @@ -31,6 +31,12 @@ /processorParam:DebugMode=Auto /build:damageshader.fx +#begin losshader.fx +/importer:EffectImporter +/processor:EffectProcessor +/processorParam:DebugMode=Auto +/build:losshader.fx + #begin utg_4.mp4 /importer:H264Importer /processor:VideoProcessor diff --git a/Barotrauma/BarotraumaShared/Content/damageshader.fx b/Barotrauma/BarotraumaShared/Content/damageshader.fx index 41b3356e4..f4072cfda 100644 --- a/Barotrauma/BarotraumaShared/Content/damageshader.fx +++ b/Barotrauma/BarotraumaShared/Content/damageshader.fx @@ -1,8 +1,8 @@ -Texture xTexture; +Texture2D xTexture; sampler TextureSampler : register (s0) = sampler_state { Texture = ; }; -Texture xStencil; +Texture2D xStencil; sampler StencilSampler = sampler_state { Texture = ; }; float4 color; @@ -34,6 +34,6 @@ technique StencilShader { pass Pass1 { - PixelShader = compile ps_4_0_level_9_1 main(); + PixelShader = compile ps_2_0 main(); } } diff --git a/Barotrauma/BarotraumaShared/Content/damageshader_opengl.xnb b/Barotrauma/BarotraumaShared/Content/damageshader_opengl.xnb index 9249f145f8ac61010960e07af83eb0ab17e7fd25..cecca8fed5a47fabd554dab971865b49bae85a63 100644 GIT binary patch delta 294 zcmZ3?b&rcZ!p|v%l_72-dn?~L76t}icee-*hGM@GiHWn68P87KH=V02HQ7X=pg6wB zcybWqQYJ&|$@dv07>yQjJ_RfRe?AP&IlLm70@1m?I}2XAV>?GS({xs?5#I z1F0!8)GG(8Dl*b5*RF_jrkzQtt3STUKGIbd=# zbD)fZtwKp^MM-H; }; + +Texture2D xLosTexture; +sampler LosSampler = sampler_state { Texture = ; }; + +float4 main(float4 position : SV_Position, float4 color : COLOR0, float2 texCoord : TEXCOORD0) : COLOR0 +{ + float4 losColor = xLosTexture.Sample(LosSampler, texCoord); + float4 sample = xTexture.Sample(TextureSampler, texCoord); + + float4 outColor = float4(sample.x*losColor.x, sample.y*losColor.x, sample.z*losColor.x, losColor.x); + + return outColor; +} + +technique LosShader +{ + pass Pass1 + { + PixelShader = compile ps_2_0 main(); + } +} diff --git a/Barotrauma/BarotraumaShared/Content/losshader.xnb b/Barotrauma/BarotraumaShared/Content/losshader.xnb new file mode 100644 index 0000000000000000000000000000000000000000..47593ed70579b914180e0e681b1ffca00a181e67 GIT binary patch literal 851 zcmY*YJ#W)M7=F(t#DyUlSr8r=Eh}wB0HN>^=L1CZp(L#=ghZY8(nbwFupKoppom|P zpHPW00~I4;V`4#KV_@tr$i@_&*LIY0@_YBZ&->hS_TAZSmQOR()rrLW#_%9ep&CTC z>w9)B@LtPP6`a_P@+0X-c6Bh22T@0Qhcd9thVoS%lC{t>_hb+bm0#Mni*~`@ENZ!B{~2MtlQV0QW@s_s@`XkhWY#7%awd&&VQ;Zl^g` z6_^O!E%YF#g7otg&&bG~t*`(t6Jeur&|I7g<08&QniFz%(#V*yPX=0zvN47pbKq~} zrW){aNz{E>>HLB4G2$-b1$*!3fz}vv$i0Eje3S6IyX%~5ocHsjZ{_px%S(7H%tU(} zzY9^7Xk$SMS4(xZ4@tgSZ>3?+%NovE!{a@oY>;}_v}FEO_;RgCl=+y}uBF^VZ0)md zy~$^bO(O%*MsVXf%yG*hUdAZtnCCk4{e+5p=J|khfbQO_whD(4t{OS5omPi>Ro7{? zIu)9?uqK}}d+?ejV%09M36Gu^9Lb30bN1!NR{@WvXN^fuPWaj;1wDIxvZKQPII#hy Sd(1xriA>uI!%f1u68!_tl#U(% literal 0 HcmV?d00001 diff --git a/Barotrauma/BarotraumaShared/Content/losshader_opengl.xnb b/Barotrauma/BarotraumaShared/Content/losshader_opengl.xnb new file mode 100644 index 0000000000000000000000000000000000000000..f9ee381037a1d14a9563596083d1f9768b9d99a6 GIT binary patch literal 696 zcmZuvPfy!06nBCuAX2XEYN?kpBC83E%hbb2p$F)M08PDBCVA;R9J_Lyk}~aU>>KbM z_;%ozG74IA@_WBO@8{=CzMteB^5hfZJ&Z+WbfpW+CW^B&!%Mi==8mOWSx}ap76oMX z3V04CqGPS}$WhkBi2eXm39SZ)?3ndge4KoVXj)5K8yG04t>H4Fm-Vd_**Pq4^c|>y zs--0Oc|Dh6JUW}~kiWxU--t&ZJwm#o$f2O4i|Ofg7|ac10!Ppia#5FaT1d_9*G-5} z*zbbMMG*#Juz>7{&a0{EyY^cVzb_J3)JhcEl(gdIT!Kl4sHu>)89~j0o25`Q+PW@o zph>khInL?2@InE4*gjoD9}u1P=}b=D#%HOP+O%o4$Z5%i>g|WY?=aYHlhXmU(BM9k zVGna9(aM@N%Y8SlWySxo;ti~X-8)|E%9?-D#Q8j|+f741x0D$BuOv*n65`eWU|64c z9_e77m=NDz9TWF@{?_&; }; -Texture xLosTexture; -sampler LosSampler = sampler_state { Texture = ; }; - - -Texture xWaterBumpMap; +Texture2D xWaterBumpMap; sampler WaterBumpSampler = sampler_state { @@ -26,8 +22,8 @@ float2 xBumpPos; float4 main(float4 position : SV_Position, float4 color : COLOR0, float2 texCoord : TEXCOORD0) : COLOR0 { - float4 bumpColor = tex2D(WaterBumpSampler, texCoord+xWavePos+xBumpPos); - bumpColor = (bumpColor + tex2D(WaterBumpSampler, texCoord-xWavePos*2.0f+xBumpPos))*0.5f; + float4 bumpColor = xWaterBumpMap.Sample(WaterBumpSampler, texCoord+xWavePos+xBumpPos); + bumpColor = (bumpColor + xWaterBumpMap.Sample(WaterBumpSampler, texCoord-xWavePos*2.0f+xBumpPos))*0.5f; float2 samplePos = texCoord; @@ -35,27 +31,16 @@ float4 main(float4 position : SV_Position, float4 color : COLOR0, float2 texCoor samplePos.y+=(bumpColor.g-0.5f)*xWaveHeight; float4 sample; - sample = tex2D( TextureSampler, float2(samplePos.x+xBlurDistance, samplePos.y+xBlurDistance)); - sample += tex2D( TextureSampler, float2(samplePos.x-xBlurDistance, samplePos.y-xBlurDistance)); - sample += tex2D( TextureSampler, float2(samplePos.x+xBlurDistance, samplePos.y-xBlurDistance)); - sample += tex2D( TextureSampler, float2(samplePos.x-xBlurDistance, samplePos.y+xBlurDistance)); + sample = xTexture.Sample( TextureSampler, float2(samplePos.x+xBlurDistance, samplePos.y+xBlurDistance)); + sample += xTexture.Sample( TextureSampler, float2(samplePos.x-xBlurDistance, samplePos.y-xBlurDistance)); + sample += xTexture.Sample( TextureSampler, float2(samplePos.x+xBlurDistance, samplePos.y-xBlurDistance)); + sample += xTexture.Sample( TextureSampler, float2(samplePos.x-xBlurDistance, samplePos.y+xBlurDistance)); sample = sample * 0.25; return sample; } -float4 main2(float4 position : SV_Position, float4 color : COLOR0, float2 texCoord : TEXCOORD0) : COLOR0 -{ - float4 losColor = tex2D(LosSampler, texCoord); - float4 sample = tex2D(TextureSampler, texCoord); - - float4 outColor = float4(sample.x, sample.y, sample.z, losColor.x); - - return outColor; -} - - technique WaterShader { pass Pass1 @@ -63,11 +48,3 @@ technique WaterShader PixelShader = compile ps_4_0_level_9_1 main(); } } - -technique LosShader -{ - pass Pass1 - { - PixelShader = compile ps_4_0_level_9_1 main2(); - } -} diff --git a/Barotrauma/BarotraumaShared/Content/watershader.xnb b/Barotrauma/BarotraumaShared/Content/watershader.xnb index e132a4bf9bfe5d3361fa44560795968078003f2f..50a297a2a9582819761bb6585c55c4e63612347f 100644 GIT binary patch delta 367 zcmZ1>azL0P!q2IkmEi#AM2;3d15O48Uw5|%4#sB{dnQbrB`0w9Oy&FMChSYzL>5Ix zl{?&?c*28~0SFj3i!#1vVq~1m%2Ev^8(E$+GEB~7RR)qDS=A?RVU+-~&Vu-xKe9?O z)&sS$GB7eS0_p!iz`z1B1P0hZ!W)2uON5j23!5yF6FNRDA6SK!ar!z4!Q?KhH7+$OmBtrvLwKfRqM^4JJV>4F*OA6$XaMUF^b>SF)>0aPT)UFg$4h zx_}|r!zBo$(E*4hCx2pBo~+0rqTmZTOrmF5=sCKgP7&uIw&X(Uhe delta 366 zcmX>gyh4N{!q2Ikl|h4RB1a3~3{D0HUw5|%4#smH%z+bU$q8&?OS{S>CRX!YeDB4K zhnr?kJmJC0$N&VJMH$~SF)~bMWvK>|jV#X@87F75Dg()ntm>1uuu1?~XF>eUA6cas zCkwKR2e2}Lbh3d67A6J;mk1~4NwFWjZYJwaowAid{%d|zD@=|BsKx+@w*YYrQ1Ai} zJLczE)&Th+%)s>jf5_w_c5R?S{tc5I7$qjJWfxUp;AmiA_`d<>OQR)By diff --git a/Barotrauma_Solution.sln b/Barotrauma_Solution.sln index 4a32e93f9..56ca2bc51 100644 --- a/Barotrauma_Solution.sln +++ b/Barotrauma_Solution.sln @@ -45,74 +45,90 @@ Global Libraries\SharpFont\Source\SharpFontShared\SharpFontShared.projitems*{c293db32-fa42-486d-b128-5a12522fae4e}*SharedItemsImports = 4 EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x86 = Debug|x86 DebugLinux|x86 = DebugLinux|x86 DebugWindows|x86 = DebugWindows|x86 + Release|x86 = Release|x86 ReleaseLinux|x86 = ReleaseLinux|x86 ReleaseWindows|x86 = ReleaseWindows|x86 - Debug|x86 = Debug|x86 - Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {008C0F83-E914-4966-9135-EA885059EDD8}.Debug|x86.ActiveCfg = DebugWindows|x86 {008C0F83-E914-4966-9135-EA885059EDD8}.DebugLinux|x86.ActiveCfg = DebugLinux|x86 {008C0F83-E914-4966-9135-EA885059EDD8}.DebugLinux|x86.Build.0 = DebugLinux|x86 {008C0F83-E914-4966-9135-EA885059EDD8}.DebugWindows|x86.ActiveCfg = DebugWindows|x86 {008C0F83-E914-4966-9135-EA885059EDD8}.DebugWindows|x86.Build.0 = DebugWindows|x86 + {008C0F83-E914-4966-9135-EA885059EDD8}.Release|x86.ActiveCfg = ReleaseWindows|x86 {008C0F83-E914-4966-9135-EA885059EDD8}.ReleaseLinux|x86.ActiveCfg = ReleaseLinux|x86 {008C0F83-E914-4966-9135-EA885059EDD8}.ReleaseLinux|x86.Build.0 = ReleaseLinux|x86 {008C0F83-E914-4966-9135-EA885059EDD8}.ReleaseWindows|x86.ActiveCfg = ReleaseWindows|x86 {008C0F83-E914-4966-9135-EA885059EDD8}.ReleaseWindows|x86.Build.0 = ReleaseWindows|x86 - {251AAFE1-F24B-4837-9128-9D04FCBFD528}.DebugLinux|x86.ActiveCfg = DebugLinux|x86 - {251AAFE1-F24B-4837-9128-9D04FCBFD528}.DebugLinux|x86.Build.0 = DebugLinux|x86 - {251AAFE1-F24B-4837-9128-9D04FCBFD528}.DebugWindows|x86.ActiveCfg = DebugWindows|x86 - {251AAFE1-F24B-4837-9128-9D04FCBFD528}.DebugWindows|x86.Build.0 = DebugWindows|x86 - {251AAFE1-F24B-4837-9128-9D04FCBFD528}.ReleaseLinux|x86.ActiveCfg = ReleaseLinux|x86 - {251AAFE1-F24B-4837-9128-9D04FCBFD528}.ReleaseLinux|x86.Build.0 = ReleaseLinux|x86 - {251AAFE1-F24B-4837-9128-9D04FCBFD528}.ReleaseWindows|x86.ActiveCfg = ReleaseWindows|x86 - {251AAFE1-F24B-4837-9128-9D04FCBFD528}.ReleaseWindows|x86.Build.0 = ReleaseWindows|x86 - {85232B20-074D-4723-B0C6-91495391E448}.DebugLinux|x86.ActiveCfg = DebugLinux|x86 - {85232B20-074D-4723-B0C6-91495391E448}.DebugLinux|x86.Build.0 = DebugLinux|x86 - {85232B20-074D-4723-B0C6-91495391E448}.DebugWindows|x86.ActiveCfg = DebugWindows|x86 - {85232B20-074D-4723-B0C6-91495391E448}.DebugWindows|x86.Build.0 = DebugWindows|x86 - {85232B20-074D-4723-B0C6-91495391E448}.ReleaseLinux|x86.ActiveCfg = ReleaseLinux|x86 - {85232B20-074D-4723-B0C6-91495391E448}.ReleaseLinux|x86.Build.0 = ReleaseLinux|x86 - {85232B20-074D-4723-B0C6-91495391E448}.ReleaseWindows|x86.ActiveCfg = ReleaseWindows|x86 - {85232B20-074D-4723-B0C6-91495391E448}.ReleaseWindows|x86.Build.0 = ReleaseWindows|x86 + {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Debug|x86.ActiveCfg = DebugWindows|Any CPU {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.DebugLinux|x86.ActiveCfg = DebugLinux|Any CPU {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.DebugLinux|x86.Build.0 = DebugLinux|Any CPU {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.DebugWindows|x86.ActiveCfg = DebugWindows|Any CPU {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.DebugWindows|x86.Build.0 = DebugWindows|Any CPU + {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Release|x86.ActiveCfg = ReleaseWindows|Any CPU {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.ReleaseLinux|x86.ActiveCfg = ReleaseLinux|Any CPU {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.ReleaseLinux|x86.Build.0 = ReleaseLinux|Any CPU {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.ReleaseWindows|x86.ActiveCfg = ReleaseWindows|Any CPU {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.ReleaseWindows|x86.Build.0 = ReleaseWindows|Any CPU + {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Debug|x86.ActiveCfg = Debug|Any CPU {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.DebugLinux|x86.ActiveCfg = Debug|Any CPU {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.DebugLinux|x86.Build.0 = Debug|Any CPU {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.DebugWindows|x86.ActiveCfg = Debug|Any CPU {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.DebugWindows|x86.Build.0 = Debug|Any CPU + {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Release|x86.ActiveCfg = Release|Any CPU {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.ReleaseLinux|x86.ActiveCfg = Release|Any CPU {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.ReleaseLinux|x86.Build.0 = Release|Any CPU {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.ReleaseWindows|x86.ActiveCfg = Release|Any CPU {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.ReleaseWindows|x86.Build.0 = Release|Any CPU + {251AAFE1-F24B-4837-9128-9D04FCBFD528}.Debug|x86.ActiveCfg = DebugWindows|x86 + {251AAFE1-F24B-4837-9128-9D04FCBFD528}.DebugLinux|x86.ActiveCfg = DebugLinux|x86 + {251AAFE1-F24B-4837-9128-9D04FCBFD528}.DebugLinux|x86.Build.0 = DebugLinux|x86 + {251AAFE1-F24B-4837-9128-9D04FCBFD528}.DebugWindows|x86.ActiveCfg = DebugWindows|x86 + {251AAFE1-F24B-4837-9128-9D04FCBFD528}.DebugWindows|x86.Build.0 = DebugWindows|x86 + {251AAFE1-F24B-4837-9128-9D04FCBFD528}.Release|x86.ActiveCfg = ReleaseWindows|x86 + {251AAFE1-F24B-4837-9128-9D04FCBFD528}.ReleaseLinux|x86.ActiveCfg = ReleaseLinux|x86 + {251AAFE1-F24B-4837-9128-9D04FCBFD528}.ReleaseLinux|x86.Build.0 = ReleaseLinux|x86 + {251AAFE1-F24B-4837-9128-9D04FCBFD528}.ReleaseWindows|x86.ActiveCfg = ReleaseWindows|x86 + {251AAFE1-F24B-4837-9128-9D04FCBFD528}.ReleaseWindows|x86.Build.0 = ReleaseWindows|x86 + {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Debug|x86.ActiveCfg = Debug|Any CPU {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.DebugLinux|x86.ActiveCfg = Debug|Any CPU {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.DebugLinux|x86.Build.0 = Debug|Any CPU {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.DebugWindows|x86.ActiveCfg = Debug|Any CPU {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.DebugWindows|x86.Build.0 = Debug|Any CPU + {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Release|x86.ActiveCfg = Release|Any CPU {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.ReleaseLinux|x86.ActiveCfg = Release|Any CPU {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.ReleaseLinux|x86.Build.0 = Release|Any CPU {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.ReleaseWindows|x86.ActiveCfg = Release|Any CPU {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.ReleaseWindows|x86.Build.0 = Release|Any CPU + {C293DB32-FA42-486D-B128-5A12522FAE4E}.Debug|x86.ActiveCfg = Debug|Any CPU {C293DB32-FA42-486D-B128-5A12522FAE4E}.DebugLinux|x86.ActiveCfg = Debug|Any CPU {C293DB32-FA42-486D-B128-5A12522FAE4E}.DebugLinux|x86.Build.0 = Debug|Any CPU {C293DB32-FA42-486D-B128-5A12522FAE4E}.DebugWindows|x86.ActiveCfg = Debug|Any CPU {C293DB32-FA42-486D-B128-5A12522FAE4E}.DebugWindows|x86.Build.0 = Debug|Any CPU + {C293DB32-FA42-486D-B128-5A12522FAE4E}.Release|x86.ActiveCfg = Release|Any CPU {C293DB32-FA42-486D-B128-5A12522FAE4E}.ReleaseLinux|x86.ActiveCfg = Release|Any CPU {C293DB32-FA42-486D-B128-5A12522FAE4E}.ReleaseLinux|x86.Build.0 = Release|Any CPU {C293DB32-FA42-486D-B128-5A12522FAE4E}.ReleaseWindows|x86.ActiveCfg = Release|Any CPU {C293DB32-FA42-486D-B128-5A12522FAE4E}.ReleaseWindows|x86.Build.0 = Release|Any CPU + {85232B20-074D-4723-B0C6-91495391E448}.Debug|x86.ActiveCfg = DebugWindows|x86 + {85232B20-074D-4723-B0C6-91495391E448}.DebugLinux|x86.ActiveCfg = DebugLinux|x86 + {85232B20-074D-4723-B0C6-91495391E448}.DebugLinux|x86.Build.0 = DebugLinux|x86 + {85232B20-074D-4723-B0C6-91495391E448}.DebugWindows|x86.ActiveCfg = DebugWindows|x86 + {85232B20-074D-4723-B0C6-91495391E448}.DebugWindows|x86.Build.0 = DebugWindows|x86 + {85232B20-074D-4723-B0C6-91495391E448}.Release|x86.ActiveCfg = ReleaseWindows|x86 + {85232B20-074D-4723-B0C6-91495391E448}.ReleaseLinux|x86.ActiveCfg = ReleaseLinux|x86 + {85232B20-074D-4723-B0C6-91495391E448}.ReleaseLinux|x86.Build.0 = ReleaseLinux|x86 + {85232B20-074D-4723-B0C6-91495391E448}.ReleaseWindows|x86.ActiveCfg = ReleaseWindows|x86 + {85232B20-074D-4723-B0C6-91495391E448}.ReleaseWindows|x86.Build.0 = ReleaseWindows|x86 + {A4610E4C-DD34-428B-BABB-779CA0B5993A}.Debug|x86.ActiveCfg = Debug|Any CPU {A4610E4C-DD34-428B-BABB-779CA0B5993A}.DebugLinux|x86.ActiveCfg = Debug|Any CPU {A4610E4C-DD34-428B-BABB-779CA0B5993A}.DebugLinux|x86.Build.0 = Debug|Any CPU {A4610E4C-DD34-428B-BABB-779CA0B5993A}.DebugWindows|x86.ActiveCfg = Debug|Any CPU {A4610E4C-DD34-428B-BABB-779CA0B5993A}.DebugWindows|x86.Build.0 = Debug|Any CPU + {A4610E4C-DD34-428B-BABB-779CA0B5993A}.Release|x86.ActiveCfg = Release|Any CPU {A4610E4C-DD34-428B-BABB-779CA0B5993A}.ReleaseLinux|x86.ActiveCfg = Release|Any CPU {A4610E4C-DD34-428B-BABB-779CA0B5993A}.ReleaseLinux|x86.Build.0 = Release|Any CPU {A4610E4C-DD34-428B-BABB-779CA0B5993A}.ReleaseWindows|x86.ActiveCfg = Release|Any CPU