FactoryCraftModel.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  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. void afterRender(Framework::GraphicsApi* api,
  23. Framework::Shader* zVertexShader,
  24. Framework::Shader* zPixelShader) override;
  25. public:
  26. FactoryCraftModel();
  27. ~FactoryCraftModel();
  28. void setVertexLightBuffer(__int64* data, int vertexCount);
  29. __int64* zLightBuffer();
  30. void copyLightToGPU();
  31. void setVisible(bool visible);
  32. void setDestroyedState(float percentage);
  33. void setUseEffectAlpha(bool useAlpha);
  34. bool needRenderPolygon(int index) override;
  35. Framework::Texture* zEffectTexture() override;
  36. float getEffectPercentage() override;
  37. void setAverageLight(unsigned char light[3]);
  38. };