Hi, "William Skaggs" <weskaggs@xxxxxxxxxxxxxxxxxxx> writes: > Sven: >> What is akward about it? > > Passing, say, an ExifData struct to a plug-in is awkward. Calling a > function and giving it a pointer is simpler, and much faster too. > And then there's all the extra baggage of registering a plug-in etc. I agree that for a C plug-in a library is easier to use but we will also have to care about plug-ins written in other languages. Making the functionality available in the PDB solves this nicely. What we usually do is to provide wrappers that let the procedure call appear as a simple function call. > Sven: >> The JPEG plug-in would have to change the orientation tag if it's >> rotating the image on load, wouldn't it? It would have to do that >> before calling gimp_metadata_store_exif(). > > It can do that if it wants to, but there is no requirement. The > orientation needs to be set to "top-left" when an image is saved, > but it doesn't really matter whether the change is made upon loading > or upon saving. If nothing else, doing it on saving prevents the > user from setting things incorrectly in the metadata editor. Well, how is the save plug-in supposed to know that it needs to change the orientation field upon saving? Only when the image is rotated, during load, is this information available. Or am I missing something here? Sven