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

Function BeginLoad

engine/resource/src/async/load_queue_threaded.cpp:161–189  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

159 }
160
161 HRequest BeginLoad(HQueue queue, const char* name, const char* canonical_path, PreloadInfo* info)
162 {
163 assert(name != 0);
164 assert(name[0] != 0);
165 assert(canonical_path != 0);
166 assert(canonical_path[0] != 0);
167
168 dmMutex::ScopedLock lk(queue->m_Mutex);
169
170 // Refuse more if full.
171 if ((queue->m_Front - queue->m_Back) == QUEUE_SLOTS)
172 return 0;
173
174 if (queue->m_Loaded == queue->m_Front)
175 {
176 // The worker is sleeping waiting for request, wake it up
177 dmConditionVariable::Signal(queue->m_WakeupCond);
178 }
179
180 Request* req = &queue->m_Request[(queue->m_Front++) % QUEUE_SLOTS];
181 req->m_Name = name;
182 req->m_CanonicalPath = canonical_path;
183 req->m_ResourceSize = 0;
184
185 req->m_PreloadInfo = *info;
186 req->m_Result.m_LoadResult = dmResource::RESULT_PENDING;
187
188 return req;
189 }
190
191 Result EndLoad(HQueue queue, HRequest request, void** buf, uint32_t* buffer_size, uint32_t* resource_size, LoadResult* load_result)
192 {

Callers

nothing calls this directly

Calls 2

assertFunction · 0.50
SignalFunction · 0.50

Tested by

no test coverage detected