FactoryCraftModel.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #pragma once
  2. #include <DXBuffer.h>
  3. #include <GraphicsApi.h>
  4. #include <Model3D.h>
  5. #include <Textur.h>
  6. class FactoryCraftModel : public Framework::Model3D
  7. {
  8. private:
  9. Framework::DXBuffer* vertexLightBuffer;
  10. __int64* lightBuffer;
  11. int vertexLightBufferCount;
  12. bool visible;
  13. float destroyedState;
  14. Framework::Textur* breakTextur;
  15. bool effectAlpha;
  16. unsigned char averageLight[8];
  17. protected:
  18. void beforeRender(Framework::GraphicsApi* api,
  19. Framework::Shader* zVertexShader,
  20. Framework::Shader* zPixelShader) override;
  21. void afterRender(Framework::GraphicsApi* api,
  22. Framework::Shader* zVertexShader,
  23. Framework::Shader* zPixelShader) override;
  24. public:
  25. FactoryCraftModel();
  26. ~FactoryCraftModel();
  27. void setVertexLightBuffer(__int64* data, int vertexCount);
  28. __int64* zLightBuffer();
  29. void copyLightToGPU();
  30. void setVisible(bool visible);
  31. void setDestroyedState(float percentage);
  32. void setUseEffectAlpha(bool useAlpha);
  33. bool needRenderPolygon(int index) override;
  34. Framework::Textur* zEffectTextur() override;
  35. float getEffectPercentage() override;
  36. void setAverageLight(unsigned char light[3]);
  37. };