我已经写了一个小函数来改变我的显示器的伽玛值,但不幸的是,它改变了错误显示器的伽玛,我不需要它。
我已经尝试了几乎所有的东西,但是我找不到任何可行的解决scheme – 总是错误的显示器。
我如何正确地告诉它哪个监视器应该改变gamma?
另一个奇怪的是,ScreenCount()总是返回1。
如何以编程方式确定网卡是虚拟的?
系统(“cd <path>”)在C程序中
在pthread程序中,例程的额外执行时间是多less?
限制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()仅适用于当前进程
pipe道和sockets有什么区别?
屏幕的XF86接口真的很老,并不反映现代的多屏幕设置(使用xinerama,…)。
无论如何,你应该使用xrandr来设置这些日子的每个显示设置。 最简单的方法可能是检查xrandr实用程序本身的源代码,它可以用来从cmdline设置每个屏幕的gamma值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。