locking focus on an image with no representations.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33827 72102866-910b-0410-8b05-ffd578937521
size (0, 0)
* Source/NSCachedImageRep.m: Throw an exception if you attempt to create a cached
image rep with a size of (0, 0).
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33819 72102866-910b-0410-8b05-ffd578937521
because we now cache the entire representation and not the rep scaled
to the image's size.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33770 72102866-910b-0410-8b05-ffd578937521
on backends supporting GSdraw: (cairo). This means we don't have to
create a window for every call to draw an image, and gives me a 5-10x
speedup for image drawing.
* Source/NSCachedImageRep.m: Implement private method
-nativeDrawInRect:.. which is called by NSImageRep's
-drawInRect:fromRect:..., and efficiently draw the cached rep
using GSdraw:. Also make some changes so cached image reps can have a
DPI != 72.
* Headers/AppKit/NSCachedImageRep.h: New private init method that lets
you specify diferent pixel size and point size.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33765 72102866-910b-0410-8b05-ffd578937521
-drawInRect:fromRect:operation:fraction:respectFlipped:hints: method
* Source/NSImage.m:
* Source/NSImageRep.m: Refactor drawing code from NSImage to NSImageRep.
This should cause no functionlity change, but it lets NSImageRep
subclasses implement more efficient versions of -drawInRect:fromRect:...
that don't involve the (expensive) drawing of the image in a temporary
offscreen window and then drawing from there on to the destination surface.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33764 72102866-910b-0410-8b05-ffd578937521
rep has a size of zero, or is a vector rep. Prevent division by 0.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33742 72102866-910b-0410-8b05-ffd578937521
* Source/NSCustomImageRep.m:
- Don't retain the delegate (matching OS X)
- Remove unnecessary flip checks from -drawAtPoint: and -drawInRect:
to match the code in NSImageRep
- Fix a mistake when setting the ctm scale factor
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33741 72102866-910b-0410-8b05-ffd578937521
demonstrated in GSTest:
- drawing an image in a flipped view with -drawInRect:... wasn't
working, and
- drawing a vector rep in a dest rect larger than the point
size of the rep was resulting in blurry output.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33570 72102866-910b-0410-8b05-ffd578937521
which chooses the smallest rep larger than or equal to the provided size.
Modify -nativeDrawInRect:... to use the above method for choosing a rep.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33304 72102866-910b-0410-8b05-ffd578937521
earlier in -nativeDrawInRect:... and replace them with saving/restoring
the transformation matrix. The DPSgsave/DPSgrestore were causing problems
when drawing images with a non-rectangular clipping area.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33300 72102866-910b-0410-8b05-ffd578937521
It should now be very close to the algorithm described in the cocoa
drawing guide, and fixes numerous bugs with the old code.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33295 72102866-910b-0410-8b05-ffd578937521
images with multiple representations and fix a related bug.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33211 72102866-910b-0410-8b05-ffd578937521
with a source rect smaller than the entire image. This was a mistake
left by my last commit to this method.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33135 72102866-910b-0410-8b05-ffd578937521
NSDeviceResolution
* Source/NSImage.m: Implement -_bestRep:withResolutionMatch:
* Images/common_Dimple.tiff:
* Images/common_3DArrowRight.tiff: Add to these images
a second 'page' at 4x the original resolution which I drew.
If you use GSScaleFactor > 1 then the high resolution version
of these images should be used.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32975 72102866-910b-0410-8b05-ffd578937521
large enough so that detail is preserved when drawing using a scale factor
larger than 1. This change should only improve output quality but not
affect image drawing otherwise.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32917 72102866-910b-0410-8b05-ffd578937521
New simple implementation which calls
-drawAtPoint:fromRect:operation:fraction:.
Also respects the user space scale factor.
* Source/NSImage.m (-guiDrawInRect:fromRect:operation:fraction):
Remove a special case which called -compositeToPoint:..., which would
cause an infinite loop when combined with the above change.
Also avoid using -drawRepresentation:inRect: because -drawInRect:...
is supposed to fill the destination rect regardless of the setting
of -scalesWhenResized. This is a change borrowed from
-nativeDrawInRect:...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@32895 72102866-910b-0410-8b05-ffd578937521
from NSImage category.
* Source/NSImage.m: Added code in _setImage:forName: to archive
by name instead.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@31075 72102866-910b-0410-8b05-ffd578937521
* Source/GSTheme.m: Call method _setArchiveByName: with YES so that
images loaded by a theme will not be persisted as image data, but
rather as references. This will avoid an issue with saving theme
images when saving files in Gorm while a theme is loaded.
* Source/NSImage.m: Added method _setArchiveByName:.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@31021 72102866-910b-0410-8b05-ffd578937521
See bug report #27782
In particular, fixed -[NSImage drawXXX] and -[NSImage composite/dissolveXXX]
methods to work exactly as Cocoa when the Cairo backend is used.
Added a new draw operator (in addition to composite) to the backend. Cairo is
the only backend that implements it for now.
Eliminated as many flipping checks as possible.
Warning: Untested with the winlib backend.
You must update, recompile and install both Back and Gui.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@30523 72102866-910b-0410-8b05-ffd578937521