ScrMasker.cpp
上传用户:hkb425
上传日期:2007-06-16
资源大小:34191k
文件大小:2k
源码类别:

游戏引擎

开发平台:

Visual C++

  1. // ScrMasker.cpp: implementation of the CScrMasker class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "stdafx.h"
  5. #include "ScrMasker.h"
  6. #include "gamesetting.h"
  7. //////////////////////////////////////////////////////////////////////
  8. // Construction/Destruction
  9. //////////////////////////////////////////////////////////////////////
  10. int   CScrMasker::m_iGammaBackup=0;
  11. int   CScrMasker::m_iTimer=0;
  12. bool  CScrMasker::m_bFadeIn=false;
  13. bool  CScrMasker::m_bFadeOut=false;
  14. int   CScrMasker::m_iSprayBlood=false;
  15. CScrMasker::CScrMasker()
  16. {
  17. }
  18. CScrMasker::~CScrMasker()
  19. {
  20. }
  21. void  CScrMasker::DrawMasker(float r,float g,float b)
  22. {
  23. glColor3f(r,g,b);
  24. glDisable(GL_TEXTURE_2D);
  25. glDisable(GL_DEPTH_TEST);
  26. glEnable(GL_BLEND);
  27. float size=1.45f;
  28. glBegin(GL_QUADS);
  29.     glVertex3f(-size,-size, -1.1f);
  30.     glVertex3f( size,-size, -1.1f);
  31.     glVertex3f( size, size, -1.1f);
  32.     glVertex3f(-size, size, -1.1f);
  33.     glEnd();
  34. glDisable(GL_BLEND);
  35. glEnable(GL_DEPTH_TEST);
  36. glColor3f(1,1,1);
  37. }
  38. void  CScrMasker::BrightnessCtrl()
  39. {
  40. if(m_bFadeIn)
  41. {
  42. CGameSetting::m_iGamma++;
  43. if(CGameSetting::m_iGamma>m_iGammaBackup)
  44. {
  45.             CGameSetting::m_iGamma=m_iGammaBackup;
  46. m_bFadeIn=false;
  47. }
  48. }
  49. if(m_bFadeOut)
  50. {
  51. CGameSetting::m_iGamma--;
  52. if(CGameSetting::m_iGamma<-120)
  53. {
  54.             CGameSetting::m_iGamma=m_iGammaBackup;
  55. m_bFadeIn=false;
  56. }
  57. }
  58. float gamma=CGameSetting::m_iGamma*0.005f;
  59. if(gamma<0.01f && gamma>-0.01f)return;
  60. if(gamma>0)
  61. {
  62. glBlendFunc(GL_SRC_COLOR,GL_ONE);
  63. if(m_iSprayBlood>0)
  64. {
  65.             DrawMasker(gamma,0,0);
  66. m_iSprayBlood--;
  67. }
  68. else
  69. DrawMasker(gamma,gamma,gamma);
  70. }
  71. else
  72. {
  73. glBlendFunc(GL_ZERO,GL_SRC_COLOR);
  74. if(m_iSprayBlood>0)
  75. {
  76.             DrawMasker(1+gamma,0,0);
  77. m_iSprayBlood--;
  78. }
  79. else
  80.             DrawMasker(1+gamma,1+gamma,1+gamma);
  81. }
  82. }
  83. void  CScrMasker::MaskScreen(float r,float g,float b,bool bEnhance)
  84. {
  85. if(bEnhance)
  86. glBlendFunc(GL_SRC_COLOR,GL_ONE);
  87. else
  88. glBlendFunc(GL_ZERO,GL_SRC_COLOR);
  89. DrawMasker(r,g,b);
  90. }
  91. void  CScrMasker::SprayBlood()
  92. {
  93.     m_iSprayBlood=12;
  94. }
  95. void  CScrMasker::GrayScreen()
  96. {
  97. }
  98. void  CScrMasker::ElideLine()
  99. {
  100. }
  101. void  CScrMasker::FadeIn()
  102. {
  103. m_iGammaBackup=CGameSetting::m_iGamma;
  104. CGameSetting::m_iGamma=-120;
  105.     m_bFadeIn=true;
  106. }
  107. void  CScrMasker::FadeOut()
  108. {
  109. m_iGammaBackup=CGameSetting::m_iGamma;
  110.     m_bFadeOut=true;  
  111. }