From 1936dc100c3f5a514628bbe18066ef68d81c4ab2 Mon Sep 17 00:00:00 2001 From: David Vogel Date: Thu, 11 Apr 2024 11:39:35 +0200 Subject: [PATCH] Add error handling to glReadPixels --- bin/capture-b/Capture.pb | 24 +++++++----------------- bin/capture-b/capture.dll | Bin 231936 -> 231936 bytes 2 files changed, 7 insertions(+), 17 deletions(-) diff --git a/bin/capture-b/Capture.pb b/bin/capture-b/Capture.pb index 5fe0d8c..11fdb64 100644 --- a/bin/capture-b/Capture.pb +++ b/bin/capture-b/Capture.pb @@ -132,8 +132,6 @@ ProcedureDLL Capture(*capRect.RECT, x.l, y.l, sx.l, sy.l) ProcedureReturn #False EndIf - ;Protected *pixelBuf = AllocateMemory(3 * width * height) - hDC = StartDrawing(ImageOutput(imageID)) If Not hDC FreeImage(imageID) @@ -142,19 +140,11 @@ ProcedureDLL Capture(*capRect.RECT, x.l, y.l, sx.l, sy.l) *pixelBuffer = DrawingBuffer() glReadPixels_(*capRect\left, *capRect\top, capWidth, capHeight, #GL_BGR_EXT, #GL_UNSIGNED_BYTE, *pixelBuffer) - -; For y = 0 To *capRect\height - 1 -; *Line.Pixel = Buffer + Pitch * y -; -; For x = 0 To *capRect\width - 1 -; -; *Line\Pixel = ColorTable(pos2) ; Write the pixel directly to the memory ! -; *Line+Offset -; -; ; You can try with regular plot to see the speed difference -; ; Plot(x, y, ColorTable(pos2)) -; Next -; Next + If glGetError_() <> #GL_NO_ERROR + StopDrawing() + FreeImage(imageID) + ProcedureReturn #False + EndIf StopDrawing() @@ -188,8 +178,8 @@ EndProcedure ; IDE Options = PureBasic 6.04 LTS (Windows - x64) ; ExecutableFormat = Shared dll -; CursorPosition = 116 -; FirstLine = 99 +; CursorPosition = 99 +; FirstLine = 72 ; Folding = - ; Optimizer ; EnableThread diff --git a/bin/capture-b/capture.dll b/bin/capture-b/capture.dll index b51cbc1b5e4dcffe41e8c6c50219309a133698ac..3fc576c5ed59d6c1dba7b040e7460909ecdfda3b 100644 GIT binary patch delta 7647 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 M6I#ok(Cm-+FIa;)tpET3 delta 7635 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 VnyIpLi{|_0H4kf^i+Iwe{U2A*e(eAN