CBlitter.h 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. // CBlitter - [2020-04-13 11:57:46]
  2. #ifndef _CBLITTER_H_
  3. #define _CBLITTER_H_
  4. #include "CFTTUberShader.h"
  5. #include "CFTTTexture.h"
  6. #include "CFTT2D_TexturedVert.h"
  7. #include "CFTTGraphicsBuffer.h"
  8. /*
  9. 0020CF2C CBlitter::CBlitter(int,int,int)
  10. 0020CFE0 CBlitter::~CBlitter()
  11. 0020D004 CBlitter::Clear()
  12. 0020D05C CBlitter::Render()
  13. 0020D2B8 CBlitter::OnFrameEnd()
  14. 0020D2BC CBlitter::OnMaterialModified(CFTTUberShader *,int)
  15. 0020D328 CBlitter::OnTextureDeletion(CFTTTexture *)
  16. 0020D32A CBlitter::AllocRect()
  17. 0020D3B8 CBlitter::CheckForDrawCallSwitch(int,int)
  18. 0020D45A CBlitter::AllocTri()
  19. 0020D4DA CBlitter::OnIBORequired()
  20. 0020D518 CBlitter::AllocLines(int)
  21. 0020D5AE CBlitter::AddVertList(CFTT2D_TexturedVert *,int)
  22. 0020D668 CBlitter::SetTexture(CFTTTexture *)
  23. 0020D688 CBlitter::SetPrimType(FTTPRIMTYPE)
  24. 0020D68C CBlitter::SetMatID(int)
  25. 0020D690 CBlitter::SetScissor(int,int,int,int)
  26. 0020D69C CBlitter::SetFlipY(bool)
  27. 0020D6A0 CBlitter::SetFlipX(bool)
  28. 0020D6A4 CBlitter::GetFlipX()
  29. 0020D6A8 CBlitter::GetFlipY()
  30. 0x50
  31. */
  32. struct Material_0x20 {
  33. int dMatID_0;
  34. CFTTTexture *pTexture_4;
  35. FTTPRIMTYPE ePrimType_8;
  36. int x_C; //裁剪区域
  37. int y_10;
  38. int width_14;
  39. int height_18;
  40. CFTTUberShaderSnapshot *pSnapshot_1C;
  41. };
  42. struct CBlitter_struct_2C {
  43. Material_0x20 material_0;
  44. int field_20;
  45. uint32_t field_24;
  46. uint32_t field_28;
  47. };
  48. class CBlitter {
  49. public:
  50. CBlitter(int, int, int); // 0020CF2C
  51. ~CBlitter(); // 0020CFE0
  52. void Clear(); // 0020D004
  53. void Render(); // 0020D05C
  54. void OnFrameEnd(); // 0020D2B8
  55. void OnMaterialModified(CFTTUberShader *, int); // 0020D2BC
  56. void OnTextureDeletion(CFTTTexture *); // 0020D328
  57. CFTT2D_TexturedVert *AllocRect(); // 0020D32A
  58. bool CheckForDrawCallSwitch(int, int); // 0020D3B8
  59. CFTT2D_TexturedVert *AllocTri(); // 0020D45A
  60. void OnIBORequired(); // 0020D4DA
  61. CFTT2D_TexturedVert *AllocLines(int); // 0020D518
  62. void AddVertList(CFTT2D_TexturedVert *, int); // 0020D5AE
  63. void SetTexture(CFTTTexture *pTexture); // 0020D668
  64. void SetPrimType(FTTPRIMTYPE e); // 0020D688
  65. void SetMatID(int); // 0020D68C
  66. void SetScissor(int x, int y, int w, int h); // 0020D690
  67. void SetFlipY(bool b); // 0020D69C
  68. void SetFlipX(bool b); // 0020D6A0
  69. bool GetFlipX(); // 0020D6A4
  70. bool GetFlipY(); // 0020D6A8
  71. bool bFlipX_0;
  72. bool bFlipY_1;
  73. bool bIBO_2;
  74. bool unuse_3; //没有用到,仅对齐
  75. Material_0x20 material_4;
  76. CBlitter_struct_2C *pT_24;
  77. int dList24Count_28;
  78. uint dCount_2C;
  79. int field_30;
  80. int field_34;
  81. int dLineCount_38;
  82. volatile int dint_3C; //部分指令是取short, 但是总体上认为3C这个位置是一个int
  83. CFTTGraphicsBuffer *pGrabuf_40;
  84. CFTTGraphicsBuffer *pGrabuf_44;
  85. ushort *pshort_48; //没有找到分配的函数
  86. CFTT2D_TexturedVert *pTextureVer_4C;
  87. };
  88. #endif //_CBLITTER_H_