代码之家  ›  专栏  ›  技术社区  ›  deimus

什么方法在Xserver中旋转屏幕

  •  1
  • deimus  · 技术社区  · 14 年前

    我想知道函数代码/源文件,它使用xrandr工具将屏幕旋转90/180/270度?

    左撇子 Xrrord-o右 xrandr-o倒置 xrandr-o正常

    什么函数使用上述命令调用XServer中的屏幕旋转?

    当做, 莱翁

    3 回复  |  直到 14 年前
        1
  •  0
  •   swestrup    14 年前

    有两个不同的X扩展来处理窗口的内部旋转。最基本的是randr,其源代码位于x服务器源的顶级randr目录中。

    模式扩展提供了对多头设备的支持,它公开了可以在调用xrandr的结果中看到的输出和crtc,这是第二个可用于旋转窗口的扩展。模式可以在x服务器源的hw/xfree86/modes子目录中找到。

    如果一个X驱动程序直接使用RANDR,它必须提供一些函数,让RANDR旋转并显示窗口。如果您使用的是模式,那么它将自己设置为Randr和您的驱动程序之间的一个层,并且您必须为模式提供一组更有限的功能,并且它可以处理大部分工作。

    也就是说,在我写的x驱动程序中,我还没有真正得到旋转窗口的模式,这可能是因为randr和modes实际上都是未记录的,而且它们的图像处理模型还不清楚。

        2
  •  0
  •   eichin    14 年前

    中的一个函数 /usr/include/X11/extensions/Xrandr.h -大概 XRRSetScreenConfig -使用 RANDR 扩展,要求服务器配置一堆东西,包括旋转。就是这样 xrandr 命令行工具将使用。

    如果你在问实际的工作是什么,这是一个更难回答的问题-X服务器,假设它支持 兰德尔 扩展,可能是使用通用代码,但更可能是使用非常特定于芯片组的代码,在渲染帧时做实际工作…

        3
  •  0
  •   maxrodrigo    14 年前

    YO应该检查

    xrandr --output --rotate left
    

    如果它不工作,也许你的X驱动器不支持旋转或它被禁用。 尝试

    Option         "RandRRotation" "True"
    

    在screen部分/etc/x11/xorg.conf文件中

    推荐文章