BsD3D9GpuBuffer.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #pragma once
  2. #include "BsD3D9Prerequisites.h"
  3. #include "BsGpuBuffer.h"
  4. namespace BansheeEngine
  5. {
  6. /**
  7. * @brief Represents a generic GPU buffer in DX9. This class
  8. * is just a dummy in order to conform to the interface
  9. * as DX9 supports no such buffers.
  10. */
  11. class BS_D3D9_EXPORT D3D9GpuBufferCore : public GpuBufferCore
  12. {
  13. public:
  14. ~D3D9GpuBufferCore();
  15. /**
  16. * @copydoc GpuBufferCore::lock
  17. */
  18. virtual void* lock(UINT32 offset, UINT32 length, GpuLockOptions options);
  19. /**
  20. * @copydoc GpuBufferCore::unlock
  21. */
  22. virtual void unlock();
  23. /**
  24. * @copydoc GpuBufferCore::readData
  25. */
  26. virtual void readData(UINT32 offset, UINT32 length, void* pDest);
  27. /**
  28. * @copydoc GpuBufferCore::writeData
  29. */
  30. virtual void writeData(UINT32 offset, UINT32 length, const void* pSource,
  31. BufferWriteType writeFlags = BufferWriteType::Normal);
  32. /**
  33. * @copydoc GpuBufferCore::copyData
  34. */
  35. void copyData(GpuBufferCore& srcBuffer, UINT32 srcOffset,
  36. UINT32 dstOffset, UINT32 length, bool discardWholeBuffer = false);
  37. protected:
  38. friend class D3D9HardwareBufferCoreManager;
  39. D3D9GpuBufferCore(UINT32 elementCount, UINT32 elementSize, GpuBufferType type, GpuBufferUsage usage,
  40. bool randomGpuWrite = false, bool useCounter = false);
  41. /**
  42. * @copydoc GpuBufferCore::createView
  43. */
  44. virtual GpuBufferView* createView();
  45. /**
  46. * @copydoc GpuBufferCore::destroyView
  47. */
  48. virtual void destroyView(GpuBufferView* view);
  49. /**
  50. * @copydoc GpuBufferCore::initialize
  51. */
  52. void initialize();
  53. };
  54. }