Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
7c4da7d
added ue4 defaults to gitignore
GeorgeR Mar 15, 2018
38c1ace
add notify property changed csv thingy
GeorgeR Mar 16, 2018
1919408
Merge remote-tracking branch 'official/master'
GeorgeR Mar 19, 2018
573fa9d
Merge branch '4.19' of https://github.com/Noesis/UE4Plugin
GeorgeR Aug 5, 2018
361a215
avoid crash when texture param is nullptr
RPG3D Feb 7, 2018
d660111
Plugin updated to 4.20
hcpizzi Jul 24, 2018
7ff833e
Resolve fix
hcpizzi Jul 25, 2018
1372292
Updated readme
hcpizzi Jul 25, 2018
c598f9a
Added UE4 defaults to .gitignore
hcpizzi Jul 26, 2018
450b2be
Epic Games Launcher engine installation is no longer supported
hcpizzi Aug 1, 2018
7fc758f
Set SRGB flag to false by default on imported textures
hcpizzi Aug 2, 2018
deff2f5
Allow textures to be recreated by destroying the thumbnail renderers …
hcpizzi Aug 2, 2018
1cdc7dd
Removed logging that could pop up in normal circumstances
hcpizzi Aug 2, 2018
e8f655e
Non-PCH build fix
hcpizzi Oct 12, 2018
147f80c
Plugin updated to 4.21
hcpizzi Nov 19, 2018
b473f17
Fixes to Renderer usage
hcpizzi Nov 23, 2018
5af541f
fun stuff
GeorgeR Jan 6, 2019
b6eb863
added resource resolver for user defined resource path resolution
GeorgeR Jan 8, 2019
162b8f8
Merge branch 'master' of https://github.com/Noesis/UE4Plugin
GeorgeR Jan 8, 2019
4d5e097
Merge branch 'master' of https://github.com/GeorgeR/UE4Plugin
GeorgeR Jan 8, 2019
02566c3
added missing include
GeorgeR Jan 15, 2019
78f32b4
Support for Noesis SDK 2.2.0b5
hcpizzi Feb 13, 2019
4a8eabc
Updated README
hcpizzi Feb 14, 2019
673dcf7
Merge remote-tracking branch 'origin/4.21-2.2'
GeorgeR Feb 25, 2019
2325ae7
a
GeorgeR Jun 29, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions NoesisGUI.uplugin
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"DocsURL": "http://www.noesisengine.com/docs",
"MarketplaceURL": "",
"SupportURL": "http://www.noesisengine.com/forums",
"EngineVersion": "4.21.0",
"EngineVersion": "",
"CanContainContent": true,
"Installed": true,
"Modules": [
Expand All @@ -25,4 +25,4 @@
"LoadingPhase": "Default"
}
]
}
}
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ In order to use NoesisGUI in your UE4 project, you're going to need:

* This Unreal Engine plugin.

