#pragma once #include "../../DataView.hpp" #include "../../utils.hpp" namespace amalgine { class DeviceMemory { DISABLE_COPY(DeviceMemory) public: DeviceMemory(); // Uploaded once, drawn many times void copyStatic(const DataView &data); // Created once, changed from time to time but drawn many times more than that void copyDynamic(const DataView &data); // Uploaded once, drawn once (for example data that is changed every frame) void copyStream(const DataView &data); private: void copy(const DataView &data, i32 storageType); private: u32 vertexBufferObjectId; }; }