MCPcopy Create free account
hub / github.com/ErrorAtLine0/infinipaint / get_display_data

Method get_display_data

src/ResourceManager.cpp:153–178  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

151}
152
153ResourceDisplay* ResourceManager::get_display_data(const NetworkingObjects::NetObjID& fileID) {
154 auto loadedDisplayIt = displays.find(fileID);
155 if(loadedDisplayIt != displays.end())
156 return loadedDisplayIt->second.get();
157
158 NetworkingObjects::NetObjTemporaryPtr<ResourceData> resourceData = world.netObjMan.get_obj_temporary_ref_from_id<ResourceData>(fileID);
159 if(resourceData == NetworkingObjects::NetObjTemporaryPtr<ResourceData>())
160 return nullptr;
161
162 auto imgResource(std::make_unique<ImageResourceDisplay>());
163 if(imgResource->load(*this, resourceData->name, resourceData->data)) {
164 displays.emplace(fileID, std::move(imgResource));
165 return displays[fileID].get();
166 }
167
168 auto svgResource(std::make_unique<SvgResourceDisplay>());
169 if(svgResource->load(*this, resourceData->name, resourceData->data)) {
170 displays.emplace(fileID, std::move(svgResource));
171 return displays[fileID].get();
172 }
173
174 auto fileResource(std::make_unique<FileResourceDisplay>());
175 fileResource->load(*this, resourceData->name, resourceData->data);
176 displays.emplace(fileID, std::move(fileResource));
177 return displays[fileID].get();
178}
179
180std::unordered_map<NetworkingObjects::NetObjID, ResourceData> ResourceManager::copy_resource_set_to_map(const std::unordered_set<NetworkingObjects::NetObjID>& resourceSet) const {
181 std::unordered_map<NetworkingObjects::NetObjID, ResourceData> toRet;

Callers 5

drawMethod · 0.80
updateMethod · 0.80

Calls 4

findMethod · 0.45
endMethod · 0.45
getMethod · 0.45
loadMethod · 0.45

Tested by

no test coverage detected