Open Search
    ParallelImage Class Reference

    #include <parallelimage.h>

    Detailed Description

    This is a utility class for parallel processing of 2d data - usually images. The per pixel computations are distributed to several threads. This is intended for time consuming computations, it makes no sense to call this to clear all pixels of an image.

    Classes

    struct  ImageData
     
    class  LineJob
     
    class  PixelJob
     
    class  TileJob
     

    Static Public Member Functions

    template<typename WORKER >
    static void Process (Int width, Int height, Int tileSize, const WORKER &worker)
     

    Static Private Member Functions

    template<typename WORKER >
    static MAXON_ATTRIBUTE_NO_INLINE void Fallback (Int width, Int height, const WORKER &worker)
     

    Member Function Documentation

    ◆ Fallback()

    static MAXON_ATTRIBUTE_NO_INLINE void Fallback ( Int  width,
    Int  height,
    const WORKER &  worker 
    )
    staticprivate

    ◆ Process()

    static void Process ( Int  width,
    Int  height,
    Int  tileSize,
    const WORKER &  worker 
    )
    static

    Invokes the worker method for all pixels of the image (uses dynamic distribution).

    Parameters
    [in]widthImage width in pixels.
    [in]heightImage height in pixels.
    [in]tileSizeInitial tile size to be used (a tile will be tileSize pixels wide and tileSize pixels high)
    [in]workerLambda or object with operator (), will be called for every pixel (concurrently from different threads)
    Template Parameters
    WORKERA class containing an operator ()(Int x, Int y) used for the loop.