#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "allheaders.h"
Input: dpix Return: same dpix (ptr), or null on error
Notes: (1) See pixClone() for definition and usage.
Input: dpixd (<optional>; can be null, or equal to dpixs, or different from dpixs) dpixs Return: dpixd, or null on error
Notes: (1) There are three cases: (a) dpixd == null (makes a new dpix; refcount = 1) (b) dpixd == dpixs (no-op) (c) dpixd != dpixs (data copy; no change in refcount) If the refcount of dpixd > 1, case (c) will side-effect these handles. (2) The general pattern of use is: dpixd = dpixCopy(dpixd, dpixs); This will work for all three cases. For clarity when the case is known, you can use: (a) dpixd = dpixCopy(NULL, dpixs); (c) dpixCopy(dpixd, dpixs); (3) For case (c), we check if dpixs and dpixd are the same size. If so, the data is copied directly. Otherwise, the data is reallocated to the correct size and the copy proceeds. The refcount of dpixd is unchanged. (4) This operation, like all others that may involve a pre-existing dpixd, will side-effect any existing clones of dpixd.
Input: width, height Return: dpix (with data allocated and initialized to 0), or null on error
Notes: (1) Makes a DPix of specified size, with the data array allocated and initialized to 0.
void dpixDestroy | ( | DPIX ** | pdpix | ) |
Input: &dpix <will be="" nulled>=""> Return: void
Notes: (1) Decrements the ref count and, if 0, destroys the dpix. (2) Always nulls the input ptr.
Input: dpix &w, &h (<optional return>="">; each can be null) Return: 0 if OK, 1 on error
Input: dpixd, dpixs Return: 0 if OK, 1 on error
Input: dpix w, h Return: 0 if OK, 1 on error
Input: fpix Return: same fpix (ptr), or null on error
Notes: (1) See pixClone() for definition and usage.
Input: fpixd (<optional>; can be null, or equal to fpixs, or different from fpixs) fpixs Return: fpixd, or null on error
Notes: (1) There are three cases: (a) fpixd == null (makes a new fpix; refcount = 1) (b) fpixd == fpixs (no-op) (c) fpixd != fpixs (data copy; no change in refcount) If the refcount of fpixd > 1, case (c) will side-effect these handles. (2) The general pattern of use is: fpixd = fpixCopy(fpixd, fpixs); This will work for all three cases. For clarity when the case is known, you can use: (a) fpixd = fpixCopy(NULL, fpixs); (c) fpixCopy(fpixd, fpixs); (3) For case (c), we check if fpixs and fpixd are the same size. If so, the data is copied directly. Otherwise, the data is reallocated to the correct size and the copy proceeds. The refcount of fpixd is unchanged. (4) This operation, like all others that may involve a pre-existing fpixd, will side-effect any existing clones of fpixd.
Input: width, height Return: fpixd (with data allocated and initialized to 0), or null on error
Notes: (1) Makes a FPix of specified size, with the data array allocated and initialized to 0.
void fpixDestroy | ( | FPIX ** | pfpix | ) |
Input: &fpix <will be="" nulled>=""> Return: void
Notes: (1) Decrements the ref count and, if 0, destroys the fpix. (2) Always nulls the input ptr.
Input: fpix &w, &h (<optional return>="">; each can be null) Return: 0 if OK, 1 on error
Input: fpixd, fpixs Return: 0 if OK, 1 on error
Input: fpix w, h Return: 0 if OK, 1 on error