UE4 UE5

【UE4】【UE5】FTexture2DRHIRefとFRHITexture2Dのポインタ

「FTexture2DRHIRef」(または「TRefCountPtr」)の型は「FRHITexture2D *」に変換できるのですが
以下のコードはWIndowsのVisualStudio2019では通るのですがLinuxのClangの場合ではコンパイルエラーになります

FRHITexture2D* InColorRHI;
FTexture2DRHIRef Texture;
// 代入処理とか

FRHITexture2D* BaseFisheyeRHI = bFisheyeDownsample ? Texture : InFisheyeColorRHI;


キャストを行うか正しくは以下のようにGetRefer

FRHITexture2D* BaseFisheyeRHI = bFisheyeDownsample ? Texture.GetReference() : InFisheyeColorRHI;

FTexture2DRHIRef型のGetReferenceメソッドは、基盤となるFRHITexture2Dオブジェクトへの生のポインタを返します。これにより、さらにキャストすることなく、コード内で直接ポインタを使用することができます。

キャスティングは予期せぬ動作を引き起こすことがあるため、正しく安全に使用することが重要です。
例えば、FTexture2DRHIRefオブジェクトが初期化されていない場合、GetReferenceメソッドはヌルポインタを返し、FRHITexture2Dオブジェクトにアクセスしようとすると、ヌル参照例外が発生する可能性があります。

-UE4, UE5