[GEM-dev] CPPExtern.h/.cpp question

Johannes M Zmoelnig zmoelnig at iem.at
Tue Oct 12 20:28:50 CEST 2004


James Tittle II wrote:

> CPPEXTERN_NEW_WITH_GIMME and *_WITH_ARGS:  what did you mean by "manual" 
> type-checking?  I've been looking at the different usages throughout the

this means, you have to check the types of the atoms, whether they fit 
your assumption, if you want to make sure, that the "correct" arguments 
are supplied by the user.
if someone types [GEMglProgramEnvParamter4dARB foo bar 1 2 3] it is your 
responsibility to tell the user, that this won't work.
> 
> ...If pd only allows 5 typechecked arguments, does that mean I can't 
> make a CPPEXTERN_NEW_WITH_SIX_ARGS?

exactly.

"typechecked" means, that pd checks the correct types for you, and if 
the arguments won't fit in, creation of the object is denied.

with c-externals one could always return a NULL-pointer when the manual 
typecheck fails, however this is not possible in C++ (we could try to 
utilize some exception that is thrown when creation fails...)

> 
> ...If I use the GIMME method, does that limit the number of inlets I can 
> deal with?  Fr'instance, for this current wrapper 
> "GEMglProgramEnvParameter4dARB", I'd like to have seperate inlets for 
> not only target and index, but also x, y, z, w:  after all, there is 
> another call "GEMglProgramEnvParameter4dvARB" that would accept target, 
> index, and a vector of x,y,z,w (and therefore only need 3 inlets)...I 
> ask this because it seems that some GIMME-based externs use a "params" 
> message, and I don't want to require non-vector accepting GL calls to 
> accept vectors...

no, there is no relationship between the number of type-punned (oh 
another word!) inlets and the nunber of (type-checked) arguments.

probably it would be easiest, to not use any arguments at all and supply 
all parameters via inlets.

mfg.as.dr
IOhannes




More information about the GEM-dev mailing list