I put the code in the realize operation and it works fine.

Thank you :)

On 10 December 2012 16:05, Robert Osfield <[email protected]> wrote:
> Hi Carlos,
>
> This seems to be a bit of theme with me catching up with posts... OSG/OpenCL
> integration.
>
> Creating OpenGL objects requires a valid graphics context, so move your set
> up code to a draw callback, drawable subclass or a realize operation.
>
> Robet.
>
>
> On 5 November 2012 10:47, Carlos Reig <[email protected]> wrote:
>>
>> Hi,
>>
>> I want to initializatze OpenCL using the OSG context (in Windows) in order
>> to manipulate the OSG VBOs directly in the GPU.
>>
>> For that, I need the OpenGL current context and the device context. When I
>> had the code wrote directly in OpenGL I used the functions
>> wglGetCurrentContext() and wglGetCurrentDC() for get it, but now I would to
>> use the OSG api.
>>
>> In this moment, I have a code that gets the opengl current context and the
>> device context in the viewer realize method. But it doesn't work.
>>
>> For use Viewer::realize I have to create a child class of
>> GraphicsOperation and get all the parameters that I need.
>>
>>
>> Code:
>>
>> class WindowsContextInfo : public osg::GraphicsOperation
>> public:
>>
>>     WindowsContextInfo():
>>         osg::GraphicsOperation("WindowsContextInfo", false) {}
>>
>>             virtual void operator() (osg::GraphicsContext* gc) {
>>                 osgViewer::GraphicsHandleWin32* windowsGraphicContext =
>> dynamic_cast<osgViewer::GraphicsHandleWin32*> (gc);
>>                 hdc = windowsGraphicContext->getHDC();
>>                 wglContext = windowsGraphicContext->getWGLContext();
>>             }
>>
>>             HDC hdc;
>>             HGLRC wglContext;
>> };
>>
>>
>>
>>
>> In the main code, before doing viewer.realize() I attach the
>> GraphicOperation to the viewer:
>>
>>
>> Code:
>>
>> wci = new WindowsContextInfo;
>> viewer.setRealizeOperation(wci.get());
>> viewer.realize();
>>
>>
>>
>>
>> And, when I'm initializating OpenCL, I put the received parameters:
>>
>>
>> Code:
>>
>> cl_context_properties props[] = {
>>     CL_CONTEXT_PLATFORM,
>>     (cl_context_properties) clPlatform,
>>     CL_GL_CONTEXT_KHR,
>>     (cl_context_properties) wci.wglContext,
>>     CL_WGL_HDC_KHR,
>>     (cl_context_properties) wci.hdc,
>>     0
>> };
>>
>>
>>
>>
>> Anyone knows why I get an OpenCL context creation error? I will be
>> grateful for any track.
>>
>> Thank you!
>>
>> Cheers,
>> Carlos
>>
>> ------------------
>> Read this topic online here:
>> http://forum.openscenegraph.org/viewtopic.php?p=50977#50977
>>
>>
>>
>>
>>
>> _______________________________________________
>> osg-users mailing list
>> [email protected]
>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
>
>
> _______________________________________________
> osg-users mailing list
> [email protected]
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>



-- 
--------------------------------------
Carlos Reig Matut
LSyM - Instituto IRTIC
Universidad de Valencia

Ph. +34 96 354 3639 -- ext. 43639
http://irtic.uv.es/lsym
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to