小编Sky*_*ler的帖子

将所有NSWindows捕获为活动图像,如Mac OS X中的Mission Control

我想要汇总所有窗口的实时表示.就像Mission Control(Exposé)一样,我想非常快速地访问任何给定的NSWindow或屏幕的图像缓冲区.理想情况下,我想在我自己的OpenGL上下文中合成这些实时图像,以便我可以操作它们(缩放并移动窗口屏幕捕获).

事情太慢了:

  • CGDisplayCreateImage
  • CGWindowListCreateImage
  • CGDisplayIDToOpenGLDisplayMask&CGLCreateContext&CGBitmapContextCreate

还有其他想法吗?我正在努力实现60 fps捕获/复合/输出,但我能用这些方法获得的最佳效果是~5 fps(在视网膜显示器上捕获整个屏幕).

opengl macos window core-graphics mission-control

7
推荐指数
1
解决办法
798
查看次数

由于超前令牌限制,转换/减少yacc中的冲突?

我一直试图解决一个看似简单的转变/减少冲突,但无济于事.当然,如果我忽略冲突,解析器工作正常,但如果我重新组织我的规则,我会觉得更安全.在这里,我简化了一个相对复杂的语法到单一冲突:

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)

谢谢你的帮助.

parsing yacc conflict shift-reduce

3
推荐指数
1
解决办法
978
查看次数