Link Error for "UpdateTextureRegions"

Hi friends:
I Used the code from this wiki A new, community-hosted Unreal Engine Wiki - Announcements - Epic Developer Community Forums to update texture for each frame, which is

void UpdateTextureRegions(UTexture2D* Texture, int32 MipIndex, uint32 NumRegions, FUpdateTextureRegion2D* Regions, uint32 SrcPitch, uint32 SrcBpp, uint8* SrcData, bool bFreeData)
{
if (Texture->Resource)
{
struct FUpdateTextureRegionsData
{

I found this piece of code is almost same with the UTexture2D’s member function UTextue2d::UpdateTextureRegions, but during building, xcode just report this:

Undefined symbols for architecture x86_64:
“FRHIResource::Bypass()”, referenced from:
FRHIResource::Release() const in ScreenWall.cpp.o
“FRHIResource::PendingDeletes”, referenced from:
FRHIResource::Release() const in ScreenWall.cpp.o
“GetImmediateCommandList_ForRenderCommand()”, referenced from:
AScreenWall::UpdateTextureRegions(UTexture2D*, int, unsigned int, FUpdateTextureRegion2D*, unsigned int, unsigned int, unsigned char*, bool)::EURCMacro_UpdateTextureRegionsData::DoTask(ENamedThreads::Type, TRefCountPtr<FGraphEvent> const&) in ScreenWall.cpp.o
“_GRHICommandList”, referenced from:
AScreenWall::UpdateTextureRegions(UTexture2D*, int, unsigned int, FUpdateTextureRegion2D*, unsigned int, unsigned int, unsigned char*, bool)::EURCMacro_UpdateTextureRegionsData::DoTask(ENamedThreads::Type, TRefCountPtr<FGraphEvent> const&) in ScreenWall.cpp.o
“FRHICommandListExecutor::ExecuteList(FRHICommandListImmediate&)”, referenced from:
AScreenWall::UpdateTextureRegions(UTexture2D*, int, unsigned int, FUpdateTextureRegion2D*, unsigned int, unsigned int, unsigned char*, bool)::EURCMacro_UpdateTextureRegionsData::DoTask(ENamedThreads::Type, TRefCountPtr<FGraphEvent> const&) in ScreenWall.cpp.o
“UpdateTexture2D_Internal(FRHITexture2D*, unsigned int, FUpdateTextureRegion2D const&, unsigned int, unsigned char const*)”, referenced from:
AScreenWall::UpdateTextureRegions(UTexture2D*, int, unsigned int, FUpdateTextureRegion2D*, unsigned int, unsigned int, unsigned char*, bool)::EURCMacro_UpdateTextureRegionsData::DoTask(ENamedThreads::Type, TRefCountPtr<FGraphEvent> const&) in ScreenWall.cpp.o
“_GIsThreadedRendering”, referenced from:
AScreenWall::UpdateTextureRegions(UTexture2D*, int, unsigned int, FUpdateTextureRegion2D*, unsigned int, unsigned int, unsigned char*, bool) in ScreenWall.cpp.o
“_GMainThreadBlockedOnRenderThread”, referenced from:
AScreenWall::UpdateTextureRegions(UTexture2D*, int, unsigned int, FUpdateTextureRegion2D*, unsigned int, unsigned int, unsigned char*, bool) in ScreenWall.cpp.o
ld: symbol(s) not found for architecture x86_64

What should I do to get rid of these link errors, anyone can help?

Thanks
.

ping, can anyone help…

In your module’s Build.cs script, you need to add “RenderCore” to your PublicDependencyModuleNames.



        PublicDependencyModuleNames.AddRange(
			new string] { 
				"Core", 
			        **... <snipped>**
				"RenderCore" 
			}
		);
		


(Note I snipped some out of there, so you don’t want to copy that whole block, just add “RenderCore” to the end of the list - make sure the preceeding entry has a comma.)

and “RHI”.

Ah right, I already had that, so didn’t notice it was needed. Good to know :slight_smile: