where buf is an array of FXColor of size=width*height
after initialization
image.data.data
is a pointer to this buffer.
As image processing is quite computational expensive I would
appriciate a more c language friendly interface …
so for example
buf= MyPic.new
where MyPic is implemented in c using e.g.
typedef struct {
int w,h;
//let it be the 4 bytes/ rgba pixel as required by fxruby
unsiged char * pixels;
…
} MyPic;
This would solve the problem that after changing the MyPic buffer
pixels the rerendering of the picture requires converting it to an
array of FXColor first …
[*
Other solution would be to access the values of a ruby array in c as
an
memory block without copying it (didn’t look into the implementation
of the ruby array if it’s implemented this way at all …)
*]
Any suggestions? Is it already implemented somehow and I just don’t
see
it?
I’m looking for an efficient way of image manipulation/rerendering
using fximage from fxruby:
This discussion really, really belongs on the FXRuby mailing list. But
anyways…
int w,h;
//let it be the 4 bytes/ rgba pixel as required by fxruby
unsiged char * pixels;
…
} MyPic;
So instead of (or as alternative to) manipulating an array of FXColor,
you’d
manipulate a Ruby string of bytes which has size 4wh? OK, I get it.
This would solve the problem that after changing the MyPic buffer
pixels the rerendering of the picture requires converting it to an
array of FXColor first …
True, but that pixels “array” (really, a String) would still need to be
converted to an array of FXColor in the C++ wrapper layer, because the
FOX
library expects an array of FXColor values.
Any suggestions? Is it already implemented somehow and I just don’t
see it?
No, you’ve got it right concerning the current approach. I would suggest
that you file a feature request about this, and we’ll see if it can be
added
in a future release of FXRuby: