diff --git a/Content/Shaders/PostProcessing.flax b/Content/Shaders/PostProcessing.flax index 931c0b436..e34c5c185 100644 --- a/Content/Shaders/PostProcessing.flax +++ b/Content/Shaders/PostProcessing.flax @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e477eae82ac3a988f70c59913e5eeac39438edb8191b81fe6ca970b87754cb93 -size 22689 +oid sha256:e442c2d6607e40da68e3aa9414390386d44cc7bc8c677a1f5a5e4a536857b906 +size 22688 diff --git a/Source/Editor/Surface/VisjectSurface.Input.cs b/Source/Editor/Surface/VisjectSurface.Input.cs index 09df195eb..891750fd7 100644 --- a/Source/Editor/Surface/VisjectSurface.Input.cs +++ b/Source/Editor/Surface/VisjectSurface.Input.cs @@ -120,6 +120,8 @@ namespace FlaxEditor.Surface private void UpdateSelectionRectangle() { + if (Root == null) + return; var p1 = _rootControl.PointFromParent(ref _leftMouseDownPos); var p2 = _rootControl.PointFromParent(ref _mousePos); var selectionRect = Rectangle.FromPoints(p1, p2); diff --git a/Source/Engine/Physics/Actors/WheeledVehicle.cpp b/Source/Engine/Physics/Actors/WheeledVehicle.cpp index 28808be17..248bffc20 100644 --- a/Source/Engine/Physics/Actors/WheeledVehicle.cpp +++ b/Source/Engine/Physics/Actors/WheeledVehicle.cpp @@ -191,7 +191,7 @@ void WheeledVehicle::SetThrottle(float value) _throttle = Math::Clamp(value, -1.0f, 1.0f); } -float WheeledVehicle::GetThrottle() +float WheeledVehicle::GetThrottle() const { return _throttle; } diff --git a/Source/Engine/Physics/Actors/WheeledVehicle.h b/Source/Engine/Physics/Actors/WheeledVehicle.h index 037157158..87424fe72 100644 --- a/Source/Engine/Physics/Actors/WheeledVehicle.h +++ b/Source/Engine/Physics/Actors/WheeledVehicle.h @@ -545,7 +545,7 @@ public: /// Get the vehicle throttle. It is the analog accelerator pedal value in range (0,1) where 1 represents the pedal fully pressed and 0 represents the pedal in its rest state. /// /// The vehicle throttle. - API_FUNCTION() float GetThrottle(); + API_FUNCTION() float GetThrottle() const; /// /// Sets the input for vehicle steering. Steer is the analog steer value in range (-1,1) where -1 represents the steering wheel at left lock and +1 represents the steering wheel at right lock. diff --git a/Source/Engine/Physics/PhysX/PhysicsBackendPhysX.cpp b/Source/Engine/Physics/PhysX/PhysicsBackendPhysX.cpp index bacd976a1..5805301ff 100644 --- a/Source/Engine/Physics/PhysX/PhysicsBackendPhysX.cpp +++ b/Source/Engine/Physics/PhysX/PhysicsBackendPhysX.cpp @@ -496,7 +496,9 @@ protected: #define PxHitFlagEmpty (PxHitFlags)0 #define SCENE_QUERY_FLAGS (PxHitFlag::ePOSITION | PxHitFlag::eNORMAL | PxHitFlag::eFACE_INDEX | PxHitFlag::eUV) -#define SCENE_QUERY_SETUP(blockSingle) auto scenePhysX = (ScenePhysX*)scene; if (scene == nullptr) return false; \ +#define SCENE_QUERY_SETUP(blockSingle) PROFILE_CPU(); \ + auto scenePhysX = (ScenePhysX*)scene; \ + if (scene == nullptr) return false; \ PxQueryFilterData filterData; \ filterData.flags |= PxQueryFlag::ePREFILTER; \ filterData.data.word0 = layerMask; \ diff --git a/Source/Engine/Renderer/ColorGradingPass.cpp b/Source/Engine/Renderer/ColorGradingPass.cpp index caa5ee44c..bbb45ef4c 100644 --- a/Source/Engine/Renderer/ColorGradingPass.cpp +++ b/Source/Engine/Renderer/ColorGradingPass.cpp @@ -194,6 +194,7 @@ GPUTexture* ColorGradingPass::RenderLUT(RenderContext& renderContext) // Check if LUT parameter hasn't been changed since the last time if (Platform::MemoryCompare(&colorGradingBuffer.CachedData , &data, sizeof(Data)) == 0 && colorGradingBuffer.Mode == toneMapping.Mode && + Engine::FrameCount > 30 && // Skip caching when engine is starting TODO: find why this hack is needed colorGradingBuffer.LutTexture == lutTexture) { // Resue existing texture diff --git a/Source/Engine/Renderer/PostProcessingPass.cpp b/Source/Engine/Renderer/PostProcessingPass.cpp index 0945e74de..a9eba14d2 100644 --- a/Source/Engine/Renderer/PostProcessingPass.cpp +++ b/Source/Engine/Renderer/PostProcessingPass.cpp @@ -367,15 +367,19 @@ void PostProcessingPass::Render(RenderContext& renderContext, GPUTexture* input, // Bloom auto tempDesc = GPUTextureDescription::New2D(w2, h2, bloomMipCount, output->Format(), GPUTextureFlags::ShaderResource | GPUTextureFlags::RenderTarget | GPUTextureFlags::PerMipViews); - auto bloomBuffer1 = RenderTargetPool::Get(tempDesc); - RENDER_TARGET_POOL_SET_NAME(bloomBuffer1, "PostProcessing.Bloom"); - auto bloomBuffer2 = RenderTargetPool::Get(tempDesc); - RENDER_TARGET_POOL_SET_NAME(bloomBuffer2, "PostProcessing.Bloom"); - - for (int32 mip = 0; mip < bloomMipCount; mip++) + GPUTexture* bloomBuffer1 = nullptr, *bloomBuffer2 = nullptr; + if (useBloom || useLensFlares) { - context->Clear(bloomBuffer1->View(0, mip), Color::Transparent); - context->Clear(bloomBuffer2->View(0, mip), Color::Transparent); + bloomBuffer1 = RenderTargetPool::Get(tempDesc); + bloomBuffer2 = RenderTargetPool::Get(tempDesc); + RENDER_TARGET_POOL_SET_NAME(bloomBuffer1, "PostProcessing.Bloom"); + RENDER_TARGET_POOL_SET_NAME(bloomBuffer2, "PostProcessing.Bloom"); + + for (int32 mip = 0; mip < bloomMipCount; mip++) + { + context->Clear(bloomBuffer1->View(0, mip), Color::Transparent); + context->Clear(bloomBuffer2->View(0, mip), Color::Transparent); + } } if (useBloom) diff --git a/Source/Shaders/PostProcessing.shader b/Source/Shaders/PostProcessing.shader index 851d31e38..aa70833d2 100644 --- a/Source/Shaders/PostProcessing.shader +++ b/Source/Shaders/PostProcessing.shader @@ -650,7 +650,7 @@ float4 PS_Composite(Quad_VS2PS input) : SV_Target } else { - color = Input0.Sample(SamplerLinearClamp, uv); + color = Input0.Sample(SamplerPointClamp, uv); } // Lens Flares