|
|||||||||
|
Thread Tools | Search this Thread |
November 7th, 2005, 12:46 PM | #1 |
Major Player
Join Date: Mar 2005
Location: Brighton, England
Posts: 225
|
Anyone out there handy with the After Effects plug-in SDK?
Hi all,
I'm having a little play around with AE's plug-in interface, but I've hit a bit of a problem: For one of my filters I need to bring the image out of AE's LayerDef structure and into a user defined data type (probably an array of PF_Pixels, but I'm not sure at the moment) so that I don't need to use the iterate() function in order to traverse the image. However, I can't work out a few simple things having not used the API before and having found it difficult to obtain useful info. What I need to do is write a couple of functions to get a pixel from the current layer by x,y co-ordinate and put a pixel into the output buffer in the same way. Also, I'm having trouble finding the current layer in the In_data structure that I'm passed - the documentation states that in the params[] array param[0] is always the current layer, but param[0] contains a PF_Paramdef value, not a PF_Layerdef, as you would expect to find for a layer, current or otherwise... I know these are probably very easy to do once you have the knowledge but I'm pretty stuck. My C++ skills should still be good enough (if a touch rusty!) to handle coding the effect once I've got the data in a format outside of AE's representation, but I'm stuck until I can do that - any help would be most gratefully received!!! The functions I've written for getting and putting pixels I'll include below, but I'm unable to test them as I can't get at the current layer :( In Visual Studio (C++) on a PC the functions are these: PF_Pixel *getPixel8(PF_LayerDef &def, int x, int y) { return (PF_Pixel*)((char*)def.data + (y * def.rowbytes) + (x * sizeof(PF_Pixel))); } void putPixel8(PF_LayerDef def, int x, int y, PF_Pixel pix) { A_long pinter = (char)pix.alpha + (char)pix.red + (char)pix.green + (char)pix.blue; def.data = (PF_Pixel*)(pinter + (y * def.rowbytes) + (x * sizeof(PF_Pixel))); return; } Thanks guys, looking forward to getting the benefit of some serious techie knowledge!.... |
| ||||||
|
|