// Set our clip preferences static OfxStatus getClipPreferences( OfxImageEffectHandle effect, OfxPropertySetHandle inArgs, OfxPropertySetHandle outArgs) { // retrieve any instance data associated with this effect MyInstanceData *myData = getMyInstanceData(effect); // get the component type and bit depth of our main input int bitDepth; bool isRGBA; ofxuClipGetFormat(myData->sourceClip, bitDepth, isRGBA, true); // get the unmapped clip component // get the strings used to label the various bit depths const char *bitDepthStr = bitDepth == 8 ? kOfxBitDepthByte : (bitDepth == 16 ? kOfxBitDepthShort : kOfxBitDepthFloat); const char *componentStr = isRGBA ? kOfxImageComponentRGBA : kOfxImageComponentAlpha; // set out output to be the same same as the input, component and bitdepth gPropHost->propSetString(outArgs, "OfxImageClipPropComponents_Output", 0, componentStr); if(gHostSupportsMultipleBitDepths) gPropHost->propSetString(outArgs, "OfxImageClipPropDepth_Output", 0, bitDepthStr); // if a general effect, we may have a mask input, check that for types if(myData->isGeneralEffect) { if(ofxuIsClipConnected(effect, "Mask")) { // set the mask input to be a single channel image of the same bitdepth as the source gPropHost->propSetString(outArgs, "OfxImageClipPropComponents_Mask", 0, kOfxImageComponentAlpha); if(gHostSupportsMultipleBitDepths) gPropHost->propSetString(outArgs, "OfxImageClipPropDepth_Mask", 0, bitDepthStr); } } return kOfxStatOK; }
// Set our clip preferences static OfxStatus getClipPreferences( OfxImageEffectHandle effect, OfxPropertySetHandle /*inArgs*/, OfxPropertySetHandle outArgs) { // retrieve any instance data associated with this effect MyInstanceData *myData = getMyInstanceData(effect); // get the component type and bit depth of our main input int bitDepth; bool isRGBA; ofxuClipGetFormat(myData->sourceClip, bitDepth, isRGBA, true); // get the unmapped clip component // get the strings used to label the various bit depths const char *bitDepthStr = bitDepth == 8 ? kOfxBitDepthByte : (bitDepth == 16 ? kOfxBitDepthShort : kOfxBitDepthFloat); const char *componentStr = isRGBA ? kOfxImageComponentRGBA : kOfxImageComponentAlpha; // set out output to be the same same as the input, component and bitdepth gPropHost->propSetString(outArgs, "OfxImageClipPropComponents_Output", 0, componentStr); if(gHostSupportsMultipleBitDepths) gPropHost->propSetString(outArgs, "OfxImageClipPropDepth_Output", 0, bitDepthStr); return kOfxStatOK; }