ALERROR CUniverse::InitImages (SDesignLoadCtx &Ctx, CXMLElement *pImages, CResourceDb &Resources) // InitImages // // Loads all images { ALERROR error; // Nothing to do if we don't want to load resources if (Ctx.bNoResources) return NOERROR; // Figure out if we've got a special folder for the images CString sRoot = pImages->GetAttribute(FOLDER_ATTRIB); Ctx.sFolder = sRoot; #ifdef DEBUG_TIME_IMAGE_LOAD CTimeDate StartTime(CTimeDate::Now); #endif // Load all images for (int i = 0; i < pImages->GetContentElementCount(); i++) { CXMLElement *pItem = pImages->GetContentElement(i); if (error = LoadImage(Ctx, pItem)) return error; } // Restore folder Ctx.sFolder = NULL_STR; #ifdef DEBUG_TIME_IMAGE_LOAD { CTimeDate StopTime(CTimeDate::Now); CTimeSpan Timing = timeSpan(StartTime, StopTime); CString sTime = Timing.Format(CString()); kernelSetDebugLog("Time to load images: "); kernelSetDebugLog(sTime.GetASCIIZPointer()); kernelSetDebugLog("\n"); } #endif return NOERROR; }
void kernelCleanUp (void) // KernelCleanUp // // Must be called for each thread to clean up { if (InterlockedDecrement(&g_iGlobalInit) == 0) { if (g_dwKernelFlags & KERNEL_FLAG_INTERNETS) ::WSACleanup(); // Clean up strings CString::INTStringCleanUp(); // Done logging kernelSetDebugLog(NULL, FALSE); // Clean up critical section DeleteCriticalSection(&g_csKernel); } ASSERT(g_iGlobalInit >= 0); }
void kernelClearDebugLog (void) // kernerClearDebugLog // // Stops the debug log { kernelSetDebugLog(NULL); }
ALERROR kernelSetDebugLog (const CString &sFilespec, bool bAppend) // kernelSetDebugLog // // Sets the debug log file { CTextFileLog *pLog = new CTextFileLog(sFilespec); return kernelSetDebugLog(pLog, bAppend, true); }