I have a fix in review (https://github.com/OpenImageIO/oiio/pull/1665
<https://github.com/OpenImageIO/oiio/pull/1665>) that will make it legal to
copy-construct an ImageBuf where the source wraps an application buffer (the
newly constructed IB also will wrap the same buffer).
-- lg
> On Apr 11, 2017, at 12:51 AM, Anders Langlands <[email protected]>
> wrote:
>
> Thanks Larry, I've already coded around it, but I'll try and backtrack, see
> if I can reproduce the bug and get you a stack trace.
>
> And yeah, if the buffer is just wrapping a non-owning pointer it makes sense
> to be able to copy it.
>
> Cheers,
>
> Anders
>
> On Tue, 11 Apr 2017 at 19:12 Larry Gritz <[email protected]
> <mailto:[email protected]>> wrote:
> That assertion appears to be associated with an ImageBuf copy constructor.
> I'm not sure how it can happen for the constructor ImageBuf(ImageSpec&,
> void*buffer).
>
> Are you sure you're not hitting the assertion at some point other than when
> you first construct it as in your example?
>
> Maybe... is it possible you have a function that's intended to receive an
> ImageBuf&, but instead you mis-declared the function as taking an 'ImageBuf'
> so it's passing by value and copy-constructing, instead of passing by
> reference? (It's also possible it's ME who is doing that somewhere.)
>
> I don't suppose I could convince you to use a DEBUG-compiled build of OIIO
> and try to catch it in the debugger and show us the full stack trace?
>
> On my end, I'll try to figure out why I have that assertion there. What
> caused me to think it was invalid to copy an ImageBuf that wrapped a user
> buffer?
>
>
>> On Apr 10, 2017, at 11:55 PM, Anders Langlands <[email protected]
>> <mailto:[email protected]>> wrote:
>>
>> It's along the lines of (as per page 163 of the manual):
>>
>> float* data = ...;
>> ImageBuf buf(ImageSpec(correct, params, for, data), data);
>>
>> This triggers the following assertion:
>> libOpenImageIO/imagebuf.cpp
>> 390: ASSERT (0 && "ImageBuf wrapping client buffer not yet
>> supported");
>>
>> On Tue, 11 Apr 2017 at 18:47 Larry Gritz <[email protected]
>> <mailto:[email protected]>> wrote:
>> As far as I know, it works. Can you sketch out how you're setting it up and
>> exactly what calls you're making?
>>
>>
>> > On Apr 10, 2017, at 10:34 PM, Anders Langlands <[email protected]
>> > <mailto:[email protected]>> wrote:
>> >
>> > Hi there, I just found out the hard way that wrapping a client data buffer
>> > in an ImageBuf doesn't appear to be implemented (I'm building off master).
>> > I was hoping to use this as an easy way to write out images given a block
>> > of pixel data. Is there another way of doing this with the library, or
>> > should I just create a local-storage ImageBuf and copy my data into it?
>> >
>> > Cheers,
>> >
>> > Anders
>> >
>>
>> --
>> Larry Gritz
>> [email protected] <mailto:[email protected]>
>>
>>
>> _______________________________________________
>> Oiio-dev mailing list
>> [email protected] <mailto:[email protected]>
>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org
>> <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org>
>> _______________________________________________
>> Oiio-dev mailing list
>> [email protected] <mailto:[email protected]>
>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org
>> <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org>
>
> --
> Larry Gritz
> [email protected] <mailto:[email protected]>
>
>
> _______________________________________________
> Oiio-dev mailing list
> [email protected] <mailto:[email protected]>
> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org
> <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org>
> _______________________________________________
> Oiio-dev mailing list
> [email protected]
> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org
--
Larry Gritz
[email protected]
_______________________________________________
Oiio-dev mailing list
[email protected]
http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org