Commit Graph

75 Commits

Author SHA1 Message Date
Josh Markiewicz
779cb6e04b #UE4 - moved all http header files into header module
- headers in core and implementations in http were working but only coincidentally
- no way to export any of the platforms if needed because CORE_API was correct for generic platform but would have link errors because all platforms were in HTTP_API
- fixed up platform http calls to reference http module
#platformnotify josh.adams
#codereview sam.zamani, david.nikdel, dmitry.rekman

[CL 2646887 by Josh Markiewicz in Main branch]
2015-08-06 15:52:48 -04:00
Dmitry Rekman
f455b7c9ec Linux: several keyboard input improvements.
- No longer assumes a US-QWERTY layout (uses SDL equivalent of Windows VK_ values, not raw keyboard scancodes)
- Fixes various keys not working for odd reasons (we lost bits downcasting from uint32 to uint16, causing key values to change or overlap other keys).

(Fixes UE-11582 and UE-14143 and probably others.)

Misc:
- Reverted to using WarpMouseInWindow due to reports that Global is not always reliable.
- Added a workaround for relative mouse movement being wrong in some cases.

#platformnotify Josh.Adams
#codereview Ryan.Gordon, Josh.Adams, Marc.Audy

[CL 2625112 by Dmitry Rekman in Main branch]
2015-07-17 18:52:48 -04:00
Terence Burns
bb15af7373 VS2015 - Fixing a host of compiler issues when using VS2015 toolset
Lots of shadow variable issues in header files
Type narrowing mismatches between integer types.
Fixed some variable names which conflicted with private members, this works around a bug in VC14

Commiting some of Jeff's code changes from 2605975

#platformnotify Josh.Adams

#CodeReview Jeff.Campeau

[CL 2613285 by Terence Burns in Main branch]
2015-07-08 04:48:54 -04:00
Ankit Khare
9b38554ee8 UEPLAT-826 : use HTML5 SDK from third party directories.
- Always pickup HTML5 sdk from third party directory.
   - Use the new html5 template by default.

[CL 2610587 by Ankit Khare in Main branch]
2015-07-04 18:45:54 -04:00
Mikolaj Sieluzycki
2a7706ad91 Pass bIsEnsureParameter properly to PromptForRemoteDebugging.
#platformnotify Josh.Adams

[CL 2610207 by Mikolaj Sieluzycki in Main branch]
2015-07-03 04:32:11 -04:00
Max Preussner
44137f32ae Platform: Added SSIZE_T type definition (equivalent for ssize_t)
#CodeReview: robert.manuszewski, dmitry.rekman
#platformnotify Josh.Adams

[CL 2589255 by Max Preussner in Main branch]
2015-06-16 16:18:52 -04:00
Ankit Khare
bd6ee8ccad UE-8662: unresponsive script warning when using development buids.
- don't include debuggin info / minify development builds - cuts development binary size from 200Mb to 69Mb.
  - generate symbols file
  - modify template to download this symbols file on the fly on a crash and use it generate an unmangled and unminified callstack. ( we now have real callstacks for shippign builds!)

#codereview josh.adams , james.moran

[CL 2556055 by Ankit Khare in Main branch]
2015-05-18 18:27:24 -04:00
Marc Audy
1a12e9cffe Add a matching PRAGMA_ENABLE_SHADOW_VARIABLE_WARNINGS for PRAGMA_DISABLE_SHADOW_VARIABLE_WARNINGS instead of using basic PRAGMA_POP
[CL 2548029 by Marc Audy in Main branch]
2015-05-12 17:41:47 -04:00
Mike Fricker
290f5e6d82 Miscellaneous fixes for Clang on windows
These changes allow UE4 to compile and run (in Debug) on Clang 3.7 alpha (r231657 only!)
  - Disabled editor source file discovery (crashes with Clang currently)
  - Disabled FThreadIdleStats in UnrealHeaderTool with Clang on Windows (causes link errors due to inlining bugs with Clang and DLL imports)
  - Use MSVC linker by default, even when compiling with Clang (can be tweaked with bAllowClangLinker)
  - Enabled shadow variable warnings on Windows with Clang
  - Limited max size of reflection code source files (Clang on Windows crashes with huge source files)
  - Fixed UE4 deprecation warnings not showing up when using Clang on Windows
  - Make sure initialization list order only triggers a warning on Clang for Windows

Other changes:
  - Fixed issues with pushed pragmas not getting popped (PRAGMA_ENABLE_DEPRECATION_WARNINGS)
  - Removed EMIT_DEPRECATED_WARNING_MESSAGE, wasn't used
  - Fixed various third party library includes not being treated as system headers (prevents compiler warnings)

