mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-09-12 06:08:30 +09:00
[Fix] (Diligent/Buffer): Fix flags absence of buffer objects in Diligent.
This commit is contained in:
@@ -203,15 +203,15 @@ namespace MG_GL::GL {
|
|||||||
|
|
||||||
switch (target) {
|
switch (target) {
|
||||||
case GL_ARRAY_BUFFER:
|
case GL_ARRAY_BUFFER:
|
||||||
BuffDesc.BindFlags = Diligent::BIND_VERTEX_BUFFER;
|
// BuffDesc.BindFlags = Diligent::BIND_VERTEX_BUFFER;
|
||||||
name += std::format("VBO {}", buffer);
|
name += std::format("VBO {}", buffer);
|
||||||
break;
|
break;
|
||||||
case GL_ELEMENT_ARRAY_BUFFER:
|
case GL_ELEMENT_ARRAY_BUFFER:
|
||||||
BuffDesc.BindFlags = Diligent::BIND_INDEX_BUFFER;
|
// BuffDesc.BindFlags = Diligent::BIND_INDEX_BUFFER;
|
||||||
name += std::format("IBO {}", buffer);
|
name += std::format("IBO {}", buffer);
|
||||||
break;
|
break;
|
||||||
case GL_UNIFORM_BUFFER:
|
case GL_UNIFORM_BUFFER:
|
||||||
BuffDesc.BindFlags = Diligent::BIND_UNIFORM_BUFFER;
|
// BuffDesc.BindFlags = Diligent::BIND_UNIFORM_BUFFER;
|
||||||
name += std::format("UBO {}", buffer);
|
name += std::format("UBO {}", buffer);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -220,6 +220,9 @@ namespace MG_GL::GL {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BuffDesc.BindFlags |= Diligent::BIND_VERTEX_BUFFER |
|
||||||
|
Diligent::BIND_INDEX_BUFFER |
|
||||||
|
Diligent::BIND_UNIFORM_BUFFER;
|
||||||
BuffDesc.Name = name.c_str();
|
BuffDesc.Name = name.c_str();
|
||||||
BuffDesc.Usage = Diligent::USAGE_DEFAULT;
|
BuffDesc.Usage = Diligent::USAGE_DEFAULT;
|
||||||
|
|
||||||
|
|||||||
@@ -489,7 +489,9 @@ namespace MG_GL::GL {
|
|||||||
BuffDesc.Name = bufferName.c_str();
|
BuffDesc.Name = bufferName.c_str();
|
||||||
BuffDesc.Size = bufferObj.data.size();
|
BuffDesc.Size = bufferObj.data.size();
|
||||||
BuffDesc.Usage = Diligent::USAGE_DYNAMIC;
|
BuffDesc.Usage = Diligent::USAGE_DYNAMIC;
|
||||||
BuffDesc.BindFlags = Diligent::BIND_VERTEX_BUFFER;
|
BuffDesc.BindFlags = Diligent::BIND_VERTEX_BUFFER |
|
||||||
|
Diligent::BIND_INDEX_BUFFER |
|
||||||
|
Diligent::BIND_UNIFORM_BUFFER;
|
||||||
BuffDesc.CPUAccessFlags = Diligent::CPU_ACCESS_WRITE;
|
BuffDesc.CPUAccessFlags = Diligent::CPU_ACCESS_WRITE;
|
||||||
|
|
||||||
MG_Diligent::g_pDevice->CreateBuffer(BuffDesc, nullptr, &pBuffer);
|
MG_Diligent::g_pDevice->CreateBuffer(BuffDesc, nullptr, &pBuffer);
|
||||||
@@ -517,7 +519,9 @@ namespace MG_GL::GL {
|
|||||||
BuffDesc.Name = bufferName.c_str();
|
BuffDesc.Name = bufferName.c_str();
|
||||||
BuffDesc.Size = bufferObj.data.size();
|
BuffDesc.Size = bufferObj.data.size();
|
||||||
BuffDesc.Usage = Diligent::USAGE_DYNAMIC;
|
BuffDesc.Usage = Diligent::USAGE_DYNAMIC;
|
||||||
BuffDesc.BindFlags = Diligent::BIND_INDEX_BUFFER;
|
BuffDesc.BindFlags = Diligent::BIND_VERTEX_BUFFER |
|
||||||
|
Diligent::BIND_INDEX_BUFFER |
|
||||||
|
Diligent::BIND_UNIFORM_BUFFER;
|
||||||
BuffDesc.CPUAccessFlags = Diligent::CPU_ACCESS_WRITE;
|
BuffDesc.CPUAccessFlags = Diligent::CPU_ACCESS_WRITE;
|
||||||
|
|
||||||
MG_Diligent::g_pDevice->CreateBuffer(BuffDesc, nullptr, &pBuffer);
|
MG_Diligent::g_pDevice->CreateBuffer(BuffDesc, nullptr, &pBuffer);
|
||||||
@@ -701,6 +705,15 @@ namespace MG_GL::GL {
|
|||||||
void MultiDrawElements(GLenum mode, const GLsizei *count, GLenum type, const GLvoid *const *indices, GLsizei drawcount) {
|
void MultiDrawElements(GLenum mode, const GLsizei *count, GLenum type, const GLvoid *const *indices, GLsizei drawcount) {
|
||||||
PrepareForDraw();
|
PrepareForDraw();
|
||||||
|
|
||||||
|
if (MG_Diligent::IsInRenderPass) {
|
||||||
|
MG_Util::Debug::LogD("Ending current render pass.");
|
||||||
|
MG_Diligent::g_pContext->EndRenderPass();
|
||||||
|
MG_Diligent::IsInRenderPass = false;
|
||||||
|
MG_Util::Debug::LogD("Current render pass ended.");
|
||||||
|
} else {
|
||||||
|
MG_Util::Debug::LogD("No active render pass to end.");
|
||||||
|
}
|
||||||
|
|
||||||
auto* pVAO = MG_State_T::vertexArrayState->GetCurrentVAO();
|
auto* pVAO = MG_State_T::vertexArrayState->GetCurrentVAO();
|
||||||
Diligent::IBuffer* pIndexBuffer = nullptr;
|
Diligent::IBuffer* pIndexBuffer = nullptr;
|
||||||
if (pVAO->elementBuffer != 0) {
|
if (pVAO->elementBuffer != 0) {
|
||||||
|
|||||||
Reference in New Issue
Block a user