FSlateDrawBuffer& FSlate3DRenderer::GetDrawBuffer() { FreeBufferIndex = (FreeBufferIndex + 1) % NUM_DRAW_BUFFERS; FSlateDrawBuffer* Buffer = &DrawBuffers[FreeBufferIndex]; while (!Buffer->Lock()) { FlushRenderingCommands(); UE_LOG(LogSlate, Log, TEXT("Slate: Had to block on waiting for a draw buffer")); FreeBufferIndex = (FreeBufferIndex + 1) % NumDrawBuffers; Buffer = &DrawBuffers[FreeBufferIndex]; } Buffer->ClearBuffer(); return *Buffer; }