To test Clang on Windows (beta!!):

- Get latest UE4 main branch (4.9)

- Install LLVM+Clang for Windows version r231657.  It's a quick install, you don't need to compile anything yourself.

- Open UEBuildWindows.cs, and change bCompileWithClang to true.  Be careful not to check that in.  We'll probably make this config-driven later, after the Clang toolchain gets more mature.

- Switch to Debug Editor configuration.  (See below for more info.)

- Rebuild the game or engine

Notes:

- You must use Clang r231657 (3.7.0 alpha).  There are no other releases that I've found that are able to compile UE4 successfully.  Most of the newer releases crash during compiling, and older releases aren't able to digest Windows header files well enough.

- Compiling in Development currently will not work due to bugs with Clangs handling of inlining and DLL exports.  Monolithic builds should work, though.

- Occasionally you may see runtime crashes (stack overflows or access violations) when running UE4 compiled with Clang on Windows.  These may very well be bugs in Clang (remember, we're using an alpha release of Clang 3.7.0.)  Unfortunately without better debugger support, it can be difficult to workaround these

- When debugging, you will only have functions and line numbers, no variables or parameters.  Clang only has preliminary support for Microsoft's PDB format currently.
XGE is fully supported with Clang on Windows.  Best case rebuild times I've seen are 3.5 minutes in Debug.

- Shared PCHs aren't supported yet (similar to on Mac and Linux), so iterative compile times may be slower compared to Visual C++.  However the Clang compiler is actually quite fast for rebuilds, probably because of missing debug info though.

- There may be some compiler warnings that are different between Mac/Linux and Windows.  We haven't done a line-by-line comparison yet.

- Build products and executables for Clang and VC++ overlap on disk.  So you have to rebuild to switch back and forth.  Sorry.

- Clang on Windows has a few bugs that we've had to work around.  You might see some strange things from time to time.  Every new release of Clang has different behavior on Windows.

- We still use the VC++ Linker, even when compiling using Clang.  The new Clang linker (lld.exe) can be enabled with bAllowClangLinker but it will crash when linking some modules.  It also doesn't produce usable debug symbols by Visual Studio (yet).

#codereview mikolaj.sieluzycki

[CL 2532260 by Mike Fricker in Main branch]
2015-04-30 14:24:21 -04:00
James Moran
1e09f3b5bd Add -Wshadow on HTML5. Fixed errors relating to it. UE-14250
Fixed some potential issues from incoming SDK release. Removed unnecessary js lib.

[CL 2524336 by James Moran in Main branch]
2015-04-24 10:49:50 -04:00
Gil Gribb
c8c3d793ea UE4 - remove rhimethods.h and all of the macro stuff relating to that
[CL 2524145 by Gil Gribb in Main branch]
2015-04-24 07:50:10 -04:00
Marc Audy
4815482be4 Add a PRAGMA_DISABLE_SHADOW_WARNING to easily wrap third party code that needs shadow variables disabled
Move PRAGMA_POP out of deprecation section and in to general usability

[CL 2510496 by Marc Audy in Main branch]
2015-04-13 13:31:04 -04:00
Ankit Khare
79542f541b Allow HTML5 to download maps on the fly.
UPLAT-685 (Remove Virtual File System to reduce run-time memory overhead and allow for larger worlds in HTML5)

#codereview josh.adams, james.moran

[CL 2505577 by Ankit Khare in Main branch]
2015-04-08 14:53:36 -04:00
Jaroslaw Palczynski
b0bc8bbc87 Added EMIT_CUSTOM_WARNING_AT_LINE macro to emit warnings at given line rather than on macro location.
[CL 2490438 by Jaroslaw Palczynski in Main branch]
2015-03-25 07:44:58 -04:00
Jaroslaw Surowiec
9aee7dc31d Core - Runnable improvements
#codereview Robert.Manuszewski

[CL 2489120 by Jaroslaw Surowiec in Main branch]
2015-03-24 07:29:32 -04:00
Jaroslaw Palczynski
f23f29257b Back out changelist 2481333
Rob asked me to back out GENERATED_*_BODY -> GENERATED_BODY change for now until the "_Validate and _Implementation auto-generation" discussion is over.

#codereview Robert.Manuszewski

[CL 2481343 by Jaroslaw Palczynski in Main branch]
2015-03-17 05:38:32 -04:00
Jaroslaw Palczynski
fa31560e2d Enabled UHT to digest GENERATED_BODY instead of GENERATED_UCLASS_BODY, GENERATED_USTRUCT_BODY, GENERATED_UINTERFACE_BODY or GENERATED_IINTERFACE_BODY, changed every occurence to the new syntax and fixed every warning that have fallen out of this change.
#codereview Robert.Manuszewski

[CL 2481333 by Jaroslaw Palczynski in Main branch]
2015-03-17 05:19:11 -04:00
Josh Adams
a98d6d5f5c - Changed Android ES31+AEP support from a TargetPlatform to a checkbox that works with any Android TP
- Moved HighQualityLightmap support check to IOSTargetPlatform so it can check project settings for Metal support
- Fixed some issues running on an x86_64 device
- Cleaned up some unused functions in TargetPlatform
#codereview niklas.smedberg

[CL 2478853 by Josh Adams in Main branch]
2015-03-13 14:05:13 -04:00
Mikolaj Sieluzycki
01acd9263c Log debug message before assertion macros.
#codereview Steve.Robb

[CL 2475034 by Mikolaj Sieluzycki in Main branch]
2015-03-11 09:07:48 -04:00
Mikolaj Sieluzycki
d7a081e634 Disable deprecation warnings in code generated by UHT.
[CL 2473643 by Mikolaj Sieluzycki in Main branch]
2015-03-10 08:24:59 -04:00
Gareth Martin
4615e5fe32 Fixes to TLazyObjectPtr, style improvements and new features:
New define: PLATFORM_COMPILER_HAS_DEFAULT_FUNCTION_TEMPLATE_ARGUMENTS, indicating whether function templates can have default template args or whether workarounds are needed. This is effectively a global version of ENABLE_TFUNCTIONREF_WORKAROUND from TFunction. Only needed for VS 2012, once we drop that we can remove this.
Now constructs from T* instead of (templated) U*. It cast to a T* anyway, so would have failed to compile with anything that couldn't already bind to a T* arg, so the template was pointless.
As a result no constructor from TYPE_OF_NULL is needed (calls the T* constructor with NULL), so it has been removed. nullptr also now works!
Comparison operators have been made symmetrical (TLazyObjectPtr can now be the right-hand argument as well) and comparisons with nullptr now compile
Implicit upcasting is now enabled in the constructor and assignment, so "TLazyObjectPtr<Base> mybaselazyptr = TLazyObjectPtr<Derived>()" now works, as does passing a TLazyObjectPtr<Derived> to a function that expects a TLazyObjectPtr<Base>. As this is always safe, this works even if the object isn't currently loaded!
The constructor from a TWeakObjectPtr has been removed because it didn't even compile
#codereview Steve.Robb

[CL 2471454 by Gareth Martin in Main branch]
2015-03-06 14:21:05 -05:00
James Moran
94f2e53582 Fix for assert getting exe name on startup in HTML5.
Implements FPlatformProcess::ExecutableName()

[CL 2462334 by James Moran in Main branch]
2015-02-26 12:11:18 -05:00
James Moran
e442a260d5 Safari fullscreen fix. UE-10530
Implement LaunchURL for HTML5. UE-10852
Possible fix for bogus mouse coordinates in Safari

#codereview Ankit.Khare

[CL 2461964 by James Moran in Main branch]
2015-02-26 05:37:56 -05:00
James Moran
f1320865f9 Many improvements to HTML5.
- Fixes to the Mac HTML5 Device selection. .app files now work correctly.
- Re-enabled HTML5 in Mac Editor.
- Added HTML5LaunchHelper executable to clean up the process of LaunchOn for HTML5.
- Improve HTML5 SDK Settings Editor interface. Only the emscripten install directory is needed now, SDK version are automatically picked up and selected for use.
- Change UnrealPak to also account for bytes saved (>64KB) and percentage size of original file (<90%) when choosing to automatically turn off compression.
- Added Server Port option for HTML5 deploy to stop clashes on port 8000
- Adding more logging for use during debugging & tracing.
- Added an option to turn on HTML5 tracing api and added calls to the api.
- Fix up check() macros to throw alert messages and be more clear that something has gone wrong on HTML5.

#codereview Ankit.Khare

[CL 2452979 by James Moran in Main branch]
2015-02-20 04:41:01 -05:00
Mikolaj Sieluzycki
e6b8af27ab Make check/ensure trigger debug break in current stack frame, not in AssertFailed internals.
#codereview Robert.Manuszewski

[CL 2425530 by Mikolaj Sieluzycki in Main branch]
2015-01-30 06:59:40 -05:00