DXBuffer.h 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #pragma once
  2. #include "Betriebssystem.h"
  3. struct ID3D11Buffer;
  4. enum D3D11_BIND_FLAG;
  5. namespace Framework
  6. {
  7. class Render3D;
  8. class DXBuffer
  9. {
  10. private:
  11. ID3D11Buffer *buffer;
  12. D3D11_BIND_FLAG bf;
  13. void *data;
  14. bool geändert;
  15. int län;
  16. int altLän;
  17. int elLän;
  18. protected:
  19. int ref;
  20. public:
  21. // Konstruktor
  22. // bind: Der verwendungszweck des Buffers. Beispiel: D3D11_BIND_INDEX_BUFFER, D3D11_BIND_VERTEX_BUFFER.
  23. // eLän: Länge eines einzelnen Elements in Bytes
  24. __declspec( dllexport ) DXBuffer( D3D11_BIND_FLAG bind, int eLän );
  25. // Destruktor
  26. __declspec( dllexport ) ~DXBuffer();
  27. // Setzt den geändert fläg, so das beim nächsten auruf von 'kopieren' die daten neu kopiert werden
  28. __declspec( dllexport ) void setGeändert();
  29. // Ändert die länge des Buffers beim nächsten aufruf von 'kopieren'
  30. // län: Die Länge in Bytes
  31. __declspec( dllexport ) void setLänge( int län );
  32. // Legt fest, was beim nächsten aufruf von 'kopieren' kopiert wird
  33. // data: Ein zeiger auf die Daten
  34. __declspec( dllexport ) void setData( void *data );
  35. // Kopiert die Daten in den Buffer, fals sie sich verändert haben
  36. // zRObj: Das Objekt, mit dem die Grafikkarte angesprochen wird
  37. __declspec( dllexport ) void copieren( Render3D *zRObj );
  38. // Gibt die Länge eines Elementes in bytes zurück
  39. __declspec( dllexport ) int getElementLänge() const;
  40. // Gibt den Buffer zurück
  41. __declspec( dllexport ) ID3D11Buffer *zBuffer() const;
  42. // Gibt die Anzahl der Elemente im Buffer zurück
  43. __declspec( dllexport ) int getElementAnzahl() const;
  44. // Erhöht den Reference Counting Zähler.
  45. // return: this.
  46. __declspec( dllexport ) DXBuffer *getThis();
  47. // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Zeichnung automatisch gelöscht.
  48. // return: 0.
  49. __declspec( dllexport ) virtual DXBuffer *release();
  50. };
  51. class DXVertexBuffer : public DXBuffer
  52. {
  53. public:
  54. // Konstruktor
  55. // eSize: Die Länge eines Elementes in Bytes
  56. __declspec( dllexport ) DXVertexBuffer( int eSize );
  57. // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Zeichnung automatisch gelöscht.
  58. // return: 0.
  59. __declspec( dllexport ) virtual DXBuffer *release();
  60. };
  61. class DXIndexBuffer : public DXBuffer
  62. {
  63. public:
  64. // Konstruktor
  65. // eSize: Die Länge eines Elementes in Bytes
  66. __declspec( dllexport ) DXIndexBuffer( int eSize );
  67. // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Zeichnung automatisch gelöscht.
  68. // return: 0.
  69. __declspec( dllexport ) virtual DXBuffer *release();
  70. };
  71. }