From 15e2b88ed5ddb92401bf5c547b989f7e2a662caa Mon Sep 17 00:00:00 2001 From: David Vogel Date: Mon, 5 Feb 2024 19:00:39 +0100 Subject: [PATCH] Update the Capture.dll - Increase hardcoded number of workers to 8. - Export images temporarily, and then move them once they are fully exported. This prevents corrupt images. --- bin/capture-b/Capture.pb | 28 ++++++++++++++++++++-------- bin/capture-b/capture.dll | Bin 229376 -> 231936 bytes 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/bin/capture-b/Capture.pb b/bin/capture-b/Capture.pb index 461707a..dbc8f80 100644 --- a/bin/capture-b/Capture.pb +++ b/bin/capture-b/Capture.pb @@ -22,6 +22,10 @@ Structure GLViewportDims height.i EndStructure +Structure WorkerInfo + workerNumber.i +EndStructure + ; Returns the size of the main OpenGL rendering output. ProcedureDLL GetGLViewportSize(*dims.GLViewportDims) If Not *dims @@ -57,12 +61,15 @@ ProcedureDLL AttachProcess(Instance) CreateDirectory("mods/noita-mapcap/output/") - For i = 1 To 6 - CreateThread(@Worker(), #Null) + Static Workers = 8 + Dim WorkerInfos.WorkerInfo(Workers-1) + For i = 0 To Workers-1 + WorkerInfos(i)\workerNumber = i + CreateThread(@Worker(), @WorkerInfos(i)) Next EndProcedure -Procedure Worker(*Dummy) +Procedure Worker(*workerInfo.WorkerInfo) Protected img, x, y Repeat @@ -82,8 +89,12 @@ Procedure Worker(*Dummy) ResizeImage(img, sx, sy) EndIf - SaveImage(img, "mods/noita-mapcap/output/" + x + "," + y + ".png", #PB_ImagePlugin_PNG) - ;SaveImage(img, "" + x + "," + y + ".png", #PB_ImagePlugin_PNG) ; Test + ; Save image temporary, and only move it once it's fully exported. + ; This prevents images getting corrupted when the main process crashes. + If SaveImage(img, "mods/noita-mapcap/output/worker_" + *workerInfo\workerNumber + ".tmp", #PB_ImagePlugin_PNG) + RenameFile("mods/noita-mapcap/output/worker_" + *workerInfo\workerNumber + ".tmp", "mods/noita-mapcap/output/" + x + "," + y + ".png") + ; We can't really do anything when either SaveImage or RenameFile fails, so just silently fail. + EndIf FreeImage(img) ForEver @@ -171,11 +182,12 @@ EndProcedure ; IDE Options = PureBasic 6.04 LTS (Windows - x64) ; ExecutableFormat = Shared dll -; CursorPosition = 126 -; FirstLine = 98 +; CursorPosition = 94 +; FirstLine = 51 ; Folding = - ; Optimizer ; EnableThread ; EnableXP ; Executable = capture.dll -; Compiler = PureBasic 6.04 LTS (Windows - x86) \ No newline at end of file +; DisableDebugger +; Compiler = PureBasic 6.04 LTS - C Backend (Windows - x86) \ No newline at end of file diff --git a/bin/capture-b/capture.dll b/bin/capture-b/capture.dll index 508b4df3bf3ed71e484976a59fd6d9286de7a6b6..062608631bc1a548fa19574c5db96a4844a800c9 100644 GIT binary patch delta 22142 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 Nbvm4qAos{l{68-liHiUL delta 19983 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 E0C%3@n*aa+