Revert "cursor ai garbage tuning"

This reverts commit b88f0b7151.
This commit is contained in:
Levent Duivel 2024-11-10 03:39:37 +05:00
parent b88f0b7151
commit 22f3e44ad9
1 changed files with 29 additions and 40 deletions

View File

@ -1,6 +1,4 @@
#import "FrameUpdater.h"
#import <CoreGraphics/CoreGraphics.h>
#import <QuartzCore/QuartzCore.h>
@implementation FrameUpdater {
@ -9,7 +7,6 @@
BOOL _updatingFrames;
uint32_t _lastUpdatedSeed;
NSTimer* _updateFrameTimer;
CADisplayLink *_displayLink;
// Shared from ScreenDumpVNC
IOSurfaceRef _screenSurface;
@ -39,47 +36,39 @@
-(void)_updateFrame {
[_q addOperationWithBlock: ^{
if (!_updatingFrames) {
[self stopFrameLoop];
return;
}
// Check if screen changed
// check if screen changed
uint32_t currentFrameSeed = IOSurfaceGetSeed(_screenSurface);
// Only proceed if the screen has changed and the VNC is active
if (_lastUpdatedSeed != currentFrameSeed && rfbIsActive(_rfbScreenInfo)) {
_lastUpdatedSeed = currentFrameSeed;
// Optimize the transfer by checking if the accelerator is available
if (_accelerator) {
[_q addOperationWithBlock: ^{
IOSurfaceAcceleratorTransferSurface(_accelerator, _screenSurface, _staticBuffer, NULL, NULL, NULL, NULL);
}
// Mark the entire screen as modified only if necessary
if (_width > 0 && _height > 0) {
rfbMarkRectAsModified(_rfbScreenInfo, 0, 0, _width, _height);
}
}
}];
}
-(void)startFrameLoop {
[self stopFrameLoop];
_updatingFrames = YES;
dispatch_async(dispatch_get_main_queue(), ^(void){
_displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(_updateFrame)];
[_displayLink addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
});
}
-(void)stopFrameLoop {
if (_displayLink) {
[_displayLink invalidate];
_displayLink = nil;
}
if (_updateFrameTimer == nil || ![_updateFrameTimer isValid]) return;
dispatch_async(dispatch_get_main_queue(), ^(void){
[_updateFrameTimer invalidate];
_updatingFrames = NO;
});
}
-(void)startFrameLoop {
// if (size_image == 0) VNCSetup();
[self stopFrameLoop];
_updatingFrames = YES;
dispatch_async(dispatch_get_main_queue(), ^(void){
_updateFrameTimer = [NSTimer scheduledTimerWithTimeInterval:1/400 target:self selector:@selector(_updateFrame) userInfo:nil repeats:YES];
});
}
-(void)dealloc {