MLRAmbientLight.cpp 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. //===========================================================================//
  2. // Copyright (C) Microsoft Corporation. All rights reserved. //
  3. //===========================================================================//
  4. #include "MLRHeaders.hpp"
  5. //#############################################################################
  6. //########################### MLRAmbientLight ###########################
  7. //#############################################################################
  8. MLRAmbientLight::ClassData*
  9. MLRAmbientLight::DefaultData = NULL;
  10. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  11. //
  12. void
  13. MLRAmbientLight::InitializeClass()
  14. {
  15. Verify(!DefaultData);
  16. Verify(gos_GetCurrentHeap() == StaticHeap);
  17. DefaultData =
  18. new ClassData(
  19. MLRAmbientLightClassID,
  20. "MidLevelRenderer::MLRAmbientLight",
  21. MLRLight::DefaultData
  22. );
  23. Register_Object(DefaultData);
  24. }
  25. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  26. //
  27. void
  28. MLRAmbientLight::TerminateClass()
  29. {
  30. Unregister_Object(DefaultData);
  31. delete DefaultData;
  32. DefaultData = NULL;
  33. }
  34. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  35. //
  36. MLRAmbientLight::MLRAmbientLight() :
  37. MLRLight(DefaultData)
  38. {
  39. Verify(gos_GetCurrentHeap() == Heap);
  40. lightMask = MLRState::FaceLightingMode|MLRState::VertexLightingMode;
  41. }
  42. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  43. //
  44. MLRAmbientLight::MLRAmbientLight(
  45. Stuff::MemoryStream *stream,
  46. int version
  47. ) :
  48. MLRLight(DefaultData, stream, version)
  49. {
  50. Check_Object(stream);
  51. Verify(gos_GetCurrentHeap() == Heap);
  52. lightMask = MLRState::FaceLightingMode|MLRState::VertexLightingMode;
  53. }
  54. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  55. //
  56. MLRAmbientLight::MLRAmbientLight(Stuff::Page *page) :
  57. MLRLight(DefaultData, page)
  58. {
  59. Check_Object(page);
  60. Verify(gos_GetCurrentHeap() == Heap);
  61. lightMask = MLRState::FaceLightingMode|MLRState::VertexLightingMode;
  62. }
  63. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  64. //
  65. MLRAmbientLight::~MLRAmbientLight()
  66. {
  67. }
  68. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  69. //
  70. void
  71. MLRAmbientLight::TestInstance()
  72. {
  73. Verify(IsDerivedFrom(DefaultData));
  74. }
  75. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  76. //
  77. void
  78. MLRAmbientLight::LightVertex(const MLRVertexData& vertexData)
  79. {
  80. #if COLOR_AS_DWORD
  81. TO_DO;
  82. #else
  83. vertexData.color->red += (color.red*intensity);
  84. vertexData.color->green += (color.green*intensity);
  85. vertexData.color->blue += (color.blue*intensity);
  86. #endif
  87. }