Hi, everyone!
I hope you are going well.
I am going to make plugin with gpu accelerated. so I have checked some SDK sample plguins.
....
prSuiteError Render(
const PrGPUFilterRenderParams* inRenderParams,
const PPixHand* inFrames,
csSDK_size_t inFrameCount,
PPixHand* outFrame)
{
if (inFrameCount < 2 || (!inFrames[0] && !inFrames[1]))
{
return suiteError_Fail;
}
....
I am sure inFrame[0] and outFrame indicate same address.
I'd like to make outFrame that is related to several pixcel of inFrame.
for example: outImg[x].x( or r) = (inImg[x - 5].x + inImg[x].x) / 2;
outImg[x].y( or g) = (inImg[x - 4].y + inImg[x - 1].y) / 2;
outImg[x].z( or b) = (inImg[x - 10].z + inImg[x - 3].z) / 2; // it is not correct code.
But If I change some pixcel data on before render, it is used changed pixcel data in the next render because inFrames[0] and outFrame indicate same address.(here I used inFrames[0] for inFrame)
So, I used inFrames[1] for inFrame data.
inFrames[1] and outFrame indicated different address together and I got correct result.
But it is only when the plugin is transition plugin. I cannot get inFrames[1] if plugin is Effect plugin.
Debugging result:
----------- effect plugin -----------
inFrameCount => 1,
inFrames[0] => exist. inFrames[1] => no exist.
----------- transition plugin -------
inFrameCount => 2,
inFrames[0] => exist.
inFrames[1] => exist.
How can I get two frames ( inFrames[0], inFrames[1]) on Effect Plugin like on Transition Plugin?
Regards,
Igor.