More imaging and compositing stuff

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@5635 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
fedor 1999-12-28 19:20:45 +00:00
parent 0d72b6f34d
commit 745d515d38
12 changed files with 142 additions and 21 deletions

View file

@ -34,10 +34,14 @@
#include <gnustep/gui/config.h>
#include <Foundation/NSString.h>
#include <Foundation/NSException.h>
#include <Foundation/NSUserDefaults.h>
#include <AppKit/NSCachedImageRep.h>
#include <AppKit/NSView.h>
#include <AppKit/NSWindow.h>
#include <AppKit/PSOperators.h>
static BOOL NSImageCompositing = NO;
@interface GSCacheW : NSWindow
@end
@ -69,6 +73,12 @@
@implementation NSCachedImageRep
- (void) initialize
{
NSImageCompositing = [[NSUserDefaults standardUserDefaults]
boolForKey: @"ImageCompositing"];
}
// Initializing an NSCachedImageRep
- (id) initWithSize: (NSSize)aSize
depth: (NSWindowDepth)aDepth
@ -142,8 +152,13 @@
- (BOOL)draw
{
NSCopyBits([_window gState], _rect, _rect.origin);
return NO;
if (NSImageCompositing)
PScomposite(NSMinX(_rect), NSMinY(_rect), NSWidth(_rect), NSHeight(_rect),
[_window gState], NSMinX(_rect), NSMinY(_rect),
NSCompositeSourceOver);
else
NSCopyBits([_window gState], _rect, _rect.origin);
return YES;
}
- (BOOL) drawAtPoint: (NSPoint)aPoint
@ -160,7 +175,12 @@
if ([[ctxt focusView] isFlipped])
aPoint.y -= size.height;
}
NSCopyBits([_window gState], _rect, aPoint);
if (NSImageCompositing)
PScomposite(NSMinX(_rect), NSMinY(_rect), NSWidth(_rect), NSHeight(_rect),
[_window gState], aPoint.x, aPoint.y,
NSCompositeSourceOver);
else
NSCopyBits([_window gState], _rect, aPoint);
return NO;
}
@ -176,8 +196,13 @@
ctxt = GSCurrentContext();
if ([[ctxt focusView] isFlipped])
aRect.origin.y -= NSHeight(aRect);
NSCopyBits([_window gState], _rect, aRect.origin);
return NO;
if (NSImageCompositing)
PScomposite(NSMinX(_rect), NSMinY(_rect), NSWidth(_rect), NSHeight(_rect),
[_window gState], NSMinX(aRect), NSMinY(aRect),
NSCompositeSourceOver);
else
NSCopyBits([_window gState], _rect, aRect.origin);
return YES;
}
// NSCoding protocol