THotPDF.RenderLoadedPagesParallelOrdered Method

Compiles and renders loaded pages concurrently while delivering completed bitmaps in input order through a bounded calling-thread callback

Declaration

function RenderLoadedPagesParallelOrdered(
    const PageIndices: array of Integer; DPI, MaxConcurrency,
    OutputQueueDepth: Integer; Callback: THPDFParallelRenderPageEvent): Integer; overload;

function RenderLoadedPagesParallelOrdered(
    const PageIndices: array of Integer; DPI, MaxConcurrency,
    OutputQueueDepth: Integer; Callback: THPDFParallelRenderPageEvent;
    out Info: THPDFParallelRenderPipelineInfo): Integer; overload;

Callback and ownership

Callback runs serially on the calling thread with the zero-based input position, requested page index, borrowed bitmap, and cancellation flag

The bitmap is valid only for the callback duration and is released immediately after the callback returns, so copy or encode it inside the callback when the result must outlive that invocation

Set Cancel to stop claiming new pages, wake blocked workers, join in-flight work, release unpublished results, and return the number of callbacks completed

Backpressure

OutputQueueDepth limits completed bitmaps including the bitmap active in the callback; values below one select the effective worker count and values above the page count are clamped

The scheduler reserves output capacity for the next required input position, so later pages cannot fill the queue and block ordered progress when an earlier page compiles more slowly

With PeakMemorySchedulerEnabled, requested parallelism is reduced from the largest page estimate and currently available global budget, and every page reservation remains active from work claim until its borrowed bitmap leaves the callback

Queued output therefore competes fairly with active compilation and playback for the same process-wide budget, while cancellation or failure releases unpublished reservations before joining workers

The callback must not mutate or destroy the document while workers are active

THPDFParallelRenderPipelineInfo · Display Lists and Print Production