2011-12-31 35 views
2

問題:如何獲取GLXContext並將其傳遞給clCreateContextFromType?用於創建OpenCL上下文的GLX上下文


信息:

我正在學習如何openGL的CL互操作工作。我已經學會了openCL如何工作以及openGl如何工作,現在我正在讓他們一起工作的最後一步。我正在使用glut,但自從開始使用GLX以來,因爲我需要一個GL上下文讓CL能夠從中創建它的上下文。我有我的GLXContext保存爲一個全局變量,我通過它來clCreateContextFromType和我得到這個當我編譯:

error: invalid conversion from ‘GLXContext {aka __GLXcontextRec*}’ to ‘cl_context_properties {aka long int}’ 

於是我就在互聯網附近,發現了一些建議從這個blog,並取得了cl_context_properties列表其中包含{CL_GLX_DISPLAY_KHR,glc}。它拋出了完全相同的錯誤。我在這裏錯過了什麼?顯然有些事情需要發生才能使GLX環境適合openCL採用。我錯過了什麼?

回答

3

我想通了:

cl_context_properties props[] = 
{ 
    CL_GL_CONTEXT_KHR, (cl_context_properties)glXGetCurrentContext(), 
    CL_GLX_DISPLAY_KHR, (cl_context_properties)glXGetCurrentDisplay(), 
    CL_CONTEXT_PLATFORM, (cl_context_properties)(platform_id), 
    0 
}; 

爲什麼它的工作原理我真的不知道。但我發現它here

+0

嗯,這是一個所謂的屬性列表。這種類型的列表用於爲函數提供任意數量的參數。偶數編號的元素(0,2,4,...)告訴*每個隨後的奇數參數提供了什麼*。 – datenwolf 2011-12-31 22:27:31

+0

既然你找到了答案,請接受它來標記問題已解決。 – datenwolf 2011-12-31 22:28:04

+0

我仍然不明白爲什麼我可以將它放在屬性列表中,但不能以其他方式投射。但是,謝謝。 – Narcolapser 2012-01-03 21:26:25

相關問題