Remove the need for copysource and copydest buffer usage flags.

This commit is contained in:
Alex Szpakowski
2021-12-27 21:17:04 -04:00
parent 4195911680
commit 5b3a5e7721
8 changed files with 19 additions and 35 deletions
+6 -10
View File
@@ -46,14 +46,10 @@ Buffer::Buffer(Graphics *gfx, const Settings &settings, const std::vector<DataDe
const auto &caps = gfx->getCapabilities();
bool supportsGLSL3 = caps.features[Graphics::FEATURE_GLSL3];
bool indexbuffer = settings.usageFlags & BUFFERUSAGEFLAG_INDEX;
bool vertexbuffer = settings.usageFlags & BUFFERUSAGEFLAG_VERTEX;
bool texelbuffer = settings.usageFlags & BUFFERUSAGEFLAG_TEXEL;
bool storagebuffer = settings.usageFlags & BUFFERUSAGEFLAG_SHADER_STORAGE;
bool copydest = settings.usageFlags & BUFFERUSAGEFLAG_COPY_DEST;
if (!indexbuffer && !vertexbuffer && !texelbuffer && !storagebuffer)
throw love::Exception("Buffer must be created with at least one buffer type (index, vertex, texel, or shaderstorage).");
bool indexbuffer = usageFlags & BUFFERUSAGEFLAG_INDEX;
bool vertexbuffer = usageFlags & BUFFERUSAGEFLAG_VERTEX;
bool texelbuffer = usageFlags & BUFFERUSAGEFLAG_TEXEL;
bool storagebuffer = usageFlags & BUFFERUSAGEFLAG_SHADER_STORAGE;
if (texelbuffer && !caps.features[Graphics::FEATURE_TEXEL_BUFFER])
throw love::Exception("Texel buffers are not supported on this system.");
@@ -61,8 +57,8 @@ Buffer::Buffer(Graphics *gfx, const Settings &settings, const std::vector<DataDe
if (storagebuffer && !caps.features[Graphics::FEATURE_GLSL4])
throw love::Exception("Shader Storage buffers are not supported on this system (GLSL 4 support is necessary.)");
if (copydest && dataUsage == BUFFERDATAUSAGE_STREAM)
throw love::Exception("Buffers created with 'stream' data usage cannot be used as a copy destination.");
if (storagebuffer && dataUsage == BUFFERDATAUSAGE_STREAM)
throw love::Exception("Buffers created with 'stream' data usage cannot be used as a shader storage buffer.");
size_t offset = 0;
size_t stride = 0;