VertexLoaderManager.h 989 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. // Copyright 2008 Dolphin Emulator Project
  2. // Licensed under GPLv2+
  3. // Refer to the license.txt file included.
  4. #pragma once
  5. #include <string>
  6. #include "Common/CommonTypes.h"
  7. #include "VideoCommon/DataReader.h"
  8. #include "VideoCommon/NativeVertexFormat.h"
  9. namespace VertexLoaderManager
  10. {
  11. void Init();
  12. void Shutdown();
  13. void MarkAllDirty();
  14. // Returns -1 if buf_size is insufficient, else the amount of bytes consumed
  15. int RunVertices(int vtx_attr_group, int primitive, int count, DataReader src, bool skip_drawing, bool is_preprocess);
  16. // For debugging
  17. void AppendListToString(std::string *dest);
  18. NativeVertexFormat* GetCurrentVertexFormat();
  19. // Resolved pointers to array bases. Used by vertex loaders.
  20. extern u8 *cached_arraybases[12];
  21. void UpdateVertexArrayPointers();
  22. // Position cache for zfreeze (3 vertices, 4 floats each to allow SIMD overwrite).
  23. // These arrays are in reverse order.
  24. extern float position_cache[3][4];
  25. extern u32 position_matrix_index[3];
  26. }