appdeveloper
10-12-2009, 08:07 AM
I'm trying to draw points on the SimpleOpenGlControl1 using the event SimpleOpenGlControl1_KeyDown.
Seems like when i draw the points on the control the points are drawn on diferent places of where i clicked. Anyone knows how can i solve this problem? this is part of the code:
Private Sub SimpleOpenGlControl1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles SimpleOpenGlControl1.MouseDown
m_curPoints += 1
If m_curPoints = 1 Then
ReDim m_Points(m_curPoints)
Else
ReDim Preserve m_Points(m_curPoints)
End If
m_Points(m_curPoints - 1).X = e.X
m_Points(m_curPoints - 1).Y = e.Y
renderScene()
Me.Refresh()
End Sub
Private Sub renderScene()
Dim intContador As Integer
Gl.glClear(Gl.GL_COLOR_BUFFER_BIT Or Gl.GL_DEPTH_BUFFER_BIT)
Gl.glPushMatrix()
'Const viewAngle As Single = 103.0F
'Gl.glRotatef(0.0F, 1.0F, 0.2F, 0.0F)
Gl.glBindTexture(Gl.GL_TEXTURE_2D, texture)
Gl.glBegin(Gl.GL_TRIANGLE_STRIP)
Gl.glColor3f(1.0F, 1.0F, 1.0F)
Gl.glTexCoord2f(-1.0, 0.0) : Gl.glVertex3f(0.0, m_size.Height, 0.0)
Gl.glTexCoord2f(-1.0, 1.0) : Gl.glVertex3f(0.0, 0.0, 0.0)
Gl.glTexCoord2f(0.0, 0.0) : Gl.glVertex3f(m_size.Width, m_size.Height, 0.0)
Gl.glTexCoord2f(0.0, 1.0) : Gl.glVertex3f(m_size.Width, 0.0, 0.0)
Gl.glEnd()
If m_curPoints > 0 Then
Gl.glPointSize(5)
Gl.glColor3f(1.0F, 0.0F, 0.0F)
For intContador = 0 To m_curPoints - 1
Gl.glBegin(Gl.GL_POINTS)
Gl.glVertex3f(m_Points(intContador).X, m_Points(intContador).Y, 0.0)
Gl.glEnd()
Next
End If
Gl.glPopMatrix()
Gl.glFlush()
End Sub
Seems like when i draw the points on the control the points are drawn on diferent places of where i clicked. Anyone knows how can i solve this problem? this is part of the code:
Private Sub SimpleOpenGlControl1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles SimpleOpenGlControl1.MouseDown
m_curPoints += 1
If m_curPoints = 1 Then
ReDim m_Points(m_curPoints)
Else
ReDim Preserve m_Points(m_curPoints)
End If
m_Points(m_curPoints - 1).X = e.X
m_Points(m_curPoints - 1).Y = e.Y
renderScene()
Me.Refresh()
End Sub
Private Sub renderScene()
Dim intContador As Integer
Gl.glClear(Gl.GL_COLOR_BUFFER_BIT Or Gl.GL_DEPTH_BUFFER_BIT)
Gl.glPushMatrix()
'Const viewAngle As Single = 103.0F
'Gl.glRotatef(0.0F, 1.0F, 0.2F, 0.0F)
Gl.glBindTexture(Gl.GL_TEXTURE_2D, texture)
Gl.glBegin(Gl.GL_TRIANGLE_STRIP)
Gl.glColor3f(1.0F, 1.0F, 1.0F)
Gl.glTexCoord2f(-1.0, 0.0) : Gl.glVertex3f(0.0, m_size.Height, 0.0)
Gl.glTexCoord2f(-1.0, 1.0) : Gl.glVertex3f(0.0, 0.0, 0.0)
Gl.glTexCoord2f(0.0, 0.0) : Gl.glVertex3f(m_size.Width, m_size.Height, 0.0)
Gl.glTexCoord2f(0.0, 1.0) : Gl.glVertex3f(m_size.Width, 0.0, 0.0)
Gl.glEnd()
If m_curPoints > 0 Then
Gl.glPointSize(5)
Gl.glColor3f(1.0F, 0.0F, 0.0F)
For intContador = 0 To m_curPoints - 1
Gl.glBegin(Gl.GL_POINTS)
Gl.glVertex3f(m_Points(intContador).X, m_Points(intContador).Y, 0.0)
Gl.glEnd()
Next
End If
Gl.glPopMatrix()
Gl.glFlush()
End Sub