private void SpecialKeyPressed(int key, int x, int y)
{
int mod = Glut.glutGetModifiers();
if (m_displayCalibrationGrid)
{
switch (mod)
{
case 0: // no modifiers
switch ((char)key)
{
case (char)Glut.GLUT_KEY_RIGHT:
m_projectionX += 0.01f;
PrintProjectionParameters();
break;
case (char)Glut.GLUT_KEY_LEFT:
m_projectionX -= 0.01f;
PrintProjectionParameters();
break;
case (char)Glut.GLUT_KEY_DOWN:
m_projectionY += 0.01f;
PrintProjectionParameters();
break;
case (char)Glut.GLUT_KEY_UP:
m_projectionY -= 0.01f;
PrintProjectionParameters();
break;
}
break;
case Glut.GLUT_ACTIVE_SHIFT:
switch ((char)key)
{
case (char)Glut.GLUT_KEY_RIGHT:
m_projectionW += 0.01f;
PrintProjectionParameters();
break;
case (char)Glut.GLUT_KEY_LEFT:
m_projectionW -= 0.01f;
PrintProjectionParameters();
break;
case (char)Glut.GLUT_KEY_DOWN:
m_projectionH -= 0.01f;
PrintProjectionParameters();
break;
case (char)Glut.GLUT_KEY_UP:
m_projectionH += 0.01f;
PrintProjectionParameters();
break;
}
break;
case Glut.GLUT_ACTIVE_ALT:
switch ((char)key)
{
case (char)Glut.GLUT_KEY_DOWN:
m_projectionYAngle -= 0.1f;
PrintProjectionParameters();
break;
case (char)Glut.GLUT_KEY_UP:
m_projectionYAngle += 0.1f;
PrintProjectionParameters();
break;
}
break;
}
}
switch ((char)key)
{
case (char)Glut.GLUT_KEY_F1:
ToggleFullScreen();
break;
//case (char)Glut.GLUT_KEY_F2:
// if (s_timerTime > 10)
// {
// s_timerTime--;
// Console.WriteLine("Redraw timer cycle: " + s_timerTime + "ms (~" + (int)(1000f / (float)s_timerTime) + " fps).");
// }
// break;
//case (char)Glut.GLUT_KEY_F3:
// s_timerTime++;
// Console.WriteLine("Redraw timer cycle: " + s_timerTime + "ms (~" + (int)(1000f / (float)s_timerTime) + " fps).");
// break;
}
// force re-display
Glut.glutPostRedisplay();
}