freerdp/client/iOS/Views/RDPSessionView.m

59 lines
1.4 KiB
Objective-C

/*
RDP Session View
Copyright 2013 Thincast Technologies GmbH, Author: Martin Fleisz
This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
If a copy of the MPL was not distributed with this file, You can obtain one at
http://mozilla.org/MPL/2.0/.
*/
#import "RDPSessionView.h"
@implementation RDPSessionView
- (void)setSession:(RDPSession *)session
{
_session = session;
}
- (void)awakeFromNib
{
[super awakeFromNib];
_session = nil;
}
- (void)drawRect:(CGRect)rect
{
if (_session != nil && [_session bitmapContext])
{
CGContextRef context = UIGraphicsGetCurrentContext();
CGImageRef cgImage = CGBitmapContextCreateImage([_session bitmapContext]);
CGContextTranslateCTM(context, 0, [self bounds].size.height);
CGContextScaleCTM(context, 1.0, -1.0);
CGContextClipToRect(context,
CGRectMake(rect.origin.x,
[self bounds].size.height - rect.origin.y - rect.size.height,
rect.size.width, rect.size.height));
CGContextDrawImage(context,
CGRectMake(0, 0, [self bounds].size.width, [self bounds].size.height),
cgImage);
CGImageRelease(cgImage);
}
else
{
// just clear the screen with black
[[UIColor blackColor] set];
UIRectFill([self bounds]);
}
}
- (void)dealloc
{
[super dealloc];
}
@end