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