2012-02-26 85 views
0

試圖得到一個基本的「Hello World」般的XServer應用程序運行起來後,我發現,無論我怎麼努力,我一直運行到了同樣的錯誤,那就是:Xinerama是否會導致我的代碼出現問題?

X Error of Failed request: BadMAtch(invalid parameter attributes) 
Major opcode of failed request: 78 (X_CreateColormap) 

起初,我認爲這是我的車手,所以我將它們更新到了290.10(nVidia)。

我的(相關)設置由以下部分組成:

nVidia GTX 550 Ti 
Sabayon Linux 
Kernel 3.2 

但是,一些衝浪之後,它看起來像它可以是事實,我有雙顯示器(一個連接到HDMI迷你接口,另一個vga/dvi),或者我啓用了Xinerama的事實,或者兩者都有。

我試圖通過在我的代碼中創建兩個GLXContext對象來補償這兩個顯示器,如預期的那樣,它沒有做任何事情(很好:我剛開始學習這個API)。我這樣做是因爲它好像GLXContext與監視器輸入/輸出有關。

之後,沒有工作,我試着glXGetConfig,那也沒有工作。因此,我開始更多地尋找問題,並在幾年前撰寫的關於禁用Xinerama的問題的論壇上發佈了一篇文章,這是造成問題的原因。奇怪的是,這件事發佈於2009年,所以人們會認爲nVidia現在已經解決了這個問題。

我不知道該怎麼做,我相信我有點不知所措,除非我能解決這個問題。

任何人都可以在SuperUser here上查看我的代碼here(pastebin)。

我真的可以在這個上使用一些幫助。

TL;博士

setWindowAtt.colormap = colorMap; 
setWindowAtt.event_mask = ExposureMask | KeyPressMask; 

win = XCreateWindow(dp, root, 0, 0, 600, 600, 0, visualInfo->depth, InputOutput, visualInfo->visual, CWColormap | CWEventMask, &setWindowAtt); 

XMapWindow(dp, win); 

XStoreName(dp, win, VI_UN_DEF_WIN_NAME); 

glxContext = glXCreateContext(dp, visualInfo, NULL, GL_TRUE); //error 

glXMakeCurrent(dp, win, glxContext); 
+0

請提供[Short,Self Contained,Compilable,Example](http://sscce.org/)。分析起來要容易得多。 – 2012-02-26 11:48:14

+0

完成並完成:) – zeboidlund 2012-02-26 14:06:59

+0

'viUn.h'在哪裏? – 2012-02-28 17:13:08

回答

1

線索就在你的面前:

Major opcode of failed request: 78 (X_CreateColormap)

這意味着XCreateColormap失敗。如果它想告訴你一個GLX命令失敗了,它會說一些關於GLX的東西。 - 爲XCreateColormap手冊上說 - 真彩色的視覺效果必須AllocNone進行分配,並且將拋出BadMatch如果你從glXChooseVisual獲得視覺可能是一個真彩色一流的視覺和:

閱讀你的代碼的休息後你沒有。

相關問題