MCPcopy Create free account
hub / github.com/crosspoint-reader/crosspoint-reader / restoreBwBuffer

Method restoreBwBuffer

lib/GfxRenderer/GfxRenderer.cpp:1846–1871  ·  view source on GitHub ↗

* This can only be called if `storeBwBuffer` was called prior to the grayscale render. * It should be called to restore the BW buffer state after grayscale rendering is complete. * Uses chunked restoration to match chunked storage. */

Source from the content-addressed store, hash-verified

1844 * Uses chunked restoration to match chunked storage.
1845 */
1846void GfxRenderer::restoreBwBuffer() {
1847 // Check if all chunks are allocated
1848 bool missingChunks = false;
1849 for (const auto& bwBufferChunk : bwBufferChunks) {
1850 if (!bwBufferChunk) {
1851 missingChunks = true;
1852 break;
1853 }
1854 }
1855
1856 if (missingChunks) {
1857 freeBwBufferChunks();
1858 return;
1859 }
1860
1861 for (size_t i = 0; i < bwBufferChunks.size(); i++) {
1862 const size_t offset = i * BW_BUFFER_CHUNK_SIZE;
1863 const size_t chunkSize = std::min(BW_BUFFER_CHUNK_SIZE, static_cast<size_t>(frameBufferSize - offset));
1864 memcpy(frameBuffer + offset, bwBufferChunks[i], chunkSize);
1865 }
1866
1867 display.cleanupGrayscaleBuffers(frameBuffer);
1868
1869 freeBwBufferChunks();
1870 LOG_DBG("GFX", "Restored and freed BW buffer chunks");
1871}
1872
1873/**
1874 * Cleanup grayscale buffers using the current frame buffer.

Callers 3

renderContentsMethod · 0.80
renderAntiAliasedFunction · 0.80
takeScreenshotMethod · 0.80

Calls 2

sizeMethod · 0.45

Tested by

no test coverage detected