FactoryCraftModel.h 1.1 KB

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