// Copyright 1998-2014 Epic Games, Inc. All Rights Reserved. /*============================================================================= HTML5TargetPlatform.h: Declares the FHTML5TargetPlatform class. =============================================================================*/ #pragma once #if WITH_ENGINE #include "StaticMeshResources.h" #endif // WITH_ENGINE /** * Implements the HTML5 target platform. */ class FHTML5TargetPlatform : public TTargetPlatformBase { public: /** * Default constructor. */ FHTML5TargetPlatform( ); public: // Begin ITargetPlatform interface virtual void EnableDeviceCheck(bool OnOff) override {} virtual void GetAllDevices( TArray& OutDevices ) const override; virtual ECompressionFlags GetBaseCompressionMethod( ) const override; virtual bool GenerateStreamingInstallManifest(const TMultiMap& ChunkMap, const TSet& ChunkIDsInUse) const override { return true; } virtual ITargetDevicePtr GetDefaultDevice( ) const override; virtual ITargetDevicePtr GetDevice( const FTargetDeviceId& DeviceId ) override; virtual bool IsRunningPlatform( ) const override; virtual bool SupportsFeature( ETargetPlatformFeatures::Type Feature ) const override { if (Feature == ETargetPlatformFeatures::Packaging) { return true; } return TTargetPlatformBase::SupportsFeature(Feature); } virtual bool IsSdkInstalled(bool bProjectHasCode, FString& OutDocumentationPath) const override; #if WITH_ENGINE virtual void GetAllPossibleShaderFormats( TArray& OutFormats ) const override; virtual void GetAllTargetedShaderFormats( TArray& OutFormats ) const override; virtual const class FStaticMeshLODSettings& GetStaticMeshLODSettings() const override; virtual void GetTextureFormats( const UTexture* InTexture, TArray& OutFormats ) const override; virtual void GetReflectionCaptureFormats( TArray& OutFormats ) const override { OutFormats.Add(FName(TEXT("EncodedHDR"))); } virtual const struct FTextureLODSettings& GetTextureLODSettings( ) const override; virtual FName GetWaveFormat( const class USoundWave* Wave ) const override; #endif // WITH_ENGINE DECLARE_DERIVED_EVENT(FHTML5TargetPlatform, ITargetPlatform::FOnTargetDeviceDiscovered, FOnTargetDeviceDiscovered); virtual FOnTargetDeviceDiscovered& OnDeviceDiscovered( ) override { return DeviceDiscoveredEvent; } DECLARE_DERIVED_EVENT(FHTML5TargetPlatform, ITargetPlatform::FOnTargetDeviceLost, FOnTargetDeviceLost); virtual FOnTargetDeviceLost& OnDeviceLost( ) override { return DeviceLostEvent; } // End ITargetPlatform interface private: // Holds the HTML5 engine settings. FConfigFile HTML5EngineSettings; // Holds the local device. TArray LocalDevice; #if WITH_ENGINE // Holds the cached target LOD settings. FTextureLODSettings HTML5LODSettings; // Holds the static mesh LOD settings. FStaticMeshLODSettings StaticMeshLODSettings; #endif private: // Holds an event delegate that is executed when a new target device has been discovered. FOnTargetDeviceDiscovered DeviceDiscoveredEvent; // Holds an event delegate that is executed when a target device has been lost, i.e. disconnected or timed out. FOnTargetDeviceLost DeviceLostEvent; };