* The NoesisGUI SDK version 2.1. You can download it from [our website](https://noesisengine.com).
* The NoesisGUI SDK version 2.2 beta. You can download it from [our website](https://noesisengine.com).

* Python with some additional modules to run the installation script (tested with Python 2.7 and 3.6).

Expand All @@ -63,7 +63,7 @@ With versions of Unreal Engine built from the source code in GitHub you can use

1. Copy the contents of this repository into `[UE4Root]/Engine/Plugins/NoesisGUI` if you want to use it as an Engine plugin, or `[ProjectRoot]/Plugins/NoesisGUI` if you choose to use it as a Project plugin. We'll refer to the directory where you install the plugin as `[NoesisGUIRoot]` from now on. `[UE4Root]` is the directory where you installed the engine from the Epic Games Launcher, or the directory where you cloned the GitHub repository.

2. Download the NoesisGUI SDK version 2.1 from [our developer portal](http://noesisengine.com/forums/) and extract it into `[NoesisGUIRoot]/Source/Noesis/NoesisSDK`.
2. Download the NoesisGUI SDK version 2.2 beta from [our developer portal](https://www.noesisengine.com/forums/viewtopic.php?f=14&t=1491) and extract it into `[NoesisGUIRoot]/Source/Noesis/NoesisSDK`.

3. If you haven't installed the required Python modules, or you want to verify they are correctly installed, you can execute `InstallPythonPrerequisites.bat` and `InstallPythonPrerequisites.command` from the Command Prompt on Windows or Terminal on Mac. Navigate to the plugin directory and execute them from there. These will test whether the required modules are installed or not, and will install them if they're not present. You only need to install them once, so you don't need to perform this step every time you update the plugin or Unreal Engine.

Expand Down
39 changes: 26 additions & 13 deletions Source/Noesis/Noesis.Build.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
// NoesisGUI - http://www.noesisengine.com
// Copyright (c) 2013 Noesis Technologies S.L. All Rights Reserved.
////////////////////////////////////////////////////////////////////////////////////////////////////
Expand All @@ -16,13 +16,15 @@ public Noesis(ReadOnlyTargetRules Target) : base(Target)

string NoesisBasePath = ModuleDirectory + "/NoesisSDK/";
string NoesisIncludePath = NoesisBasePath + "Include/";
string NoesisInteractivityIncludePath = NoesisBasePath + "Src/Packages/App/Interactivity/Include/";

PublicIncludePaths.Add(ModuleDirectory);
PublicIncludePaths.Add(NoesisIncludePath);
PublicIncludePaths.Add(NoesisInteractivityIncludePath);

// Let's try to make sure the right version of the SDK is in the right place.
const string RequiredRevision = "(r6972)";
const string RequiredVersionName = "2.1.0f1";
const string RequiredRevision = "(r7619)";
const string RequiredVersionName = "2.2.0b5";
if (!Directory.Exists(NoesisBasePath))
{
throw new BuildException("Could not find NoesisGUI SDK in " + NoesisBasePath + ". Minimum required version is " + RequiredVersionName);
Expand Down Expand Up @@ -66,8 +68,9 @@ public Noesis(ReadOnlyTargetRules Target) : base(Target)
string NoesisLibPath = NoesisBasePath + "Lib/windows_x86_64/";
PublicLibraryPaths.Add(NoesisLibPath);
PublicAdditionalLibraries.Add("Noesis.lib");
PublicFrameworks.Add("CoreText");

string BaseTargetPath = "";
string BaseTargetPath = "";
if (Target.LinkType == TargetLinkType.Monolithic)
{
if (Target.ProjectFile != null)
Expand Down Expand Up @@ -120,18 +123,23 @@ public Noesis(ReadOnlyTargetRules Target) : base(Target)
string NoesisDylibPath = "/NoesisSDK/Bin/osx/Noesis.dylib";
RuntimeDependencies.Add(ModuleDirectory + NoesisDylibPath);
}
else if (Target.Platform == UnrealTargetPlatform.IOS)
{
string NoesisLibPath = NoesisBasePath + "Lib/ios/";
PublicLibraryPaths.Add(NoesisLibPath);
PublicAdditionalLibraries.Add("Noesis");

PublicAdditionalShadowFiles.Add(Path.Combine(NoesisLibPath, "libNoesis.a"));
}
else if (Target.Platform == UnrealTargetPlatform.Android)
else if (Target.Platform == UnrealTargetPlatform.IOS)
{
string NoesisLibPath = NoesisBasePath + "Lib/ios/";
PublicLibraryPaths.Add(NoesisLibPath);
PublicAdditionalLibraries.Add("Noesis");

if (Target.Version.MinorVersion <= 21)
{
PublicAdditionalShadowFiles.Add(Path.Combine(NoesisLibPath, "libNoesis.a"));
}
}
else if (Target.Platform == UnrealTargetPlatform.Android)
{
string NoesisLibPath = NoesisBasePath + "Bin/android_arm/";
PublicLibraryPaths.Add(NoesisLibPath);
string NoesisLib64Path = NoesisBasePath + "Bin/android_arm64/";
PublicLibraryPaths.Add(NoesisLib64Path);
PublicAdditionalLibraries.Add("Noesis");

string NoesisAplPath = "/Noesis_APL.xml";
Expand All @@ -148,5 +156,10 @@ public Noesis(ReadOnlyTargetRules Target) : base(Target)
PublicLibraryPaths.Add(NoesisLibPath);
PublicAdditionalLibraries.Add("Noesis.lib");
}
else if (Target.Platform == UnrealTargetPlatform.HTML5)
{
string NoesisLibPath = NoesisBasePath + "Bin/wasm/";
PublicAdditionalLibraries.Add(NoesisLibPath + "Noesis.bc");
}
}
}
20 changes: 0 additions & 20 deletions Source/Noesis/NoesisSDK/COPY_NOESIS_SDK_HERE.txt

This file was deleted.

3 changes: 3 additions & 0 deletions Source/Noesis/Noesis_APL.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
<isArch arch="armeabi-v7a">
<copyFile src="$S(PluginDir)/NoesisSDK/Bin/android_arm/libNoesis.so" dst="$S(BuildDir)/libs/armeabi-v7a/libNoesis.so"/>
</isArch>
<isArch arch="arm64-v8a">
<copyFile src="$S(PluginDir)/NoesisSDK/Bin/android_arm64/libNoesis.so" dst="$S(BuildDir)/libs/arm64-v8a/libNoesis.so"/>
</isArch>
</resourceCopies>
<soLoadLibrary>
<loadLibrary name="Noesis" failmsg="Could not load Noesis library"/>
Expand Down
29 changes: 28 additions & 1 deletion Source/NoesisEditor/Classes/NoesisXamlFactory.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,39 @@
// Generated header include
#include "NoesisXamlFactory.generated.h"

class UNoesisResourceResolver;

struct FXamlDescriptor
{
FString Path;
UNoesisXaml* Xaml;
};

struct FFontDescriptor
{
FString Family;
UFont* Font;
};

struct FImageDescriptor
{
FString Path;
UTexture2D* Texture;
};

UCLASS()
class NOESISEDITOR_API UNoesisXamlFactory : public UFactory
{
GENERATED_UCLASS_BODY()

// UFactory interface
virtual UObject* FactoryCreateBinary(UClass* Class, UObject* Parent, FName Name, EObjectFlags Flags, UObject* Context, const TCHAR* Type, const uint8*& Buffer, const uint8* BufferEnd, FFeedbackContext* Warn) override;
virtual UObject* FactoryCreateBinary(UClass* Class, UObject* Parent, FName Name, EObjectFlags Flags, UObject* Context, const TCHAR* Type, const uint8*& Buffer, const uint8* BufferEnd, FFeedbackContext* Warn) override;
// End of UFactory interface

protected:
void ImportXamls(FString BasePackageName, FString ProjectURIRoot, FString Path, TArray<FXamlDescriptor>& XamlDescriptors);
UFont* ImportFontFamily(FString Path, FString Family, FString BasePackageName, FString ProjectURIRoot);
void ImportImages(FString BasePackageName, FString ProjectURIRoot, FString Path, TArray<FImageDescriptor>& ImageDescriptors);

UNoesisResourceResolver* GetResourceResolver();
};
4 changes: 2 additions & 2 deletions Source/NoesisEditor/Private/K2Node_NoesisAssignAndNotify.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -136,14 +136,14 @@ static UBlueprintFieldNodeSpawner* CreateSpawnerFromMemberOrParam(TSubclassOf<UK

bool bShowFriendlyNames = GetDefault<UEditorStyleSettings>()->bShowFriendlyNames;
FText const VarName = bShowFriendlyNames ? FText::FromString(UEditorEngine::GetFriendlyName(VarProperty)) : FText::FromName(VarProperty->GetFName());
// @TODO: NodeClass could be modified post Create()
// @#todo NodeClass could be modified post Create()
MenuSignature.MenuName = FText::Format(LOCTEXT("UK2Node_NoesisAssignAndNotifyTitle", "Set {0} w/ NotifyChanged"), VarName);
MenuSignature.Tooltip = GetPropertyTooltip(VarProperty);

// add at least one character, so that PrimeDefaultUiSpec() doesn't
// attempt to query the template node
//
// @TODO: maybe UPROPERTY() fields should have keyword metadata like functions
// @#todo maybe UPROPERTY() fields should have keyword metadata like functions
if (MenuSignature.Keywords.IsEmpty())
{
// want to set it to something so we won't end up back in this condition
Expand Down
18 changes: 14 additions & 4 deletions Source/NoesisEditor/Private/NoesisBlueprintCompiler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,8 @@ bool FNoesisBlueprintCompiler::CanCompile(const UBlueprint* Blueprint)
return Blueprint->IsA(UNoesisBlueprint::StaticClass());
}

void FNoesisBlueprintCompiler::PreCompile(UBlueprint* Blueprint)
{
}
#if ENGINE_MINOR_VERSION <= 21
void FNoesisBlueprintCompiler::PreCompile(UBlueprint* Blueprint) { }

void FNoesisBlueprintCompiler::Compile(UBlueprint* Blueprint, const FKismetCompilerOptions& CompilerOptions, FCompilerResultsLog& Results, TArray<UObject*>* ObjLoaded)
{
Expand All @@ -25,6 +24,17 @@ void FNoesisBlueprintCompiler::Compile(UBlueprint* Blueprint, const FKismetCompi
check(Compiler.NewClass);
}

void FNoesisBlueprintCompiler::PostCompile(UBlueprint* Blueprint)
void FNoesisBlueprintCompiler::PostCompile(UBlueprint* Blueprint) { }
#else
void FNoesisBlueprintCompiler::PreCompile(UBlueprint* Blueprint, const FKismetCompilerOptions& CompilerOptions) { }

void FNoesisBlueprintCompiler::Compile(UBlueprint* Blueprint, const FKismetCompilerOptions& CompilerOptions, FCompilerResultsLog& Results)
{
UNoesisBlueprint* NoesisBlueprint = CastChecked<UNoesisBlueprint>(Blueprint);
FNoesisBlueprintCompilerContext Compiler(NoesisBlueprint, Results, CompilerOptions);
Compiler.Compile();
check(Compiler.NewClass);
}

void FNoesisBlueprintCompiler::PostCompile(UBlueprint* Blueprint, const FKismetCompilerOptions& CompileOptions) { }
#endif
8 changes: 8 additions & 0 deletions Source/NoesisEditor/Private/NoesisBlueprintCompiler.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,21 @@

#pragma once

#include "KismetCompilerModule.h"

class FNoesisBlueprintCompiler : public IBlueprintCompiler
{
// IBlueprintCompiler interface
virtual bool CanCompile(const UBlueprint* Blueprint) override;
#if ENGINE_MINOR_VERSION <= 21
virtual void PreCompile(UBlueprint* Blueprint) override;
virtual void Compile(UBlueprint* Blueprint, const FKismetCompilerOptions& CompilerOptions, FCompilerResultsLog& Results, TArray<UObject*>* ObjLoaded) override;
virtual void PostCompile(UBlueprint* Blueprint) override;
#else
virtual void PreCompile(UBlueprint* Blueprint, const FKismetCompilerOptions& CompileOptions) override;
virtual void Compile(UBlueprint* Blueprint, const FKismetCompilerOptions& CompileOptions, FCompilerResultsLog& Results) override;
virtual void PostCompile(UBlueprint* Blueprint, const FKismetCompilerOptions& CompileOptions) override;
#endif
// End of IBlueprintCompiler interface

public:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,17 @@
// UnrealEd includes
#include "Kismet2/KismetReinstanceUtilities.h"

#if ENGINE_MINOR_VERSION < 22
FNoesisBlueprintCompilerContext::FNoesisBlueprintCompilerContext(UNoesisBlueprint* NoesisBlueprint, FCompilerResultsLog& Results, const FKismetCompilerOptions& CompilerOptions, TArray<UObject*>* ObjLoaded)
: Super(NoesisBlueprint, Results, CompilerOptions, ObjLoaded)
{
}
#else
FNoesisBlueprintCompilerContext::FNoesisBlueprintCompilerContext(UNoesisBlueprint* SourceSketch, FCompilerResultsLog& InMessageLog, const FKismetCompilerOptions& InCompilerOptions)
: Super(SourceSketch, InMessageLog, InCompilerOptions)
{
}
#endif

FNoesisBlueprintCompilerContext::~FNoesisBlueprintCompilerContext()
{
Expand Down
4 changes: 4 additions & 0 deletions Source/NoesisEditor/Private/NoesisBlueprintCompilerContext.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,11 @@ class FNoesisBlueprintCompilerContext : public FKismetCompilerContext
typedef FKismetCompilerContext Super;

public:
#if ENGINE_MINOR_VERSION < 22
FNoesisBlueprintCompilerContext(UNoesisBlueprint* SourceSketch, FCompilerResultsLog& InMessageLog, const FKismetCompilerOptions& InCompilerOptions, TArray<UObject*>* InObjLoaded);
#else
FNoesisBlueprintCompilerContext(UNoesisBlueprint* SourceSketch, FCompilerResultsLog& InMessageLog, const FKismetCompilerOptions& InCompilerOptions);
#endif
virtual ~FNoesisBlueprintCompilerContext();

// FKismetCompilerContext interface
Expand Down
19 changes: 19 additions & 0 deletions Source/NoesisEditor/Private/NoesisEditorModule.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -144,14 +144,23 @@ void OnObjectPropertyChanged(UObject* Object, struct FPropertyChangedEvent& Even
TSharedPtr<FKismetCompilerContext> GetCompilerForNoesisBlueprint(UBlueprint* Blueprint, FCompilerResultsLog& Results, const FKismetCompilerOptions& CompilerOptions)
{
UNoesisBlueprint* NoesisBlueprint = CastChecked<UNoesisBlueprint>(Blueprint);
#if ENGINE_MINOR_VERSION < 22
return TSharedPtr<FKismetCompilerContext>(new FNoesisBlueprintCompilerContext(NoesisBlueprint, Results, CompilerOptions, nullptr));
#else
return TSharedPtr<FKismetCompilerContext>(new FNoesisBlueprintCompilerContext(NoesisBlueprint, Results, CompilerOptions));
#endif
}

class FNoesisEditorModule : public INoesisEditorModuleInterface
{
public:
// IModuleInterface interface
virtual void StartupModule() override
{
FCoreDelegates::OnPostEngineInit.AddRaw(this, &FNoesisEditorModule::OnPostEngineInit);
}

void OnPostEngineInit()
{
// Register slate style overrides
FNoesisStyle::Initialize();
Expand Down Expand Up @@ -192,7 +201,12 @@ class FNoesisEditorModule : public INoesisEditorModuleInterface

NoesisEditorModuleInterface = this;

#if ENGINE_MINOR_VERSION < 22
AssetImportHandle = FEditorDelegates::OnAssetPostImport.AddStatic(&OnObjectReimported);
#else
auto ImportSubsystem = GEditor->GetEditorSubsystem<UImportSubsystem>();
AssetImportHandle = ImportSubsystem->OnAssetPostImport.AddStatic(&OnObjectReimported);
#endif

ObjectPropertyChangedHandle = FCoreUObjectDelegates::OnObjectPropertyChanged.AddStatic(&OnObjectPropertyChanged);
}
Expand Down Expand Up @@ -233,7 +247,12 @@ class FNoesisEditorModule : public INoesisEditorModuleInterface

if (AssetImportHandle.IsValid())
{
#if ENGINE_MINOR_VERSION < 22
FEditorDelegates::OnAssetPostImport.Remove(AssetImportHandle);
#else
//auto ImportSubsystem = GEditor->GetEditorSubsystem<UImportSubsystem>();
//ImportSubsystem->OnAssetPostImport.Remove(AssetImportHandle);
#endif
}

if (ObjectPropertyChangedHandle.IsValid())
Expand Down
1 change: 1 addition & 0 deletions Source/NoesisEditor/Private/NoesisEditorPrivatePCH.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
#include "Kismet/KismetMathLibrary.h"
#include "Kismet/KismetStringLibrary.h"
#include "EditorFramework/AssetImportData.h"
#include "Sound/SoundWave.h"

// UnrealEd includes
#include "AutomatedAssetImportData.h"
Expand Down
Loading