MCPcopy Create free account
hub / github.com/defold/defold / SetResource

Function SetResource

engine/resource/src/resource.cpp:1212–1267  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1210}
1211
1212Result SetResource(HFactory factory, uint64_t hashed_name, void* data, uint32_t datasize)
1213{
1214 DM_PROFILE(__FUNCTION__);
1215
1216 dmMutex::ScopedLock lk(factory->m_LoadMutex);
1217
1218 assert(data);
1219
1220 ResourceDescriptor* rd = factory->m_Resources->Get(hashed_name);
1221 if (!rd) {
1222 return RESULT_RESOURCE_NOT_FOUND;
1223 }
1224
1225 ResourceType* resource_type = (ResourceType*) rd->m_ResourceType;
1226 if (!resource_type->m_RecreateFunction)
1227 return RESULT_NOT_SUPPORTED;
1228
1229 assert(data);
1230 assert(datasize > 0);
1231
1232 ResourceRecreateParams params;
1233 params.m_Factory = factory;
1234 params.m_Type = resource_type;
1235 params.m_Context = resource_type->m_Context;
1236 params.m_Message = 0;
1237 params.m_Buffer = data;
1238 params.m_BufferSize = datasize;
1239 params.m_Resource = rd;
1240 params.m_Filename = 0;
1241 params.m_FilenameHash = hashed_name;
1242 Result create_result = (Result)resource_type->m_RecreateFunction(&params);
1243 if (create_result == RESULT_OK)
1244 {
1245 if (factory->m_ResourceReloadedCallbacks)
1246 {
1247 for (uint32_t i = 0; i < factory->m_ResourceReloadedCallbacks->Size(); ++i)
1248 {
1249 ResourceReloadedCallbackPair& pair = (*factory->m_ResourceReloadedCallbacks)[i];
1250 ResourceReloadedParams params;
1251 params.m_UserData = pair.m_UserData;
1252 params.m_Resource = rd;
1253 params.m_Type = resource_type;
1254 params.m_Filename = 0;
1255 params.m_FilenameHash = hashed_name;
1256 pair.m_Callback(&params);
1257 }
1258 }
1259 return RESULT_OK;
1260 }
1261 else
1262 {
1263 return create_result;
1264 }
1265
1266 return RESULT_OK;
1267}
1268
1269Result SetResource(HFactory factory, uint64_t hashed_name, void* message)

Callers 15

StreamResourceCreateFunction · 0.50
SetTextureResourceFunction · 0.50
ResAnimationSetCreateFunction · 0.50
ResCreateSceneDescFunction · 0.50
ResRenderPrototypeCreateFunction · 0.50
ResMaterialCreateFunction · 0.50
ResDisplayProfilesCreateFunction · 0.50
ResFontCreateFunction · 0.50
ResFontRecreateFunction · 0.50
ResRenderTargetCreateFunction · 0.50
ResTextureSetCreateFunction · 0.50

Calls 3

assertFunction · 0.50
GetMethod · 0.45
SizeMethod · 0.45

Tested by 1

StreamResourceCreateFunction · 0.40