projects
/
platform
/
upstream
/
freerdp.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
e1f9df8
)
mfreerdp-server: fixed geometry
author
C-o-r-E
<can.of.tuna@gmail.com>
Fri, 16 Nov 2012 01:07:28 +0000
(20:07 -0500)
committer
C-o-r-E
<can.of.tuna@gmail.com>
Fri, 16 Nov 2012 01:07:28 +0000
(20:07 -0500)
server/Mac/mf_peer.c
patch
|
blob
|
history
diff --git
a/server/Mac/mf_peer.c
b/server/Mac/mf_peer.c
index
4492a1e
..
70096c8
100644
(file)
--- a/
server/Mac/mf_peer.c
+++ b/
server/Mac/mf_peer.c
@@
-118,27
+118,38
@@
void mf_peer_rfx_update(freerdp_peer* client)
{
\r
\r
//check
\r
{
\r
\r
//check
\r
-
\r
mfInfo* mfi = mf_info_get_instance();
\r
\r
mf_info_find_invalid_region(mfi);
\r
\r
mfInfo* mfi = mf_info_get_instance();
\r
\r
mf_info_find_invalid_region(mfi);
\r
\r
+ if (mf_info_have_invalid_region(mfi) == false) {
\r
+ return;
\r
+ }
\r
+
\r
printf("\tinvalid -> (%d,%d), (%d,%d)\n",
\r
mfi->invalid.x,
\r
mfi->invalid.y,
\r
mfi->invalid.x + mfi->invalid.width,
\r
mfi->invalid.y + mfi->invalid.height);
\r
printf("\tinvalid -> (%d,%d), (%d,%d)\n",
\r
mfi->invalid.x,
\r
mfi->invalid.y,
\r
mfi->invalid.x + mfi->invalid.width,
\r
mfi->invalid.y + mfi->invalid.height);
\r
-
\r
- mf_info_clear_invalid_region(mfi);
\r
-
\r
+
\r
//capture entire screen
\r
\r
int bytewidth;
\r
\r
//capture entire screen
\r
\r
int bytewidth;
\r
\r
- CG
ImageRef image = CGDisplayCreateImage(kCGDirectMainDisplay); // Main screenshot capture call
\r
+ CG
Rect invRect;
\r
\r
\r
- CGSize frameSize = CGSizeMake(CGImageGetWidth(image), CGImageGetHeight(image)); // Get screenshot bounds
\r
+ invRect.origin.x = mfi->invalid.x;
\r
+ invRect.origin.y = mfi->invalid.y;
\r
+ invRect.size.height = mfi->invalid.height;
\r
+ invRect.size.width = mfi->invalid.width;
\r
\r
\r
+ //CGImageRef image = CGDisplayCreateImage(kCGDirectMainDisplay); // Main screenshot capture call
\r
+ CGImageRef image = CGDisplayCreateImageForRect(kCGDirectMainDisplay, invRect);
\r
+ //CGSize frameSize = CGSizeMake(CGImageGetWidth(image), CGImageGetHeight(image)); // Get screenshot bounds
\r
+
\r
+ CGSize frameSize;
\r
+ frameSize.width = 2880;
\r
+ frameSize.height = 1800;
\r
\r
CFDictionaryRef opts;
\r
\r
\r
CFDictionaryRef opts;
\r
\r
@@
-184,8
+195,9
@@
void mf_peer_rfx_update(freerdp_peer* client)
frameSize.height, 8, 4*frameSize.width, rgbColorSpace,
\r
kCGImageAlphaNoneSkipLast);
\r
\r
frameSize.height, 8, 4*frameSize.width, rgbColorSpace,
\r
kCGImageAlphaNoneSkipLast);
\r
\r
- CGContextDrawImage(context, CGRectMake(0, 0, CGImageGetWidth(image),
\r
- CGImageGetHeight(image)), image);
\r
+ CGContextDrawImage(context,
\r
+ CGRectMake(0, 0, frameSize.width, frameSize.height),
\r
+ image);
\r
\r
bytewidth = frameSize.width * 4; // Assume 4 bytes/pixel for now
\r
bytewidth = (bytewidth + 3) & ~3; // Align to 4 bytes
\r
\r
bytewidth = frameSize.width * 4; // Assume 4 bytes/pixel for now
\r
bytewidth = (bytewidth + 3) & ~3; // Align to 4 bytes
\r
@@
-210,25
+222,25
@@
void mf_peer_rfx_update(freerdp_peer* client)
\r
rect.x = 0;
\r
rect.y = 0;
\r
\r
rect.x = 0;
\r
rect.y = 0;
\r
- rect.width =
frameSize
.width;
\r
- rect.height =
frameSize
.height;
\r
+ rect.width =
mfi->invalid
.width;
\r
+ rect.height =
mfi->invalid
.height;
\r
\r
rfx_compose_message(mfp->rfx_context, s, &rect, 1,
\r
\r
rfx_compose_message(mfp->rfx_context, s, &rect, 1,
\r
- (BYTE*) pxdata,
frameSize.width, frameSize
.height, frameSize.width * 4);
\r
+ (BYTE*) pxdata,
rect.width, rect
.height, frameSize.width * 4);
\r
\r
\r
- UINT32 x =
0
;
\r
- UINT32 y =
0
;
\r
+ UINT32 x =
mfi->invalid.x
;
\r
+ UINT32 y =
mfi->invalid.y
;
\r
\r
cmd->destLeft = x;
\r
cmd->destTop = y;
\r
\r
cmd->destLeft = x;
\r
cmd->destTop = y;
\r
- cmd->destRight = x +
frameSize
.width;
\r
- cmd->destBottom = y +
frameSize
.height;
\r
+ cmd->destRight = x +
rect
.width;
\r
+ cmd->destBottom = y +
rect
.height;
\r
\r
\r
cmd->bpp = 32;
\r
cmd->codecID = 3;
\r
\r
\r
cmd->bpp = 32;
\r
cmd->codecID = 3;
\r
- cmd->width =
frameSize
.width;
\r
- cmd->height =
frameSize
.height;
\r
+ cmd->width =
rect
.width;
\r
+ cmd->height =
rect
.height;
\r
cmd->bitmapDataLength = stream_get_length(s);
\r
cmd->bitmapData = stream_get_head(s);
\r
\r
cmd->bitmapDataLength = stream_get_length(s);
\r
cmd->bitmapData = stream_get_head(s);
\r
\r
@@
-239,6
+251,8
@@
void mf_peer_rfx_update(freerdp_peer* client)
\r
//clean up
\r
\r
\r
//clean up
\r
\r
+ mf_info_clear_invalid_region(mfi);
\r
+ // note: need to stop getting new dirty rects until here
\r
\r
CGColorSpaceRelease(rgbColorSpace);
\r
CGImageRelease(image);
\r
\r
CGColorSpaceRelease(rgbColorSpace);
\r
CGImageRelease(image);
\r