我想要汇总所有窗口的实时表示.就像Mission Control(Exposé)一样,我想非常快速地访问任何给定的NSWindow或屏幕的图像缓冲区.理想情况下,我想在我自己的OpenGL上下文中合成这些实时图像,以便我可以操作它们(缩放并移动窗口屏幕捕获).
事情太慢了:
CGDisplayCreateImageCGWindowListCreateImageCGDisplayIDToOpenGLDisplayMask&CGLCreateContext&CGBitmapContextCreate还有其他想法吗?我正在努力实现60 fps捕获/复合/输出,但我能用这些方法获得的最佳效果是~5 fps(在视网膜显示器上捕获整个屏幕).
我一直试图解决一个看似简单的转变/减少冲突,但无济于事.当然,如果我忽略冲突,解析器工作正常,但如果我重新组织我的规则,我会觉得更安全.在这里,我简化了一个相对复杂的语法到单一冲突:
statement_list
: statement_list statement
|
;
statement
: lvalue '=' expression
| function
;
lvalue
: IDENTIFIER
| '(' expression ')'
;
expression
: lvalue
| function
;
function
: IDENTIFIER '(' ')'
;
Run Code Online (Sandbox Code Playgroud)
使用yacc中的verbose选项,我得到此输出文件描述具有上述冲突的状态:
state 2
lvalue -> IDENTIFIER . (rule 5)
function -> IDENTIFIER . '(' ')' (rule 9)
'(' shift, and go to state 7
'(' [reduce using rule 5 (lvalue)]
$default reduce using rule 5 (lvalue)
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.