PDA

View Full Version : Replay OpenGL OCX



Hazem_vb
09-29-2002, 12:19 PM
I had build an Activex Control that can
plot 3D Surfaces with VC++ (Opengl) .

But When I insert the control in a vb form

and take 2 instances on the form i found

that the first instance blank where

the second is enabled .when i insert a third

one i found that the first and the second

instances blank and the third run and

so on .

Does That Problem in the double Buffer Of

OpenGL .I Mean when I use the new instance

its double buffer replaces the Old One .

The Problem is not In the gl Context because

i had create the gl Context before Drawing

I HOPE YOU ANSWER ME PLEASE ?

vshader
09-29-2002, 06:53 PM
just checking - do you share the context between all the windows, or do they have one each?

tabor25
09-30-2002, 01:46 AM
Hello,
i had this problem a year ago. i fixed it by using the function

wglMakeCurrent(hDC,hRC).

Because opengl acts like a state-maschine, you have to specify the window you want to render to. Go to the drawing-method of your ocx and call the function before drawing anything. This should help. For more information on using wglMakeCurrent, see msdn.

Best regards
tabor25

V-man
09-30-2002, 07:00 AM
This is because you can only have 1 current opengl context per thread. You can do the wglmakecurrent/wgldontmakecurrent trick to fix the problem, but you would have to do that in every function which uses GL.

V-man