Download

Link Error for "UpdateTextureRegions"

Hi friends:
I Used the code from this wiki A new, community-hosted Unreal Engine Wiki - Announcements and Releases - Unreal Engine 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
Walter.

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: