IccMAX 2.1.27
Color Profile Tools
Loading...
Searching...
No Matches
CIccOpDefSubElement Class Reference
+ Inheritance diagram for CIccOpDefSubElement:
+ Collaboration diagram for CIccOpDefSubElement:

Public Member Functions

virtual int ArgsPushed (CIccMpeCalculator *pCalc, SIccCalcOp &op)
 
virtual int ArgsUsed (CIccMpeCalculator *pCalc, SIccCalcOp &op)
 
virtual void Describe (SIccCalcOp &op, std::string &desc, int nVerboseness)
 
virtual bool Exec (SIccCalcOp *op, SIccOpState &os)
 
virtual bool IsValid (CIccMpeCalculator *pCalc, SIccCalcOp &op)
 

Detailed Description

Member Function Documentation

◆ ArgsPushed()

virtual int IIccOpDef::ArgsPushed ( CIccMpeCalculator pCalc,
SIccCalcOp op 
)
inlinevirtualinherited
297{ return op.ArgsPushed(pCalc);}
icUInt16Number ArgsPushed(CIccMpeCalculator *pCalc)
Definition IccMpeCalc.cpp:2354

References SIccCalcOp::ArgsPushed().

+ Here is the call graph for this function:

◆ ArgsUsed()

virtual int IIccOpDef::ArgsUsed ( CIccMpeCalculator pCalc,
SIccCalcOp op 
)
inlinevirtualinherited
298{ return op.ArgsUsed(pCalc);}
icUInt16Number ArgsUsed(CIccMpeCalculator *pCalc)
Definition IccMpeCalc.cpp:2222

References SIccCalcOp::ArgsUsed().

+ Here is the call graph for this function:

◆ Describe()

virtual void IIccOpDef::Describe ( SIccCalcOp op,
std::string &  desc,
int  nVerboseness 
)
inlinevirtualinherited
300{op.Describe(desc, nVerboseness);}
void Describe(std::string &desc, int nVerboseness=100)
Definition IccMpeCalc.cpp:1787

References SIccCalcOp::Describe().

+ Here is the call graph for this function:

◆ Exec()

virtual bool CIccOpDefSubElement::Exec ( SIccCalcOp op,
SIccOpState os 
)
inlinevirtual

Reimplemented from IIccOpDef.

356 {
357 CIccSubCalcApply *pElemApply = os.pApply->GetApply(op->data.select.v1);
358 if (!pElemApply)
359 return false;
360
361 icUInt16Number nSrc = pElemApply->NumInputChannels();
362 icUInt16Number nDst = pElemApply->NumOutputChannels();
363
364 size_t ss = os.pStack->size();
365 if (nSrc>ss)
366 return false;
367 icFloatNumber *s = &(*os.pStack)[ss - nSrc];
368
369 if (os.pScratch->size()<(size_t)nDst)
370 os.pScratch->resize(nDst);
371
372 icFloatNumber *d = &(*os.pScratch)[0];
373
374 pElemApply->Apply(d, s);
375
376 int ns = (int)ss + (int)nDst - (int)nSrc;
377
378 if (ns != ss)
379 os.pStack->resize(ns);
380
381 s = &(*os.pStack)[ns - nDst];
382 memcpy(s, d, nDst*sizeof(icFloatNumber));
383 return true;
384 }
unsigned short icUInt16Number
Definition icProfileHeader.h:256
CIccFloatVector * pScratch
Definition IccMpeCalc.h:276
CIccFloatVector * pStack
Definition IccMpeCalc.h:275
CIccApplyMpeCalculator * pApply
Definition IccMpeCalc.h:274
float icFloatNumber
Definition IccDefs.h:101
union SIccCalcOp::@1 data
Definition IccMpeCalc.h:424
icUInt16Number NumInputChannels()
Definition IccMpeCalc.h:429
void Apply(icFloatNumber *pDestPixel, const icFloatNumber *pSrcPixel)
Definition IccMpeCalc.h:432
icUInt16Number NumOutputChannels()
Definition IccMpeCalc.h:430
CIccSubCalcApply * GetApply(icUInt16Number index)
Definition IccMpeCalc.cpp:5052

References CIccSubCalcApply::Apply(), CIccApplyMpeCalculator::GetApply(), CIccSubCalcApply::NumInputChannels(), CIccSubCalcApply::NumOutputChannels(), SIccOpState::pApply, SIccOpState::pScratch, and SIccOpState::pStack.

+ Here is the call graph for this function:

◆ IsValid()

virtual bool IIccOpDef::IsValid ( CIccMpeCalculator pCalc,
SIccCalcOp op 
)
inlinevirtualinherited

Reimplemented in CIccOpDefInvalid.

302{ return op.IsValidOp(pCalc); }
static bool IsValidOp(icSigCalcOp sig)
Definition IccMpeCalc.cpp:2073

References SIccCalcOp::IsValidOp().

+ Here is the call graph for this function:

The documentation for this class was generated from the following file: