If a TextureRenderTarget2D is used in a code class, the build of the project will fail with an error stating that the UTextureRenderTarget base class is undefined. The line #include "Engine/TextureRenderTarget.h" needs to be added to TextureRenderTarget2D.h in order to build the project.

Steps to Reproduce
  1. Create a new project using the First Person Code template.
  2. Build the project in Visual Studio.
  3. Open the project in the Editor.
  4. Add a new code class to the project derived from AHUD.
  5. In the header file add the following include: #include "Engine/TextureRenderTarget2D.h"
  6. In the class section of the header file, add the following lines:
    	virtual void DrawHUD() override;
    	UTextureRenderTarget2D* MiniMapTex;
  7. In the .cpp file add the following code:
    #include "CanvasItem.h"
    void AMyHUD::DrawHUD()
    	FVector2D MiniMapDrawPosition(0, 0);
    	FCanvasTileItem MiniMapTileItem(MiniMapDrawPosition, MiniMapTex->Resource, FLinearColor::White);
  8. Build the project in Visual Studio.

The build fails with the following error:

1>D:\Main-Builds\UE4\Engine\Source\Runtime\Engine\Classes\Engine/TextureRenderTarget2D.h(17): error C2504: 'UTextureRenderTarget' : base class undefined

The build completes successfully.

Have Comments or More Details?

Head over to the existing AnswerHub thread and let us know what's up.

Login to Vote

Target Fix4.6
Fix Commit2357022
Release Commit2357022
CreatedNov 5, 2014
ResolvedNov 12, 2014
UpdatedFeb 5, 2017