// Copyright Epic Games, Inc. All Rights Reserved. #include "DatasmithFacadeTexture.h" #include "DatasmithFacadeScene.h" #include "Misc/SecureHash.h" FDatasmithFacadeTexture::FDatasmithFacadeTexture(const TCHAR* InElementName) : FDatasmithFacadeElement(FDatasmithSceneFactory::CreateTexture(InElementName)) {} FDatasmithFacadeTexture::FDatasmithFacadeTexture(TSharedRef InTextureElement) : FDatasmithFacadeElement(InTextureElement) {} const TCHAR* FDatasmithFacadeTexture::GetFile() const { return GetDatasmithTextureElement()->GetFile(); } void FDatasmithFacadeTexture::SetFile( const TCHAR* File ) { GetDatasmithTextureElement()->SetFile( File ); } void FDatasmithFacadeTexture::SetData( const uint8* InData, uint32 InDataSize, ETextureFormat InFormat ) { GetDatasmithTextureElement()->SetData( InData, InDataSize, static_cast( InFormat ) ); } const uint8* FDatasmithFacadeTexture::GetData( uint32& OutDataSize, ETextureFormat& OutFormat ) const { EDatasmithTextureFormat OutInternalFormat; const uint8* Data = GetDatasmithTextureElement()->GetData( OutDataSize, OutInternalFormat ); OutFormat = static_cast( OutInternalFormat ); return Data; } void FDatasmithFacadeTexture::GetFileHash( TCHAR OutBuffer[33], size_t BufferSize ) const { FString HashString = LexToString( GetDatasmithTextureElement()->GetFileHash() ); FCString::Strncpy( OutBuffer, *HashString, BufferSize ); } void FDatasmithFacadeTexture::SetFileHash( const TCHAR* Hash ) { FMD5Hash Md5Hash; LexFromString( Md5Hash, Hash ); GetDatasmithTextureElement()->SetFileHash( Md5Hash ); } FDatasmithFacadeTexture::ETextureMode FDatasmithFacadeTexture::GetTextureMode() const { return static_cast( GetDatasmithTextureElement()->GetTextureMode()); } void FDatasmithFacadeTexture::SetTextureMode( ETextureMode Mode ) { GetDatasmithTextureElement()->SetTextureMode( static_cast( Mode ) ); } FDatasmithFacadeTexture::ETextureFilter FDatasmithFacadeTexture::GetTextureFilter() const { return static_cast( GetDatasmithTextureElement()->GetTextureFilter() ); } void FDatasmithFacadeTexture::SetTextureFilter( ETextureFilter Filter ) { GetDatasmithTextureElement()->SetTextureFilter( static_cast( Filter ) ); } FDatasmithFacadeTexture::ETextureAddress FDatasmithFacadeTexture::GetTextureAddressX() const { return static_cast( GetDatasmithTextureElement()->GetTextureAddressX() ); } void FDatasmithFacadeTexture::SetTextureAddressX( ETextureAddress Mode ) { GetDatasmithTextureElement()->SetTextureAddressX( static_cast( Mode ) ); } FDatasmithFacadeTexture::ETextureAddress FDatasmithFacadeTexture::GetTextureAddressY() const { return static_cast( GetDatasmithTextureElement()->GetTextureAddressY() ); } void FDatasmithFacadeTexture::SetTextureAddressY( ETextureAddress Mode ) { GetDatasmithTextureElement()->SetTextureAddressY( static_cast( Mode ) ); } bool FDatasmithFacadeTexture::GetAllowResize() const { return GetDatasmithTextureElement()->GetAllowResize(); } void FDatasmithFacadeTexture::SetAllowResize( bool bAllowResize ) { GetDatasmithTextureElement()->SetAllowResize( bAllowResize ); } float FDatasmithFacadeTexture::GetRGBCurve() const { return GetDatasmithTextureElement()->GetRGBCurve(); } void FDatasmithFacadeTexture::SetRGBCurve( const float InRGBCurve ) { GetDatasmithTextureElement()->SetRGBCurve( InRGBCurve ); } FDatasmithFacadeTexture::EColorSpace FDatasmithFacadeTexture::GetSRGB() const { return static_cast( GetDatasmithTextureElement()->GetSRGB() ); } void FDatasmithFacadeTexture::SetSRGB( EColorSpace Option ) { GetDatasmithTextureElement()->SetSRGB( static_cast( Option ) ); } TSharedRef FDatasmithFacadeTexture::GetDatasmithTextureElement() const { return StaticCastSharedRef( InternalDatasmithElement ); }