2016-01-07 08:17:16 -05:00
|
|
|
// Copyright 1998-2016 Epic Games, Inc. All Rights Reserved.
|
2014-03-14 14:13:41 -04:00
|
|
|
|
|
|
|
|
/*=============================================================================
|
|
|
|
|
HTML5TargetPlatform.cpp: Implements the FHTML5TargetPlatform class.
|
|
|
|
|
=============================================================================*/
|
|
|
|
|
|
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3209340 on 2016/11/23 by Ben.Marsh
Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h.
Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms.
* Every header now includes everything it needs to compile.
* There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first.
* There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h.
* Every .cpp file includes its matching .h file first.
* This helps validate that each header is including everything it needs to compile.
* No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more.
* You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there.
* There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible.
* No engine code explicitly includes a precompiled header any more.
* We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies.
* PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files.
Tool used to generate this transform is at Engine\Source\Programs\IncludeTool.
[CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
|
|
|
#include "HTML5TargetPlatform.h"
|
|
|
|
|
#include "HAL/PlatformFilemanager.h"
|
|
|
|
|
#include "HAL/FileManager.h"
|
|
|
|
|
#include "Misc/ScopeLock.h"
|
2014-03-14 14:13:41 -04:00
|
|
|
|
2015-12-10 16:56:55 -05:00
|
|
|
DEFINE_LOG_CATEGORY_STATIC(LogHTML5TargetPlatform, Log, All);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Static initialization
|
|
|
|
|
*****************************************************************************/
|
|
|
|
|
|
|
|
|
|
FCriticalSection FHTML5TargetPlatform::DevicesCriticalSection;
|
|
|
|
|
|
2014-03-14 14:13:41 -04:00
|
|
|
/* FHTML5TargetPlatform structors
|
|
|
|
|
*****************************************************************************/
|
|
|
|
|
|
|
|
|
|
FHTML5TargetPlatform::FHTML5TargetPlatform( )
|
|
|
|
|
{
|
2015-07-04 18:45:54 -04:00
|
|
|
RefreshHTML5Setup();
|
2014-03-14 14:13:41 -04:00
|
|
|
#if WITH_ENGINE
|
|
|
|
|
// load up texture settings from the config file
|
2015-03-17 09:50:32 -04:00
|
|
|
HTML5LODSettings = nullptr;
|
2014-03-14 14:13:41 -04:00
|
|
|
StaticMeshLODSettings.Initialize(HTML5EngineSettings);
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* ITargetPlatform interface
|
|
|
|
|
*****************************************************************************/
|
|
|
|
|
|
|
|
|
|
void FHTML5TargetPlatform::GetAllDevices( TArray<ITargetDevicePtr>& OutDevices ) const
|
|
|
|
|
{
|
2015-12-10 16:56:55 -05:00
|
|
|
FScopeLock Lock( &DevicesCriticalSection );
|
|
|
|
|
|
2014-03-14 14:13:41 -04:00
|
|
|
OutDevices.Reset();
|
2015-12-10 16:56:55 -05:00
|
|
|
|
|
|
|
|
for( auto Iter = Devices.CreateConstIterator(); Iter; ++Iter )
|
|
|
|
|
{
|
|
|
|
|
OutDevices.Add( Iter.Value() );
|
|
|
|
|
}
|
2014-03-14 14:13:41 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ECompressionFlags FHTML5TargetPlatform::GetBaseCompressionMethod( ) const
|
|
|
|
|
{
|
|
|
|
|
return COMPRESS_ZLIB;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ITargetDevicePtr FHTML5TargetPlatform::GetDefaultDevice( ) const
|
|
|
|
|
{
|
2015-12-10 16:56:55 -05:00
|
|
|
FScopeLock Lock( &DevicesCriticalSection );
|
|
|
|
|
|
|
|
|
|
return Devices.FindRef( DefaultDeviceName );
|
2014-03-14 14:13:41 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ITargetDevicePtr FHTML5TargetPlatform::GetDevice( const FTargetDeviceId& DeviceId )
|
|
|
|
|
{
|
2015-12-10 16:56:55 -05:00
|
|
|
if( DeviceId.GetPlatformName() == this->PlatformName() )
|
|
|
|
|
{
|
|
|
|
|
FScopeLock Lock( &DevicesCriticalSection );
|
|
|
|
|
for( auto MapIt = Devices.CreateIterator(); MapIt; ++MapIt )
|
|
|
|
|
{
|
|
|
|
|
FHTML5TargetDevicePtr& Device = MapIt->Value;
|
|
|
|
|
if( Device->GetName() == DeviceId.GetDeviceName() )
|
2016-04-07 12:59:50 -04:00
|
|
|
{
|
|
|
|
|
return Device;
|
|
|
|
|
}
|
2015-12-10 16:56:55 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return nullptr;
|
2014-03-14 14:13:41 -04:00
|
|
|
}
|
|
|
|
|
|
2014-06-20 11:47:12 -04:00
|
|
|
bool FHTML5TargetPlatform::IsSdkInstalled(bool bProjectHasCode, FString& OutDocumentationPath) const
|
|
|
|
|
{
|
Copying //UE4/Dev-Platform to //UE4/Main (Source: //UE4/Dev-Platform @ 2970079)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2945365 on 2016/04/15 by Mark.Satterthwaite
Assert if anyone calls RHIClearUAV on a structured-buffer or texture under Metal - there's no clear way to implement these cases yet.
Change 2945366 on 2016/04/15 by Mark.Satterthwaite
Change the Metal parallel command-context submission to hand-off the entire NSArray of MTLCommandBuffers to avoid race conditions between one use of a context and the next.
Change 2945394 on 2016/04/15 by Mark.Satterthwaite
Duplicate CL #2943702 from 4.11.2: Change the way Metal validates the render-target state so that in FMetalContext::PrepareToDraw it can issue a last-ditch attempt to restore the render-targets. This won't fix the cause of the Mac Metal crashes but it might mitigate some of them and provide more information about why they are occurring.
Change 2945444 on 2016/04/15 by Mark.Satterthwaite
Cache the Metal fallback depth-stencil surface for the canvas tile rendering so that we only ever keep one spare depth-stencil surface around. This costs us a little more permanent memory but reduces churn.
Change 2945457 on 2016/04/15 by Mark.Satterthwaite
Add validation code to MetalRHI to ensure that we don't erroneously re-clear existing render contents when restoring the render command encoder. This will only be active when the Metal debug layer is enabled and is completely compiled away in Test & Shipping builds for performance.
Change 2946249 on 2016/04/16 by Nick.Shin
build HarfBuzz for HTML5
#jira UE-28552 - HarfBuzz - HTML5
Change 2946250 on 2016/04/16 by Nick.Shin
Rename/move file(s)
move emscripten (part 1 of 2)
from Engine/Source/ThirdParty/HTML5/emsdk
to Engine/Extras/ThirdPartyNotUE/emsdk
this is a request from legal
Change 2946251 on 2016/04/16 by Nick.Shin
move emscripten (part 2 of 2)
build scripts and cpp files updated with new emscripten path
from Engine/Source/ThirdParty/HTML5/emsdk
to Engine/Extras/ThirdPartyNotUE/emsdk
this is a request from legal
Change 2946516 on 2016/04/18 by Mark.Satterthwaite
Disable r.DFShadowScatterTileCulling as well as r.AOScatterTileCulling on Mac because we don't have the necessary RW textures on Metal.
Change 2947000 on 2016/04/18 by Michael.Trepka
Print OS X version to log in FMacPlatformMisc::PlatformInit()
Change 2948197 on 2016/04/19 by Lee.Clark
PS4 - Use SDK 3.508.031
Change 2948301 on 2016/04/19 by Nick.Shin
upgrading zlib openssl libcurl libwebsockets
part 1 of 2 -- adding new compiled versions (part 2 will be removing the old version -- which will be done after platform owners are given a chance to recompile for their platform - most notably: zlib)
NOTE: Linux libraries are built for CentOS 6.7 (i.e. 2010 - glibc 2.12 and gcc 4.4.7)
#jira UEPLAT-1246 - Update libWebsockets
#jira UEPLAT-1221 - update websocket library
#jira UEPLAT-1223 - Arrange testing for 'update websocket library'
#jira UEPLAT-1203 - Add Linux library for libwebsockets
#jira UEPLAT-1204 - Rebuild libwebsockets with SSL
Change 2948319 on 2016/04/19 by Nick.Shin
update zlib to v1.2.8
part 1 of 4 - doing this in stages for tracking purposes
#jira UEPLAT-1246 - Update libWebsockets
#jira UEPLAT-1221 - update websocket library
Change 2948320 on 2016/04/19 by Nick.Shin
update OpenSSL to v1.0.1s
part 2 of 4 - doing this in stages for tracking purposes
also, removing dynamic libs (for windows) -- these are no longer needed as this is now statically linked in editor
- tested by installing perforce server setup with ssl access only and pointing editor source code to it as ssl:hostname:port
- also tested trying accessing it without ssl which resulted in access denied indicating a successful test of dynamic lib removal
#jira UEPLAT-1246 - Update libWebsockets
#jira UEPLAT-1221 - update websocket library
#jira UEPLAT-1204 - Rebuild libwebsockets with SSL
Change 2948322 on 2016/04/19 by Nick.Shin
update libwebsockets to v1.7.4
part 4 of 4 - doing this in stages for tracking purposes
#jira UEPLAT-1246 - Update libWebsockets
#jira UEPLAT-1221 - update websocket library
#jira UEPLAT-1204 - Rebuild libwebsockets with SSL
Change 2948323 on 2016/04/19 by Nick.Shin
build scripts
pull source and compile - zlib openssl libcurl & libwebsockets
tested on:
- Win64 VS2013 & VS2015
- OSX
- Linux
#jira UEPLAT-1246 - Update libWebsockets
#jira UEPLAT-1221 - update websocket library
#jira UEPLAT-1203 - Add Linux library for libwebsockets
#jira UEPLAT-1204 - Rebuild libwebsockets with SSL
Change 2948337 on 2016/04/19 by Lee.Clark
VS 2015 libScePad support
Change 2948382 on 2016/04/19 by Mark.Satterthwaite
Add Mac model, CPU string, num HTs to the log on Mac so that errors reported to us contain the data that Apple want when we turn them into bug-reports. Also added a missing sigaction from the trampoline.
Change 2948385 on 2016/04/19 by Mark.Satterthwaite
Disambiguate Metal command-buffer failures by vendor & error type so that we don't end up with just one crash-reporting entry for many different kinds of crash and enable this assertion on all builds because it will always be fatal and failing to crash here may end up causing the Mac to reboot.
Change 2948460 on 2016/04/19 by Peter.Sauerbrei
fix for wrong line endings
Change 2948526 on 2016/04/19 by Nick.Shin
fix for wrong line endings
Change 2949334 on 2016/04/20 by Nick.Shin
fix library path
for some reason, NetworkFileSystem and HttpNetworkReplayStreaming on Mac platform needs full path - even though lib path was set...
Change 2949398 on 2016/04/20 by Lee.Clark
PS4 - Fix SDK compile warnings
Change 2949656 on 2016/04/20 by Nick.Shin
Back out changelist 2948320
but keeping the C# build file as-is
Change 2949676 on 2016/04/20 by Mark.Satterthwaite
Double-buffer the Metal viewport's back-buffer so that we can access the contents of the back-buffer after EndDrawingViewport is called until BeginDrawingViewport is called again on this viewport, this makes it possible to capture movies on Metal.
#jira UE-29140
Change 2950025 on 2016/04/20 by Mark.Satterthwaite
Undo CL #2949676 and instead on Mac where we want to be able to capture videos of gameplay we just insert an intermediate texture as the back-buffer and use a manual blit to the drawable prior to present. This also changes the code to enforce that the back-buffer render-target should never be nil as the code & Metal API itself assumes that this situation cannot occur but it would appear from continued crashes inside PrepareToDraw that it actually can in the field. This will address another potential cause of UE-29006.
#jira UE-29006
Change 2950084 on 2016/04/20 by Nick.Shin
OSX warning fix:
UE4 supports down to OSX 10.9 rebuilt the zlib openssl libcurl and libwebsockets to support that
build file also updated to use MACOSX_DEVELOPMENT_TARGET=10.9
Change 2950613 on 2016/04/20 by Dmitry.Rekman
UAT: Disable modules that are not supported on Linux.
#rb none
#codereview Ben.Marsh, Michael.Trepka, Josh.Adams
#tests Run RunUAT.sh
Change 2951065 on 2016/04/21 by Nick.Shin
temp: update SSL dlls in Engine/Binaries/ThirdParty/OpenSSL/Win64
Change 2951556 on 2016/04/21 by Nick.Shin
static libs double checked
#jira UE-29674 - Editor fails to open in Dev-Platform
Change 2951559 on 2016/04/21 by Nick.Shin
static libs double checked
forgot these files - they were in another changelist
#jira UE-29674 - Editor fails to open in Dev-Platform
Change 2951574 on 2016/04/21 by Nick.Shin
remove unused variable warning
was bughunt code...
Change 2951652 on 2016/04/21 by Josh.Adams
- Disabled MRT support on iPad Air 1 devices, since it doesn't support wide enough MRTs that the engine needs (ie, only use MRTs in METAL_MRT mode on iOS)
Change 2951656 on 2016/04/21 by Josh.Adams
- Fixed Mac compile error in Metal
Change 2951718 on 2016/04/21 by Nick.Shin
remove shared SSL DLLs in a controlled manner
tested with QA help who was able to replicate the bug in the morning - and was able to successfully run the editor with this changelist (shelved - remote unshelved test - thanks Dan.Bullard_volt!)
#jira UE-29674 - Editor fails to open in Dev-Platform
Change 2951862 on 2016/04/21 by Lee.Clark
PS4 - Enable Neo high resolution support.
Change 2952409 on 2016/04/22 by Nick.Shin
add win32 build targets for zlib openssl libcurl libwebsockets
part 1 of 2: these are the libs and header files
Change 2952411 on 2016/04/22 by Nick.Shin
add win32 build targets for zlib openssl libcurl libwebsockets
part 1 of 2: these are the C# build scripts
Change 2952580 on 2016/04/22 by Lee.Clark
PS4 - Fix staging and deploying of system prxs
Change 2953152 on 2016/04/22 by Mark.Satterthwaite
Only cache instances of TShadowDepthVS with bIsForGeometryShader=true when the RHI can handle the underlying feature. We can save memory on iOS by only emitting these shaders on Mac Metal or RHI's with Geometry shaders which have the required H/W to do this.
Change 2953385 on 2016/04/22 by Nick.Shin
use HarfBuzz libs for HTML5
c# build files updated to link in the harfbuzz libs
#jira UE-28552 - HarfBuzz - HTML5
Change 2954686 on 2016/04/25 by Nick.Shin
from legal:
Emscripten approved for redistribution provided that *all* files are checked into the following directory: Engine/Extras/ThirdPartyNotUE
Please also check in the attached .tps files and licenses alongside the TPS itself. This will allow us to track third party files within P4.
Change 2954928 on 2016/04/25 by Daniel.Lamb
Fixed min number of threads allocated for compiling shaders in cooker.
Change 2954942 on 2016/04/25 by Daniel.Lamb
Added flag -skipcompile for running visual studio.
Skip force compilation on -multiprocess flag.
#jira UE-22308
#PR 1678
#1678
Change 2954948 on 2016/04/25 by Josh.Adams
Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform)
Change 2955370 on 2016/04/25 by Josh.Adams
- Fixing C# error from main
#lockdown nick.penwarden
Change 2957745 on 2016/04/27 by Daniel.Lamb
Pull request from acordon@microsoft.com.
Fixed deterministic cooking issue with StaticMeshComponent using StaticMesh before it had it's postload call.
Change 2957747 on 2016/04/27 by Daniel.Lamb
Pull request from acordon@microsoft.com.
Resave packages commandlet now can also rebuild asset registry paths with consistent case.
Change 2957750 on 2016/04/27 by Daniel.Lamb
Pull request from acordon@microsoft.com.
Fixed deterministic cooking issue with StaticMeshComponent using StaticMesh before it had it's postload call.
Change 2958708 on 2016/04/28 by Nick.Shin
remove boringSSL
#jira UE-29970 - QAGame launch on fails for Win64, fatal error LNK1169: one or more multiply defined symbols found
#lockdown josh.adams
Change 2958724 on 2016/04/28 by Nick.Shin
moved setting bVerifyPeer flag AFTER CertBundlePath has been set...
otherwise, libCurl is going to try to verify the SSL session - but without a cert file, it makes no sense to try and verify the session
- we could (and probably should) make this an error condition - but the constructor has the bVerifyPeer set to true -- which would mean that all games will need to have a cert file and/or know to set bVerifyPeer to false...
- and so far, only linux and android seem to have code in place to make use of the cert files...
#jira UE-29950 - Orion deticated server MCP authentication fails when using CURL
#lockdown josh.adams
Change 2959058 on 2016/04/28 by Mark.Satterthwaite
Mac Metal RHIGetSupportedResolution & RHIGetAvailableResolutions exactly as they were for Mac OpenGL.
Change 2959587 on 2016/04/28 by Jeff.Campeau
Use response files for compiling CPPs using the VC toolchain to avoid issues where the command line is too long for XGE
Change 2959605 on 2016/04/28 by Jeff.Campeau
Reuse existing response files if contents are unmodified.
#2278
Change 2959680 on 2016/04/28 by Daniel.Lamb
Don't cook clients when building only server configs.
#pr 2127
#2127
Change 2959764 on 2016/04/28 by Nick.Shin
set PS4 back to using boringSSL - until OpenSSL has been built for it
#jira UE-30088 - Orion PS4 Cook and Deploy fails to build for PS4
Change 2959875 on 2016/04/28 by Jeff.Campeau
Simplified compression to use a bitwindow param instead of a targetplatform param
Added bitwindow parameter for unrealpak
Set Xbox One to pass 12 bit window for paks (for hw decompress)
Change 2959960 on 2016/04/28 by Nick.Shin
removed url protocol scheme from external script loads - this will support fetching scripts with either http or https automatically
and added window.focus after game has finished compiling - this will help if game is inside an iframe
#jira UE-29886 - HTML5 project does not load using itch.io
Change 2960064 on 2016/04/28 by Dmitry.Rekman
XMPP: Add missing dependency on OpenSSL on Linux.
Change 2961310 on 2016/04/29 by Mark.Satterthwaite
DistanceField tile alignment changes to attempt to make it work on Mac.
Change 2961602 on 2016/04/29 by Nick.Shin
#ifndef'd EMSCRIPTEN around FOpenGL::Flush();
answerhub 409649 - HTML5 OpenGL backend doesn't need to flush GL commands
Change 2961604 on 2016/04/29 by Nick.Shin
return "()" on empty object
answerhub 390139 - JSON Conversion of TMaps of UStructs Can't Deserialize
Change 2963068 on 2016/05/02 by Peter.Sauerbrei
Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform)
Change 2963302 on 2016/05/02 by Peter.Sauerbrei
fix for PS4 build failure
Change 2963731 on 2016/05/02 by Dmitry.Rekman
Linux: move crash/ensure info from Binaries to Saved (UE-28411).
- Allows running from read/only locations, since Saved can be redirected.
#rb none
#codereview Chris.Wood, David.Vossel
Change 2963737 on 2016/05/02 by Dmitry.Rekman
CrashMalloc: get allocation size also from jemalloc.
- Editor builds on Linux are otherwise shutting down on attempting to realloc things ("binned" is not used for the editor).
#rb none
#codereview Chris.Wood, Robert.Manuszewski, Steve.Robb
Change 2963989 on 2016/05/03 by Lee.Clark
PS4 - Fix texture initialization
Change 2964296 on 2016/05/03 by Dmitry.Rekman
Better fix for getting previous allocation size.
- Suggested by GilG.
#codereview Gil.Gribb
Change 2964398 on 2016/05/03 by Mark.Satterthwaite
Added GetCompressionBitWindow to IPlatformCompression so that FArchive compression can acquire the platform specific window value at runtime even without the Developer-only TargetPlatform modules. This allows the ShaderCache to perform runtime compression of preloaded shaders in-game without crashing.
#jira UE-30238
Change 2965966 on 2016/05/04 by Peter.Sauerbrei
fix for bad path when deploying from mac
#jira UE-30294
#lockdown josh.adams
Change 2968380 on 2016/05/05 by Dmitry.Rekman
Fix visibility placement which breaks Linux build.
#lockdown Josh.Adams
#codereview James.Golding
Change 2969002 on 2016/05/06 by Nick.Shin
use boringssl until webrtc recompiled with openssl work is finished
#jira UE-30298 - Fortnite and Orion crash on login
#lockdown josh.adams
Change 2969545 on 2016/05/06 by Josh.Adams
Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform)
#lockdown nick.penwarden
Change 2969923 on 2016/05/06 by Chris.Babcock
Fix linker warning (mismatched function/variable for glMapBufferOES and glUnmapBufferOES)
#jira UE-30222
#ue4
#android
#lockdown Josh.Adams
Change 2970016 on 2016/05/07 by Nick.Shin
undo all of the following upgrades:
- zlib
- openssl
- libcurl
- libwebsockets
and reset webrtc
#jira UE-30298 - Fortnite and Orion crash on login
#lockdown josh.adams
#lockdown nick.penwarden
[CL 2970080 by Josh Adams in Main branch]
2016-05-07 12:42:47 -04:00
|
|
|
FString SDKPath = FPaths::EngineDir() / TEXT("Extras/ThirdPartyNotUE/emsdk") /
|
2014-10-31 04:31:19 -04:00
|
|
|
#if PLATFORM_WINDOWS
|
2016-04-07 12:59:50 -04:00
|
|
|
TEXT("Win64");
|
2015-07-04 18:45:54 -04:00
|
|
|
#elif PLATFORM_MAC
|
2016-04-07 12:59:50 -04:00
|
|
|
TEXT("Mac");
|
2015-07-04 18:45:54 -04:00
|
|
|
#elif PLATFORM_LINUX
|
2016-04-07 12:59:50 -04:00
|
|
|
TEXT("Linux");
|
|
|
|
|
#else
|
|
|
|
|
TEXT("UNKNOWN_PLATFORM");
|
|
|
|
|
#endif
|
2014-10-31 04:31:19 -04:00
|
|
|
|
2015-07-04 18:45:54 -04:00
|
|
|
FString SDKDirectory = FPaths::ConvertRelativePathToFull(SDKPath);
|
|
|
|
|
|
|
|
|
|
if (IFileManager::Get().DirectoryExists(*SDKDirectory))
|
2014-10-31 04:31:19 -04:00
|
|
|
{
|
2016-04-07 12:59:50 -04:00
|
|
|
return true;
|
2014-10-31 04:31:19 -04:00
|
|
|
}
|
2016-04-07 12:59:50 -04:00
|
|
|
return false;
|
2014-06-20 11:47:12 -04:00
|
|
|
}
|
|
|
|
|
|
2014-03-14 14:13:41 -04:00
|
|
|
|
|
|
|
|
bool FHTML5TargetPlatform::IsRunningPlatform( ) const
|
|
|
|
|
{
|
|
|
|
|
return false; // but this will never be called because this platform doesn't run the target platform framework
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if WITH_ENGINE
|
|
|
|
|
|
2015-09-24 23:37:30 -04:00
|
|
|
static FName NAME_GLSL_ES2_WEBGL(TEXT("GLSL_ES2_WEBGL"));
|
2014-03-14 14:13:41 -04:00
|
|
|
|
2014-05-09 08:51:44 -04:00
|
|
|
void FHTML5TargetPlatform::GetAllPossibleShaderFormats( TArray<FName>& OutFormats ) const
|
2014-03-14 14:13:41 -04:00
|
|
|
{
|
2015-09-24 23:37:30 -04:00
|
|
|
OutFormats.AddUnique(NAME_GLSL_ES2_WEBGL);
|
2014-03-14 14:13:41 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2014-05-09 08:51:44 -04:00
|
|
|
void FHTML5TargetPlatform::GetAllTargetedShaderFormats( TArray<FName>& OutFormats ) const
|
|
|
|
|
{
|
|
|
|
|
GetAllPossibleShaderFormats(OutFormats);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2014-03-14 14:13:41 -04:00
|
|
|
const class FStaticMeshLODSettings& FHTML5TargetPlatform::GetStaticMeshLODSettings( ) const
|
|
|
|
|
{
|
|
|
|
|
return StaticMeshLODSettings;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void FHTML5TargetPlatform::GetTextureFormats( const UTexture* Texture, TArray<FName>& OutFormats ) const
|
|
|
|
|
{
|
|
|
|
|
FName TextureFormatName = NAME_None;
|
|
|
|
|
|
|
|
|
|
#if WITH_EDITOR
|
|
|
|
|
// Supported texture format names.
|
|
|
|
|
static FName NameDXT1(TEXT("DXT1"));
|
|
|
|
|
static FName NameDXT3(TEXT("DXT3"));
|
|
|
|
|
static FName NameDXT5(TEXT("DXT5"));
|
|
|
|
|
static FName NameDXT5n(TEXT("DXT5n"));
|
|
|
|
|
static FName NameAutoDXT(TEXT("AutoDXT"));
|
|
|
|
|
static FName NameBGRA8(TEXT("BGRA8"));
|
|
|
|
|
static FName NameG8(TEXT("G8"));
|
|
|
|
|
static FName NameRGBA16F(TEXT("RGBA16F"));
|
2014-05-22 09:13:12 -04:00
|
|
|
static FName NameRGBA8(TEXT("RGBA8"));
|
2014-03-14 14:13:41 -04:00
|
|
|
|
|
|
|
|
bool bNoCompression = Texture->CompressionNone // Code wants the texture uncompressed.
|
|
|
|
|
|| (HasEditorOnlyData() && Texture->DeferCompression) // The user wishes to defer compression, this is ok for the Editor only.
|
|
|
|
|
|| (Texture->CompressionSettings == TC_EditorIcon)
|
|
|
|
|
|| (Texture->LODGroup == TEXTUREGROUP_ColorLookupTable) // Textures in certain LOD groups should remain uncompressed.
|
|
|
|
|
|| (Texture->LODGroup == TEXTUREGROUP_Bokeh)
|
|
|
|
|
|| (Texture->LODGroup == TEXTUREGROUP_IESLightProfile)
|
|
|
|
|
|| (Texture->Source.GetSizeX() < 4) // Don't compress textures smaller than the DXT block size.
|
|
|
|
|
|| (Texture->Source.GetSizeY() < 4)
|
|
|
|
|
|| (Texture->Source.GetSizeX() % 4 != 0)
|
|
|
|
|
|| (Texture->Source.GetSizeY() % 4 != 0);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ETextureSourceFormat SourceFormat = Texture->Source.GetFormat();
|
|
|
|
|
|
|
|
|
|
// Determine the pixel format of the (un/)compressed texture
|
|
|
|
|
if (bNoCompression)
|
|
|
|
|
{
|
2014-04-23 17:30:27 -04:00
|
|
|
if (Texture->HasHDRSource())
|
|
|
|
|
{
|
|
|
|
|
TextureFormatName = NameBGRA8;
|
|
|
|
|
}
|
|
|
|
|
else if (SourceFormat == TSF_G8 || Texture->CompressionSettings == TC_Grayscale)
|
|
|
|
|
{
|
|
|
|
|
TextureFormatName = NameG8;
|
|
|
|
|
}
|
|
|
|
|
else if (Texture->LODGroup == TEXTUREGROUP_Shadowmap)
|
|
|
|
|
{
|
|
|
|
|
TextureFormatName = NameG8;
|
|
|
|
|
}
|
2016-04-07 12:59:50 -04:00
|
|
|
else
|
2014-04-23 17:30:27 -04:00
|
|
|
{
|
2015-04-08 14:51:04 -04:00
|
|
|
TextureFormatName = NameRGBA8;
|
2014-04-23 17:30:27 -04:00
|
|
|
}
|
2014-03-14 14:13:41 -04:00
|
|
|
}
|
2015-02-03 18:35:25 -05:00
|
|
|
else if (Texture->CompressionSettings == TC_HDR
|
|
|
|
|
|| Texture->CompressionSettings == TC_HDR_Compressed)
|
2014-03-14 14:13:41 -04:00
|
|
|
{
|
|
|
|
|
TextureFormatName = NameRGBA16F;
|
|
|
|
|
}
|
|
|
|
|
else if (Texture->CompressionSettings == TC_Normalmap)
|
|
|
|
|
{
|
|
|
|
|
TextureFormatName = NameDXT5;
|
|
|
|
|
}
|
|
|
|
|
else if (Texture->CompressionSettings == TC_Displacementmap)
|
|
|
|
|
{
|
|
|
|
|
TextureFormatName = NameG8;
|
|
|
|
|
}
|
|
|
|
|
else if (Texture->CompressionSettings == TC_VectorDisplacementmap)
|
|
|
|
|
{
|
2014-05-22 09:13:12 -04:00
|
|
|
TextureFormatName = NameRGBA8;
|
2014-03-14 14:13:41 -04:00
|
|
|
}
|
|
|
|
|
else if (Texture->CompressionSettings == TC_Grayscale)
|
|
|
|
|
{
|
|
|
|
|
TextureFormatName = NameG8;
|
|
|
|
|
}
|
|
|
|
|
else if( Texture->CompressionSettings == TC_Alpha)
|
|
|
|
|
{
|
|
|
|
|
TextureFormatName = NameDXT5;
|
|
|
|
|
}
|
2014-07-30 15:36:36 -04:00
|
|
|
else if (Texture->CompressionSettings == TC_DistanceFieldFont)
|
|
|
|
|
{
|
|
|
|
|
TextureFormatName = NameG8;
|
|
|
|
|
}
|
2014-03-14 14:13:41 -04:00
|
|
|
else if (Texture->CompressionNoAlpha)
|
|
|
|
|
{
|
|
|
|
|
TextureFormatName = NameDXT1;
|
|
|
|
|
}
|
|
|
|
|
else if (Texture->bDitherMipMapAlpha)
|
|
|
|
|
{
|
|
|
|
|
TextureFormatName = NameDXT5;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
TextureFormatName = NameAutoDXT;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Some PC GPUs don't support sRGB read from G8 textures (e.g. AMD DX10 cards on ShaderModel3.0)
|
|
|
|
|
// This solution requires 4x more memory but a lot of PC HW emulate the format anyway
|
|
|
|
|
if ((TextureFormatName == NameG8) && Texture->SRGB && !SupportsFeature(ETargetPlatformFeatures::GrayscaleSRGB))
|
|
|
|
|
{
|
|
|
|
|
TextureFormatName = NameBGRA8;
|
|
|
|
|
}
|
2016-04-07 12:59:50 -04:00
|
|
|
#endif
|
2014-03-14 14:13:41 -04:00
|
|
|
|
2016-04-07 12:59:50 -04:00
|
|
|
OutFormats.Add( TextureFormatName);
|
2014-03-14 14:13:41 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2015-03-17 09:50:32 -04:00
|
|
|
const UTextureLODSettings& FHTML5TargetPlatform::GetTextureLODSettings() const
|
2014-03-14 14:13:41 -04:00
|
|
|
{
|
2015-03-17 09:50:32 -04:00
|
|
|
return *HTML5LODSettings;
|
2014-03-14 14:13:41 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2014-10-03 14:56:20 -04:00
|
|
|
FName FHTML5TargetPlatform::GetWaveFormat( const USoundWave* Wave ) const
|
2014-03-14 14:13:41 -04:00
|
|
|
{
|
|
|
|
|
static FName NAME_OGG(TEXT("OGG"));
|
|
|
|
|
return NAME_OGG;
|
|
|
|
|
}
|
|
|
|
|
|
2015-01-26 14:52:47 -05:00
|
|
|
#endif // WITH_ENGINE
|
|
|
|
|
|
2015-07-04 18:45:54 -04:00
|
|
|
void FHTML5TargetPlatform::RefreshHTML5Setup()
|
2015-01-26 10:22:57 -05:00
|
|
|
{
|
2016-04-07 12:59:50 -04:00
|
|
|
FString Temp;
|
2015-07-04 18:45:54 -04:00
|
|
|
if (!FHTML5TargetPlatform::IsSdkInstalled(true, Temp))
|
|
|
|
|
{
|
2016-04-07 12:59:50 -04:00
|
|
|
// nothing to do.
|
2015-07-04 18:45:54 -04:00
|
|
|
return;
|
|
|
|
|
}
|
2015-02-20 04:41:01 -05:00
|
|
|
|
2015-12-10 16:56:55 -05:00
|
|
|
// update available devices
|
|
|
|
|
TArray<FString> DeviceMaps;
|
|
|
|
|
GConfig->GetArray( TEXT("/Script/HTML5PlatformEditor.HTML5SDKSettings"), TEXT("DeviceMap"), DeviceMaps, GEngineIni );
|
|
|
|
|
if ( ! DeviceMaps.Num() )
|
2015-01-26 10:22:57 -05:00
|
|
|
{
|
2016-04-07 12:59:50 -04:00
|
|
|
// trash can: nukes everything
|
|
|
|
|
// default list will be repopulated
|
2015-12-10 16:56:55 -05:00
|
|
|
FScopeLock Lock( &DevicesCriticalSection );
|
|
|
|
|
for (auto Iter = Devices.CreateIterator(); Iter; ++Iter)
|
2015-01-26 10:22:57 -05:00
|
|
|
{
|
2015-12-10 16:56:55 -05:00
|
|
|
FHTML5TargetDevicePtr Device = Iter->Value;
|
|
|
|
|
Iter.RemoveCurrent();
|
|
|
|
|
DeviceLostEvent.Broadcast(Device.ToSharedRef());
|
|
|
|
|
}
|
|
|
|
|
DefaultDeviceName.Empty();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
// add or update
|
|
|
|
|
for (auto It : DeviceMaps)
|
|
|
|
|
{
|
|
|
|
|
FString DeviceName = "";
|
2016-04-07 12:59:50 -04:00
|
|
|
FString DevicePath = "";
|
Copying //UE4/Release-Staging-4.14 to //UE4/Dev-Main (Source: //UE4/Release-4.14 @ 3195953)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3195953 on 2016/11/12 by Leslie.Nivison
Rollback //UE4/Release-4.14/Engine/Plugins/Runtime/Nvidia to changelist 3193712
New GameWorks license from NVIDIA
#jira UEPROD-900
Change 3195944 on 2016/11/12 by Leslie.Nivison
Removing GameWorks SDK license until we get a new one from NVIDIA
#jira UEPROD-900
Change 3195942 on 2016/11/11 by Chris.Gagnon
Removing Ansel from 4.14 until revised EULA is handle.
#jira UE-none
Change 3195431 on 2016/11/11 by Mitchell.Wilson
Rebuilt lighting in subway reflections sample
#jira UE-38538
Change 3195080 on 2016/11/11 by mason.seay
Extended floor to allow more driving space
#jira UE-29618
Change 3194886 on 2016/11/11 by Chris.Babcock
Correct handling for 6x6 blocksize in ASTC compressor
#jira UE-38513
#ue4
#android
Change 3193712 on 2016/11/10 by Leslie.Nivison
Updating Ansel TPS info per NVIDIA response
#jira UEPROD-900
Change 3193691 on 2016/11/10 by Lina.Halper
#jira: UE-38488
Change 3193532 on 2016/11/10 by Lauren.Ridge
Fix to keep the user in VR editing mode after leaving VR PIE.
#jira UE-38317
Change 3193468 on 2016/11/10 by Leslie.Nivison
Removing unneeded license
#jira UEPROD-900
Change 3193465 on 2016/11/10 by Leslie.Nivison
Updating credits for 4.14
#jira UEPROD-902
Change 3193416 on 2016/11/10 by Daniel.Lamb
Changed default of exclude editor only content flag.
#jira UE-38455
Change 3193399 on 2016/11/10 by Mitchell.Wilson
Applied correct material to certain LODs of tree meshes in KiteDemo
#jira UE-38472
Change 3193049 on 2016/11/10 by Thomas.Sarkanen
Fix disappearing mesh on undo in skeletal mesh editor
Also fixes crash on undo in morph target panel
#jira UE-38430 - Undo in Skeletal Mesh Editor causes model to disappear
#jira UE-38437 - Crash when Undo after editing a weight in Morph Target Previewer
Change 3192655 on 2016/11/09 by Ryan.Vance
#jira UE-37238
Pulling in 3164679 and 3169467 which didn't make the 4.14 cut. Also changed to a full inverse for InvTranslatedViewProjectionMatrix in FViewMatrices::UpdateViewMatrix.
Change 3192613 on 2016/11/09 by Leslie.Nivison
Updating licenses due to TPS version updates.
Logging undocumented TPS per engine audit
#jira UEPROD-900
Change 3192197 on 2016/11/09 by Daniel.Wright
Added SUPPORT_CONTACT_SHADOWS, only standard deferred lighting supports it. Fixes scene depth texture bound in forward shading base pass.
#jira UE-38340
Change 3192182 on 2016/11/09 by Rolando.Caloca
UE4.14 - Fix recompute tangents not working when skin cache is enabled
#jira UE-38398
Change 3191695 on 2016/11/09 by Chris.Wood
Editor heartbeat changes for 4.14
[AN-1003] - Make Editor heartbeat 1min
[UE-38417] - Editor heartbeat changes (vanilla editor, new interval, debugger attached)
Also added IsDebugger, IsVanilla and IntervalSec to Editor.Usage.Heartbeat
#jira UE-38417
Change 3191437 on 2016/11/09 by Jack.Porter
Fix for LandscapeInfo crash when using Force Delete
#jira UE-37172
Change 3191033 on 2016/11/08 by Leslie.Nivison
Adding licenses for marketplace plugins
#jira UEPROD-901
Change 3191028 on 2016/11/08 by Leslie.Nivison
Updating licenses due to TPS version updates.
Logging undocumented TPS per engine audit
#jira UEPROD-900
Change 3190632 on 2016/11/08 by mason.seay
Updated testmap and assets
#jira UE-29618
Change 3190624 on 2016/11/08 by Jamie.Dale
Fixed case where FHTML5TargetPlatform::RefreshHTML5Setup could incorrectly add an empty device
Changes to UStrProperty::ExportTextItem caused FParse::Value to (correctly) read an empty string for DevicePath which passed the DirectoryExists check (where it would have previously read "))" which would fail that check).
#jira UE-38157
Change 3190443 on 2016/11/08 by Josh.Adams
- Somehow checking in my tested shelf messed up
#jira UE-38304
Change 3190354 on 2016/11/08 by Josh.Adams
- Vulkan now always being compiled in, if the SDK exists. Compiling not dependent on project settings
#jira UE-38304
Change 3190123 on 2016/11/08 by zachary.wilson
Updating testing content for sureface per-pixel improvements
#jira UE-29618
Change 3190113 on 2016/11/08 by Alexis.Matte
Make sure the default light map channel is 1 and not 0
#jira UE-35627
Change 3190102 on 2016/11/08 by Dmitry.Rekman
Linux: default to binned everywhere (UE-38287).
- Fixes suspicious crashes happening in uncooked build. Workaround, needs separate investigation.
#jira UE-38287
Change 3190000 on 2016/11/08 by Allan.Bentham
Removed old protostar loadmap hack.
#jira UE-38342
Change 3189914 on 2016/11/08 by Allan.Bentham
Fix vulkan crash when rendering sky capture.
Fix crash when rendering LDR scene capture on device.
#jira UE-38291
Change 3189861 on 2016/11/08 by Thomas.Sarkanen
Fix out of bounds access when using hidden bones with master pose components
Code was trying to to access the ReferenceToLocal array using a parent index from the master pose component. Now changed to only use indices known to be valid (i.e. this component's) to index the ReferenceToLocal array. Bone visibility is still master-authoratitive.
#jira UE-38214 - [CrashReport] UE4Editor_Engine!UpdateRefToLocalMatrices() [skeletalrender.cpp:238]
Change 3189370 on 2016/11/07 by Daniel.Wright
Only check transform mismatches for static lighting in UStaticMeshComponent::ApplyComponentInstanceData on components that actually can have static lighting
#jira UE-38272
Change 3189358 on 2016/11/07 by Mark.Satterthwaite
Intel Metal drivers can no longer compile our compute shaders reliably meaning Intel Macs must always use Metal SM4 as otehrwise they will crash.
#jira UE-38299
Change 3189273 on 2016/11/07 by Rolando.Caloca
UE4.14 - Integrate fix from 3161219
#jira UE-38270
Change 3189084 on 2016/11/07 by Chris.Bunner
Fix RemoveAAJitter from projection matrix.
#jira UE-37701, UE-38003
Change 3188636 on 2016/11/07 by Allan.Bentham
use glVertexAttribIPointer only on ES3.1 enabled projects.
#jira UE-38241
Change 3188596 on 2016/11/07 by Yannick.Lange
VR Editor: Fix crash when closing window while in VR Editor
#jira UE-37995
Change 3188433 on 2016/11/07 by Matthew.Griffin
Add starter content .upack files to starter_content tag so that they should still be installed if templates/feature packs option is de-selected in the Launcher
Change 3187739 on 2016/11/04 by Mitchell.Wilson
Updating DefautlEditor and DefaultEngine ini to correct path to VehicleMenu level.
#jira UE-29748
Change 3187536 on 2016/11/04 by Martin.Wilson
Fix for "Renaming a montage section via its details panel doesn't update the section correctly"
#jira UE-35929
Change 3187499 on 2016/11/04 by zachary.wilson
Checking in content fixes for Lighting Scenarios test level
#jira UE-29618
Change 3187492 on 2016/11/04 by mason.seay
Updated map to improve testing
#jira UE-29618
Change 3187438 on 2016/11/04 by Nick.Shin
fix html5 port number for cook-on-the-fly option
#jira UE-38032 - Quicklaunch HTML5 fails on Chrome. Browser returns "This site can't be reached 127.0.0.1 refused to connect"
Change 3187305 on 2016/11/04 by Martin.Wilson
Fix log spam from animation sequence thumbnails
#jira UE-38224
Change 3187260 on 2016/11/04 by Lauren.Ridge
Fix for crash on opening a level in VR Editing mode. When closing VREditorMode for a level load, HMD no longer leaves stereo mode.
#jira UE-32541
Change 3187224 on 2016/11/04 by Robert.Manuszewski
Proper fix for a crash when launching BP-only project from the Editor with EDL enabled (does not modify UE4Game target binaries)
#jira UE-37617
Change 3187136 on 2016/11/04 by Alexis.Matte
Fbx importer for static mesh, make sure that we order the materials array to follow the section order.
#jira UE-38242
Change 3187065 on 2016/11/04 by Mitchell.Wilson
Updated BP_Commentary_Box to resolve warnings with array if the box opens then closes before the text is rendered.
#jira UE-38266
Change 3187056 on 2016/11/04 by Mike.Beach
Guarding against a rare crash that occurs when compiling a Blueprint after hot-reload. GUnrealEd was null, which is concerning (as it could have resounding effects in other systems), but as I could not repro it more than once (to figure it out more) I simply guarded the use of a null pointer here.
#jira UE-38198
Change 3187040 on 2016/11/04 by Matthew.Griffin
Corrected path to DotNETCommon folder
Exclude all editor plugin pdbs from stripping
#jira UE-37072
Change 3186984 on 2016/11/04 by Marc.Audy
Fix crash when null component considered
#jira UE-36493
Change 3186600 on 2016/11/04 by Max.Chen
Sequencer: Fix crash in sequencer editor mode.
#jira UE-38205
Change 3186564 on 2016/11/04 by Nick.Shin
checking in latest physx libs for html5
#jira UE-38179 HTML5 Player falls through world on Firefox 64-bit
Change 3186258 on 2016/11/03 by Nick.Shin
fix for automation build to handle deleting of windows x86 & x64 libs properly
#jira UE-38179 HTML5 Player falls through world on Firefox 64-bit
Change 3186225 on 2016/11/03 by Lauren.Ridge
Fix for foliage brush not showing up until after first motion controller click.
#jira UE-38002
Change 3186100 on 2016/11/03 by Chris.Babcock
Update local notifications to deal with depreciated API
#jira UE-38236
#ue4
#android
Change 3186074 on 2016/11/03 by Mitchell.Wilson
Rebuilt lighting in Content Examples Welcome level
#jira UE-38239
Change 3185923 on 2016/11/03 by Lina.Halper
Fixed issue with animation not ticking in inactive world causing it to update parent animation
#jira: UE-37933
Change 3185764 on 2016/11/03 by Mitchell.Wilson
Updating deprecated node in MyCharacter_UMG.
#jira UE-38229
Change 3185683 on 2016/11/03 by Nick.Shin
non SSE2 version of PhysX for HTML5
#jira UE-38179 HTML5 Player falls through world on Firefox 64-bit
Change 3185492 on 2016/11/03 by Ben.Woodhouse
Workaround for very high render query memory overhead on D3D12. Add a cvar to limit timestamp queries allocated by the GPU profiler in a given frame. On D3D12 this limit is 1024 - other RHIs remain unbounded.
Currently render queries are 64KB each on D3D12, so this prevents high memory overhead on particular frames, e.g when we render a large number of reflection captures.
In practice, most frames are under 400 queries, so in practice we shouldn't hit the limit except in extreme cases.
#jira UE-38139
Change 3185481 on 2016/11/03 by Dmitry.Rekman
Remove version number from Linux README (UE-38059).
#jira UE-38059
Change 3185322 on 2016/11/03 by Ryan.Gerleve
Allow path names in NetFieldExportGroups to be remapped on the client.
#jira UE-37990
Change 3185293 on 2016/11/03 by Matthew.Griffin
Exclude UnrealControls and iPhonePackager from Build Tools CS node on non-Windows platforms as they don't compile
#jira UE-34016
Change 3185252 on 2016/11/03 by Michael.Trepka
Properly revert to OpenGL on Macs that do not support Metal
#jira UE-38190
Change 3184835 on 2016/11/03 by Jurre.deBaare
Crash when using undo in the preview scene settings of Persona
#fix Ensure that the profile index is valid after undo-ing
#misc Added transactions for adding/remove of the profiles
#jira UE-38142
Change 3184833 on 2016/11/03 by Jack.Porter
Fixed crash when ENABLE_VERIFY_GL and r.MobileOnChipMSAA is enabled on Android
#jira UE-38186
Change 3184418 on 2016/11/02 by Ryan.Vance
#jira UE-38161
Adding ISceneViewExtension::UsePostInitView which will be used to enable/disable the usage of PostRenderViewFamily_RenderThread and PostRenderView_RenderThread which was added earlier. We need to enable this behavior based on the hmd's compositor behavior, so a simple cvar wont work.
I missed the PostPresent implementation for steamvr in the earlier check in.
Change 3184286 on 2016/11/02 by Dan.Oconnor
Fix for IsValidLowLevel check being rotten. More correct fix will go into Dev-BP, but this is a low risk stop-gap
#jira UE-38149
Change 3184283 on 2016/11/02 by Arne.Schober
DR - UE-38155 replicated MS CL 3183837 - PSO Dangling Pointers: The PSO cache was returning pointers out of a Map which is based on a sparse Array and those pointers could become invalid if other insertions happen.
#jira UE-38155
Change 3184244 on 2016/11/02 by Richard.Ugarte
#jira UE-37534
Checking in updated UE4_Demo_Head_D on behalf of MikeB
Change 3184171 on 2016/11/02 by Michael.Trepka
Made Mac CrashReportClient high-DPI aware and fixed high-DPI handling in FMacWindow::IsPointInWindow()
#jira UE-37697
Change 3184126 on 2016/11/02 by Lauren.Ridge
VR Editor: Fixes for foliage painting only working on one controller, and for full press not painting foliage.
#jira UE-38147
#jira UE-38002
Change 3183997 on 2016/11/02 by Mitchell.Wilson
Scaled and Rotated 3d Widget to the correct position on example 2.3 in Content Examples UMG.
Adjusted collision on example 1.4 in Content Examples Physics. Updated collision on SM_ExampleMesh_Rocket.
Realigned some text render actors in Content Examples Post Process.
#jira UE-38099 UE-38078 UE-38064
Change 3183945 on 2016/11/02 by Mieszko.Zielinski
Fixed changing AreaClass of NavLinkProxy point links not having any effect on navmesh generation #UE4
#jira UE-38137
Change 3183906 on 2016/11/02 by Nick.Shin
for OSX (release-4.14 stream):
new OSX clang (from emscripten tool chain) configured by jukka from Mozilla
see Engine/Extras/ThirdPartyNotUE/emsdk/emscripten/incoming/EPIC_VERSION for details on where did this version come from
fixes for OSX -- update existing (bash shell script and UE4 c#) build files to use the new "incoming" emsdk
#jira UE-37329 - Step 'Compile UE4Game HTML5' - 300 Warnings
Change 3183899 on 2016/11/02 by Mieszko.Zielinski
Fixed EQS debugger not drawing item labels #UE4
#jira UE-38122
Change 3183239 on 2016/11/02 by Peter.Sauerbrei
fix for mobile provision with UUID only filename being allowed again by copying them to a new file name which allows them to be used.
#jira UE-38006
Change 3183149 on 2016/11/02 by Luke.Thatcher
[RELEASE] [SHOOTERGAME] [!] Fix "Is Talking" icon on ShooterGame scoreboard, after PS4 OSS refactor.
- ShooterGame was comparing FUniqueNetId::ToString() against AShooterPlayerState::GetShortPlayerName().
- This is wrong, since the NetId is not guaranteed to be equal to the player's name.
#jira UE-38011
Change 3183005 on 2016/11/02 by Luke.Thatcher
[RELEASE] [PS4] [^] Merging (as edit) PS4 OSS fixes from Engine to OrionGame.
#jira UE-38017 UE-38020
Original Changelists:
3182765 [RELEASE] [PS4] [~] Additional logging for PS4 OSS "Play Together".
3182766 [RELEASE] [PS4] [!] Fix assert in FUniqueNetIdPS4::FindOrCreate. We were assuming an online-only ID could never become a local ID. This isn't the case in the following scenario:
- Two users join a session on two separate PS4s.
- One user signs into the other user's PS4 with the same account, with a second controller. PSN logs him out of the first PS4.
- That user's Net ID has now migrated from being online-only, to local-with-online. This is a case that was not handled.
3182767 [RELEASE] [PS4] [!] Fix PS4 session invitations.
- Was calling old Web API with SceNpOnlineId where SceNpAccountId is needed.
- Replaced with NpToolkit2's session invitation API.
3182892 [RELEASE] [PS4] [!] Fix incorrect identity API implementation in PS4 OSS.
- System events directly drive the login state of a user. This also removes the blocking call to sceNpGetState().
- GetAuthToken is only called if the engine calls IOnlineIdentity::Login().
3182951 [RELEASE] [PS4] [!] Fix "play together" invitations handling in PS4 OSS.
- Wrong condition in GetUserWebApiContext. Web API contexts can be created for local users (i.e. FUniqueNetIdPS4 instances with a valid SceUserServiceUserId).
Change 3182992 on 2016/11/02 by Nick.Darnell
UMG Editor - Fixing a regression with the editor, closing the sequencer tab and reopening the editor should no longer cause a crash.
#jira UE-38098
Change 3182951 on 2016/11/02 by Luke.Thatcher
[RELEASE] [PS4] [!] Fix "play together" invitations handling in PS4 OSS.
- Wrong condition in GetUserWebApiContext. Web API contexts can be created for local users (i.e. FUniqueNetIdPS4 instances with a valid SceUserServiceUserId).
#jira UE-38017
[CL 3201696 by Matthew Griffin in Main branch]
2016-11-17 04:29:30 -05:00
|
|
|
if( FParse::Value( *It, TEXT( "DeviceName=" ), DeviceName ) && !DeviceName.IsEmpty() &&
|
|
|
|
|
FParse::Value( *It, TEXT( "DevicePath=(FilePath=" ), DevicePath ) && !DevicePath.IsEmpty() )
|
2015-01-26 10:22:57 -05:00
|
|
|
{
|
2016-04-07 12:59:50 -04:00
|
|
|
if (FPlatformFileManager::Get().GetPlatformFile().FileExists(*DevicePath) ||
|
|
|
|
|
FPlatformFileManager::Get().GetPlatformFile().DirectoryExists(*DevicePath))
|
2015-01-26 10:22:57 -05:00
|
|
|
{
|
2016-04-07 12:59:50 -04:00
|
|
|
FScopeLock Lock( &DevicesCriticalSection );
|
|
|
|
|
DeviceName = TEXT("user: ") + DeviceName;
|
|
|
|
|
FHTML5TargetDevicePtr& Device = Devices.FindOrAdd( DeviceName );
|
2015-12-10 16:56:55 -05:00
|
|
|
|
2016-04-07 12:59:50 -04:00
|
|
|
if( Device.IsValid() )
|
|
|
|
|
{ // remove "existing" - so can "update" it
|
|
|
|
|
DeviceLostEvent.Broadcast(Device.ToSharedRef());
|
2015-01-26 12:02:40 -05:00
|
|
|
}
|
2016-04-07 12:59:50 -04:00
|
|
|
|
|
|
|
|
Device = MakeShareable( new FHTML5TargetDevice( *this, DeviceName, DevicePath ) );
|
|
|
|
|
DeviceDiscoveredEvent.Broadcast( Device.ToSharedRef() );
|
|
|
|
|
if ( DefaultDeviceName.IsEmpty() )
|
2015-01-26 12:02:40 -05:00
|
|
|
{
|
2016-04-07 12:59:50 -04:00
|
|
|
DefaultDeviceName = DeviceName;
|
2015-01-26 12:02:40 -05:00
|
|
|
}
|
2015-01-26 10:22:57 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2015-07-04 18:45:54 -04:00
|
|
|
struct FBrowserLocation
|
|
|
|
|
{
|
|
|
|
|
FString Name;
|
|
|
|
|
FString Path;
|
|
|
|
|
} PossibleLocations[] =
|
2015-01-26 10:22:57 -05:00
|
|
|
{
|
|
|
|
|
#if PLATFORM_WINDOWS
|
2015-07-04 18:45:54 -04:00
|
|
|
{ TEXT("Nightly(64bit)"), TEXT("C:/Program Files/Nightly/firefox.exe") },
|
2016-04-07 12:59:50 -04:00
|
|
|
{ TEXT("Nightly"), TEXT("C:/Program Files (x86)/Nightly/firefox.exe") },
|
|
|
|
|
{ TEXT("Firefox(64bit)"), TEXT("C:/Program Files/Mozilla Firefox/firefox.exe") },
|
|
|
|
|
{ TEXT("Firefox"), TEXT("C:/Program Files (x86)/Mozilla Firefox/firefox.exe") },
|
|
|
|
|
{ TEXT("Chrome"), TEXT("C:/Program Files (x86)/Google/Chrome/Application/chrome.exe") },
|
2015-01-26 10:22:57 -05:00
|
|
|
#elif PLATFORM_MAC
|
2016-04-07 12:59:50 -04:00
|
|
|
{ TEXT("Safari"), TEXT("/Applications/Safari.app") },
|
2015-07-04 18:45:54 -04:00
|
|
|
{ TEXT("Firefox"), TEXT("/Applications/Firefox.app") },
|
2016-04-07 12:59:50 -04:00
|
|
|
{ TEXT("Chrome"), TEXT("/Applications/Google Chrome.app") },
|
2015-07-04 18:45:54 -04:00
|
|
|
#elif PLATFORM_LINUX
|
|
|
|
|
{ TEXT("Firefox"), TEXT("/usr/bin/firefox") },
|
|
|
|
|
#else
|
|
|
|
|
{ TEXT("Firefox"), TEXT("") },
|
|
|
|
|
#endif
|
2015-02-20 04:41:01 -05:00
|
|
|
};
|
|
|
|
|
|
2015-07-04 18:45:54 -04:00
|
|
|
// Add default devices..
|
|
|
|
|
for (const auto& Loc : PossibleLocations)
|
|
|
|
|
{
|
|
|
|
|
if (FPlatformFileManager::Get().GetPlatformFile().FileExists(*Loc.Path) || FPlatformFileManager::Get().GetPlatformFile().DirectoryExists(*Loc.Path))
|
|
|
|
|
{
|
2015-12-10 16:56:55 -05:00
|
|
|
FScopeLock Lock( &DevicesCriticalSection );
|
|
|
|
|
|
|
|
|
|
FHTML5TargetDevicePtr& Device = Devices.FindOrAdd( *Loc.Name );
|
|
|
|
|
|
|
|
|
|
if( !Device.IsValid() )
|
|
|
|
|
{
|
|
|
|
|
Device = MakeShareable( new FHTML5TargetDevice( *this, *Loc.Name, *Loc.Path ) );
|
2016-04-07 12:59:50 -04:00
|
|
|
DeviceDiscoveredEvent.Broadcast(Device.ToSharedRef());
|
2015-12-10 16:56:55 -05:00
|
|
|
}
|
2015-07-04 18:45:54 -04:00
|
|
|
}
|
|
|
|
|
}
|
2015-02-20 04:41:01 -05:00
|
|
|
}
|