/* 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