Advertisement
Guest User

Untitled

a guest
Nov 1st, 2012
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.26 KB | None | 0 0
  1. --- oldtest043/src/defaultsettings.cpp
  2. +++ newtest043/src/defaultsettings.cpp
  3. @@ -53,6 +53,9 @@
  4. settings->setDefault("keymap_increase_viewing_range_min", "+");
  5. settings->setDefault("keymap_decrease_viewing_range_min", "-");
  6. settings->setDefault("aux1_descends", "false");
  7. + settings->setDefault("anaglyph", "false");
  8. + settings->setDefault("anaglyph_strength", "0.01");
  9. +
  10. // Some (temporary) keys for debugging
  11. settings->setDefault("keymap_print_debug_stacks", "KEY_KEY_P");
  12. settings->setDefault("keymap_quicktune_prev", "KEY_HOME");
  13. --- oldtest043/src/game.cpp
  14. +++ newtest043/src/game.cpp
  15. @@ -2734,6 +2734,67 @@
  16. {
  17. TimeTaker timer("smgr");
  18. smgr->drawAll();
  19. +
  20. + if(g_settings->getBool("anaglyph"))
  21. + {
  22. + irr::core::vector3df oldPosition = camera.getCameraNode()->getPosition();
  23. + irr::core::vector3df oldTarget = camera.getCameraNode()->getTarget();
  24. + irr::core::matrix4 startMatrix = camera.getCameraNode()->getAbsoluteTransformation();
  25. + irr::core::vector3df focusPoint = (camera.getCameraNode()->getTarget() -
  26. + camera.getCameraNode()->getAbsolutePosition()).setLength(1) +
  27. + camera.getCameraNode()->getAbsolutePosition();
  28. +
  29. + //Left eye...
  30. + irr::core::vector3df leftEye;
  31. + irr::core::matrix4 leftMove;
  32. + leftMove.setTranslation( irr::core::vector3df(-g_settings->getFloat("anaglyph_strength"),0.0f,0.0f) );
  33. + leftEye=(startMatrix*leftMove).getTranslation();
  34. +
  35. + //clear the depth buffer, and color
  36. + driver->beginScene( true, true, irr::video::SColor(0,200,200,255) );
  37. + driver->getOverrideMaterial().Material.ColorMask = irr::video::ECP_RED;
  38. + driver->getOverrideMaterial().EnableFlags = irr::video::EMF_COLOR_MASK;
  39. + driver->getOverrideMaterial().EnablePasses = irr::scene::ESNRP_SKY_BOX +
  40. + irr::scene::ESNRP_SOLID +
  41. + irr::scene::ESNRP_TRANSPARENT +
  42. + irr::scene::ESNRP_TRANSPARENT_EFFECT +
  43. + irr::scene::ESNRP_SHADOW;
  44. +
  45. + camera.getCameraNode()->setPosition( leftEye );
  46. + camera.getCameraNode()->setTarget( focusPoint );
  47. + smgr->drawAll(); // 'smgr->drawAll();' may go here
  48. +
  49. + //Right eye...
  50. + irr::core::vector3df rightEye;
  51. + irr::core::matrix4 rightMove;
  52. + rightMove.setTranslation( irr::core::vector3df(g_settings->getFloat("anaglyph_strength"),0.0f,0.0f) );
  53. + rightEye=(startMatrix*rightMove).getTranslation();
  54. +
  55. + //clear the depth buffer
  56. + driver->clearZBuffer();
  57. + driver->getOverrideMaterial().Material.ColorMask = irr::video::ECP_GREEN + irr::video::ECP_BLUE;
  58. + driver->getOverrideMaterial().EnableFlags = irr::video::EMF_COLOR_MASK;
  59. + driver->getOverrideMaterial().EnablePasses = irr::scene::ESNRP_SKY_BOX +
  60. + irr::scene::ESNRP_SOLID +
  61. + irr::scene::ESNRP_TRANSPARENT +
  62. + irr::scene::ESNRP_TRANSPARENT_EFFECT +
  63. + irr::scene::ESNRP_SHADOW;
  64. +
  65. + camera.getCameraNode()->setPosition( rightEye );
  66. + camera.getCameraNode()->setTarget( focusPoint );
  67. +
  68. + smgr->drawAll(); // 'smgr->drawAll();' may go here
  69. +
  70. + //driver->endScene();
  71. +
  72. + driver->getOverrideMaterial().Material.ColorMask=irr::video::ECP_ALL;
  73. + driver->getOverrideMaterial().EnableFlags = 0;
  74. + driver->getOverrideMaterial().EnablePasses = 0;
  75. +
  76. + camera.getCameraNode()->setPosition( oldPosition );
  77. + camera.getCameraNode()->setTarget( oldTarget );
  78. + }
  79. +
  80. scenetime = timer.stop(true);
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement