From dea15ec3193683abb920fc6eeb4fa97565957d80 Mon Sep 17 00:00:00 2001 From: doterop Date: Thu, 30 Jul 2020 16:58:09 +0200 Subject: [PATCH] Moved sendstream to GM tick --- .../Plugins/Carla/Source/Carla/Game/CarlaGameModeBase.cpp | 4 ++-- .../Plugins/Carla/Source/Carla/Sensor/SceneCaptureSensor.cpp | 3 ++- .../Plugins/Carla/Source/Carla/Sensor/SceneCaptureSensor.h | 3 ++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameModeBase.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameModeBase.cpp index f41335a19..9c615b3d6 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameModeBase.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Game/CarlaGameModeBase.cpp @@ -218,6 +218,8 @@ void ACarlaGameModeBase::Tick(float DeltaSeconds) { Recorder->Tick(DeltaSeconds); } + + SendAtlas(); } void ACarlaGameModeBase::EndPlay(const EEndPlayReason::Type EndPlayReason) @@ -451,8 +453,6 @@ void ACarlaGameModeBase::CaptureAtlas() This->AtlasImage, FReadSurfaceDataFlags(RCM_UNorm, CubeFace_MAX)); - This->SendAtlas(); - } ); diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Sensor/SceneCaptureSensor.cpp b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Sensor/SceneCaptureSensor.cpp index 962db5986..908425cf4 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Sensor/SceneCaptureSensor.cpp +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Sensor/SceneCaptureSensor.cpp @@ -561,6 +561,8 @@ bool ASceneCaptureSensor::CopyTextureFromAtlas( uint32 AtlasTextureWidth) { + Buffer.reset(Offset + ImageWidth * ImageHeight * sizeof(FColor)); + // Check that the atlas alreay contains our texture // and our image has been initialized uint32 ExpectedSize = (uint32)(PositionInAtlas.Y * AtlasTextureWidth + ImageWidth * ImageHeight); @@ -579,7 +581,6 @@ bool ASceneCaptureSensor::CopyTextureFromAtlas( const uint32 DstStride = ImageWidth * sizeof(FColor); const uint32 SrcStride = AtlasTextureWidth * sizeof(FColor); - Buffer.reset(Offset + ImageHeight * DstStride); for(uint32 i = 0; i < ImageHeight; i++) { Buffer.copy_from(Dest, Source, DstStride); diff --git a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Sensor/SceneCaptureSensor.h b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Sensor/SceneCaptureSensor.h index cc1a0b2b2..5a4a875ad 100644 --- a/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Sensor/SceneCaptureSensor.h +++ b/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Sensor/SceneCaptureSensor.h @@ -284,7 +284,8 @@ public: auto Stream = GetDataStream(Sensor); carla::Buffer Buffer = Stream.PopBufferFromPool(); - if(CopyTextureFromAtlas(Buffer, AtlasImage, AtlasTextureWidth)) + CopyTextureFromAtlas(Buffer, AtlasImage, AtlasTextureWidth); + { SCOPE_CYCLE_COUNTER(STAT_CarlaSensorStreamSend); Stream.Send(Sensor, std::move(Buffer));