Eu tenho um programa OpenGL em c #, mas também quero executar funções OpenGL de uma DLL de C ++. As alterações feitas pela minha biblioteca C ++ terão efeito no programa C #?
Editar: Para ser mais claro, quero compartilhar o mesmo contexto do OpenGL para dois idiomas.
Eu sou o PInvoking funções do C ++ que usa o OpenGL do meu código c #.
Respostas:
4 para resposta № 1O contexto atual do OpenGL é um estado global de segmento local.
O que isso significa é que, enquanto o código C ++ e C # estiver sendo executado no mesmo encadeamento, os comandos OpenGL emitidos em um dos dois serão compatíveis.
No entanto, se você estiver lidando com vários / diferentes threads, você precisará ativar o contexto OpenGL em C ++ (supondo que ele foi criado em C #), usando wglMakeCurrent()
. Para fazer isso, você terá que propagar as alças adequadas de alguma forma.