You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
- Brings over the necessary engine changes for embedding UE4 mobile as a dylib/so in native mobile app - Various changes for facial animation, screen recording, others - ARKit and ARCore plugins were removed, as deemed "not ready" #rb many people #ROBOMERGE-OWNER: josh.adams #ROBOMERGE-AUTHOR: josh.adams #ROBOMERGE-SOURCE: CL 5201138 via CL 5203024 [CL 5226277 by Josh Adams in Main branch]
90 lines
2.4 KiB
C++
90 lines
2.4 KiB
C++
// Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
|
|
#if USE_ANDROID_JNI
|
|
|
|
#include "Android/AndroidPlatform.h"
|
|
#include "Android/AndroidJava.h"
|
|
#include "RHI.h"
|
|
#include "RHIResources.h"
|
|
|
|
// Wrapper for com/epicgames/ue4/CameraPlayer*.java.
|
|
class FJavaAndroidWebBrowser : public FJavaClassObject
|
|
{
|
|
public:
|
|
FJavaAndroidWebBrowser(bool swizzlePixels, bool vulkanRenderer, int32 width, int32 height, jlong widgetPtr, bool bEnableRemoteDebugging, bool bUseTransparency);
|
|
virtual ~FJavaAndroidWebBrowser();
|
|
void Release();
|
|
bool GetVideoLastFrameData(void* & outPixels, int64 & outCount, bool *bRegionChanged);
|
|
bool GetVideoLastFrame(int32 destTexture);
|
|
bool DidResolutionChange();
|
|
bool UpdateVideoFrame(int32 ExternalTextureId, bool *bRegionChanged);
|
|
void ExecuteJavascript(const FString& Script);
|
|
void LoadURL(const FString& NewURL);
|
|
void LoadString(const FString& Contents, const FString& BaseUrl);
|
|
void StopLoad();
|
|
void Reload();
|
|
void Close();
|
|
void GoBack();
|
|
void GoForward();
|
|
void SetAndroid3DBrowser(bool InIsAndroid3DBrowser);
|
|
void SetVisibility(bool InIsVisible);
|
|
void Update(const int posX, const int posY, const int sizeX, const int sizeY);
|
|
private:
|
|
static FName GetClassName();
|
|
|
|
FJavaClassMethod ReleaseMethod;
|
|
FJavaClassMethod GetVideoLastFrameDataMethod;
|
|
FJavaClassMethod GetVideoLastFrameMethod;
|
|
FJavaClassMethod DidResolutionChangeMethod;
|
|
FJavaClassMethod UpdateVideoFrameMethod;
|
|
FJavaClassMethod UpdateMethod;
|
|
FJavaClassMethod ExecuteJavascriptMethod;
|
|
FJavaClassMethod LoadURLMethod;
|
|
FJavaClassMethod LoadStringMethod;
|
|
FJavaClassMethod StopLoadMethod;
|
|
FJavaClassMethod ReloadMethod;
|
|
FJavaClassMethod CloseMethod;
|
|
FJavaClassMethod GoBackOrForwardMethod;
|
|
FJavaClassMethod SetAndroid3DBrowserMethod;
|
|
FJavaClassMethod SetVisibilityMethod;
|
|
|
|
// FrameUpdateInfo member field ids
|
|
jclass FrameUpdateInfoClass;
|
|
jfieldID FrameUpdateInfo_Buffer;
|
|
jfieldID FrameUpdateInfo_FrameReady;
|
|
jfieldID FrameUpdateInfo_RegionChanged;
|
|
|
|
FTextureRHIRef VideoTexture;
|
|
bool bVideoTextureValid;
|
|
|
|
public:
|
|
FTextureRHIRef GetVideoTexture()
|
|
{
|
|
return VideoTexture;
|
|
}
|
|
|
|
void SetVideoTexture(FTextureRHIRef Texture)
|
|
{
|
|
FPlatformMisc::LowLevelOutputDebugStringf(TEXT("Fetch RT: SetVideoTexture: %d"), Texture.IsValid());
|
|
|
|
VideoTexture = Texture;
|
|
}
|
|
|
|
void SetVideoTextureValid(bool Condition)
|
|
{
|
|
bVideoTextureValid = Condition;
|
|
}
|
|
|
|
bool IsVideoTextureValid()
|
|
{
|
|
return bVideoTextureValid;
|
|
}
|
|
|
|
};
|
|
|
|
#endif // USE_ANDROID_JNI
|