微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我如何改变XF86VidModeSetGamma我的第二台显示器的伽玛?

我已经写了一个函数来改变我的显示器的伽玛值,但不幸的是,它改变了错误显示器的伽玛,我不需要它。

我已经尝试了几乎所有的东西,但是我找不到任何可行的解决scheme – 总是错误显示器。

我如何正确地告诉它哪个监视器应该改变gamma?

一个奇怪的是,ScreenCount()总是返回1。

如何以编程方式确定网卡是虚拟的?

系统(“cd <path>”)在C程序中

在pthread程序中,例程的额外执行时间是多less?

后台创build一个进程,将听取键盘

限制dynamicIP端口范围

这个函数应该是一个破解的SDL_SetGamma()的解决方法,它不能在Linux上工作,或者至less不能在ATi卡上工作。 我在运行时加载libXxf86vm.so ,所以它是一个可选的function,不需要链接到应用程序。

如果有人能解释我,我怎么能用xgamma命令改变我的第二台显示器的伽马值,这也是xgamma ,因为这个命令也一样。

#include <X11/Xlib.h> typedef struct { float red; /* Red Gamma value */ float green; /* Green Gamma value */ float blue; /* Blue Gamma value */ } XF86VidModeGamma; typedef Bool (*XF86VidModeSetGamma)(display*,int,XF86VidModeGamma*); int changegamma(float red,float green,float blue) { void *lib; XF86VidModeSetGamma f; int screen; display *display; XF86VidModeGamma gamma; lib = dlopen("libXxf86vm.so",RTLD_LAZY); if(!lib) goto error; f = (XF86VidModeSetGamma)dlsym(lib,"XF86VidModeSetGamma"); if(!lib) goto error; gamma.red = red; gamma.green = green; gamma.blue = blue; display = XOpendisplay(NULL); if(!display) goto error; screen = DefaultScreen(display); if(!f(display,screen,&gamma)) goto error; XClosedisplay(display); dlclose(lib); return 0; error:; if(lib) dlclose(lib); return SDL_SetGamma(red,green,blue); }

将c ++从Linux移植到windows,'__aligned__'

SetwindowsHookEx失败,错误1428

SetwindowsHookEx()仅适用于当前进程

pipe道和sockets有什么区别?

C# – 如何从静态主要方法调用一个方法

屏幕的XF86接口真的很老,并不反映现代的多屏幕设置(使用xinerama,…)。

无论如何,你应该使用xrandr来设置这些日子的每个显示设置。 最简单的方法可能是检查xrandr实用程序本身的源代码,它可以用来从cmdline设置每个屏幕的gamma值。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