代码拉取完成,页面将自动刷新
同步操作将从 2144/Gut 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#pragma once
#include "Core.h"
#ifdef _WIN32
struct ShaderStorageBuffer
{
unsigned int SSBO;
struct Desc
{
const void *data = 0;
unsigned int dataLen;
unsigned int usage = GL_DYNAMIC_COPY;
unsigned int binding;
};
bool Create(const Desc &desc);
template <typename T>
bool Create(unsigned int binding)
{
Desc desc;
desc.dataLen = sizeof(T);
desc.binding = binding;
return Create(desc);
}
template <typename T>
void Write(const T &buf)
{
glBindBuffer(GL_SHADER_STORAGE_BUFFER, SSBO);
GLvoid *p = glMapBuffer(GL_SHADER_STORAGE_BUFFER, GL_WRITE_ONLY);
memcpy(p, &buf, sizeof(buf));
glUnmapBuffer(GL_SHADER_STORAGE_BUFFER);
};
template <typename T>
void Write(void *data, int len)
{
glBindBuffer(GL_SHADER_STORAGE_BUFFER, SSBO);
GLvoid *p = glMapBuffer(GL_SHADER_STORAGE_BUFFER, GL_WRITE_ONLY);
memcpy(p, data, len);
glUnmapBuffer(GL_SHADER_STORAGE_BUFFER);
}
template <typename T>
void Read(T &t)
{
Read(&t, sizeof(T));
}
void Read(void *data, int dataLen);
void Delete();
};
#endif
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。