80 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
// Tencent is pleased to support the open source community by making sluaunreal available.
 | 
						|
 | 
						|
// Copyright (C) 2018 THL A29 Limited, a Tencent company. All rights reserved.
 | 
						|
// Licensed under the BSD 3-Clause License (the "License"); 
 | 
						|
// you may not use this file except in compliance with the License. You may obtain a copy of the License at
 | 
						|
 | 
						|
// https://opensource.org/licenses/BSD-3-Clause
 | 
						|
 | 
						|
// Unless required by applicable law or agreed to in writing, 
 | 
						|
// software distributed under the License is distributed on an "AS IS" BASIS, 
 | 
						|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
 | 
						|
// See the License for the specific language governing permissions and limitations under the License.
 | 
						|
 | 
						|
#pragma once
 | 
						|
 | 
						|
#include "CoreMinimal.h"
 | 
						|
#include "Containers/Ticker.h"
 | 
						|
#include "Modules/ModuleManager.h"
 | 
						|
#include "Framework/Commands/Commands.h"
 | 
						|
#include "slua_profile_inspector.h"
 | 
						|
#include "LuaMemoryProfile.h"
 | 
						|
#include "slua_profile.h"
 | 
						|
 | 
						|
/** Declares a log category for this module. */
 | 
						|
DECLARE_LOG_CATEGORY_EXTERN(LogSluaProfile, Log, All);
 | 
						|
 | 
						|
namespace NS_SLUA
 | 
						|
{
 | 
						|
    class FProfileServer;
 | 
						|
}
 | 
						|
 | 
						|
class SLUA_PROFILE_API Fslua_profileModule : public IModuleInterface
 | 
						|
{
 | 
						|
public:
 | 
						|
 | 
						|
    /** IModuleInterface implementation */
 | 
						|
    virtual void StartupModule() override;
 | 
						|
    virtual void ShutdownModule() override;
 | 
						|
 | 
						|
 | 
						|
    void PluginButtonClicked();
 | 
						|
private:
 | 
						|
    // fields
 | 
						|
    FTickerDelegate TickDelegate;
 | 
						|
#if ENGINE_MAJOR_VERSION==5
 | 
						|
    FTSTicker::FDelegateHandle TickDelegateHandle;
 | 
						|
#else
 | 
						|
    FDelegateHandle TickDelegateHandle;
 | 
						|
#endif
 | 
						|
 | 
						|
    TSharedPtr<SProfilerInspector> sluaProfilerInspector;
 | 
						|
    bool tabOpened = false;
 | 
						|
    TSharedPtr<class FUICommandList> PluginCommands;
 | 
						|
 | 
						|
    // functions
 | 
						|
    void OnTabClosed(TSharedRef<SDockTab> tab);
 | 
						|
 | 
						|
    TSharedRef<class SDockTab> OnSpawnPluginTab(const class FSpawnTabArgs& SpawnTabArgs);
 | 
						|
    bool Tick(float DeltaTime);
 | 
						|
    void ClearCurProfiler();
 | 
						|
    void AddMenuExtension(FMenuBuilder& Builder);
 | 
						|
 | 
						|
    void debug_hook_c(NS_SLUA::FProfileMessagePtr Message);
 | 
						|
};
 | 
						|
 | 
						|
#if WITH_EDITOR
 | 
						|
class Flua_profileCommands : public TCommands<Flua_profileCommands>
 | 
						|
{
 | 
						|
public:
 | 
						|
 | 
						|
    Flua_profileCommands();
 | 
						|
 | 
						|
    // TCommands<> interface
 | 
						|
    virtual void RegisterCommands() override;
 | 
						|
 | 
						|
public:
 | 
						|
    TSharedPtr< FUICommandInfo > OpenPluginWindow;
 | 
						|
};
 | 
						|
#endif
 |