Hello Fred,
I think I'm mistaken about it working before, well my program was
working before but the drawing code was architected differently. I
coded it to be more efficient, but this was done on Mac. I thought
that it worked with the stock GNUstep that you get on Debian, but I
tried that over the weekend and no go, that actually crashes when it
tries to draw in the NSImage. So I don't think I ever got the new
code working with GNUstep yet.
Anyways, I did discover a few things. There seems to be a combination
of issues.
* It is *not* an issue with images loaded from files; those seem to
work fine in all cases, so it seems to be primarily related to
allocated images that you then attempt to draw within and then display.
* Scaling is not working for allocated images. However if I don't
scale the image, then I can get it to display (under the right
conditions).
* Doesn't seem to be an issue with threads. Have the same problem
both in the main and secondary threads, though this is confounded by
the next issue.
* A key issue is that drawing into the image does not appear to work
unless I do it within the context of NSView's -drawRect: method. So
if I draw into the image in a target-action method (say) from a button
click, then try to compose that image into a view, it doesn't work.
If I draw into the image during drawRect: then it appears to work, but
I have the scaling issue mentioned above when composing.
I will work on a constructing a small test application that shows
these different combinations.
cheers
Scott
On May 9, 2009, at 7:38 AM, Fred Kiefer wrote:
Hi Scott,
when you are saying that it worked before, at what time was that? A
few days ago, weeks, months? As far as I know, drawing in a separate
thread should have produced an error up until two months ago.
Is your code working when executed in the main thread? If not we
should try to get it working there first.
Is there already anything in that image you are drawing on?
It would be helpful if you could send full working code to reproduce
the problem, then sonebody could look at your code directly and also
test whether it works on his machine. That somebody couldn't be me
at the moment, as I am travelling, but as soon as I am back I would
test your code.
Fred
PS: There was a similar bug report some time ago, but this is fixd
and closed now. Perhaps you could have a look at that.
-------- Original-Nachricht --------
Datum: Fri, 08 May 2009 18:45:00 -0700
Von: Scott Christley <[email protected]>
An: gnustep <[email protected]>
Betreff: drawing to NSImage off display
Hello,
Some code which use to work is no longer working and I'm not sure
why.
I use some worker threads to do computation, then they draw into
their
own personal NSImage objects, which are then passed over to the main
GUI thread to be displayed. It seems that the drawing into the
NSImage is not working properly. The method for each worker thread
looks somewhat like this:
- doWork
{
// do some stuff
[image lockFocus];
[[NSColor greenColor] set];
NSRectFill(aRect);
// do some more drawing
[image unlockFocus];
}
Is there any reason why drawing into NSImage, either off display or
in
worker threads, should not work?
I verified that nothing is wrong with the rest of my code, because I
can change that -doWork method to just load an image from a file,
like
this, and the image displays just fine:
image = [[NSImage alloc] initWithContentsOfFile: file];
On a secondary note, I tried saving the image to a file, after I -
unlockFocus, but it produces a corrupt file.
[[image TIFFRepresentation] writeToFile: file atomically: NO];
I'm using GNUstep from SVN, on Debian with the art backend.
thanks
Scott
_______________________________________________
Discuss-gnustep mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/discuss-gnustep
--
Neu: GMX FreeDSL Komplettanschluss mit DSL 6.000 Flatrate +
Telefonanschluss für nur 17,95 Euro/mtl.!* http://dslspecial.gmx.de/freedsl-surfflat/?ac=OM.AD.PD003K11308T4569a
_______________________________________________
Discuss-gnustep mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/discuss-gnustep