[Bf-blender-cvs] [2c2082cc627] master: GPU: Fix MSVC compile errors

Clément Foucault noreply at git.blender.org
Sun Jul 26 23:06:31 CEST 2020


Commit: 2c2082cc6276c7805c983b2ca3656aa9552a6d8d
Author: Clément Foucault
Date:   Sun Jul 26 22:55:09 2020 +0200
Branches: master
https://developer.blender.org/rB2c2082cc6276c7805c983b2ca3656aa9552a6d8d

GPU: Fix MSVC compile errors

===================================================================

M	source/blender/gpu/intern/gpu_element.cc
M	source/blender/gpu/intern/gpu_framebuffer.cc

===================================================================

diff --git a/source/blender/gpu/intern/gpu_element.cc b/source/blender/gpu/intern/gpu_element.cc
index 856a9ca515f..9f104ab3fec 100644
--- a/source/blender/gpu/intern/gpu_element.cc
+++ b/source/blender/gpu/intern/gpu_element.cc
@@ -26,6 +26,7 @@
 #include "MEM_guardedalloc.h"
 
 #include "GPU_element.h"
+#include "GPU_glew.h"
 
 #include "gpu_context_private.h"
 
@@ -37,21 +38,18 @@
 
 static GLenum convert_index_type_to_gl(GPUIndexBufType type)
 {
-  static const GLenum table[] = {
-      [GPU_INDEX_U16] = GL_UNSIGNED_SHORT,
-      [GPU_INDEX_U32] = GL_UNSIGNED_INT,
-  };
-  return table[type];
+#if GPU_TRACK_INDEX_RANGE
+  return (type == GPU_INDEX_U32) ? GL_UNSIGNED_INT : GL_UNSIGNED_SHORT;
+#else
+  return GL_UNSIGNED_INT;
+#endif
 }
 
 uint GPU_indexbuf_size_get(const GPUIndexBuf *elem)
 {
 #if GPU_TRACK_INDEX_RANGE
-  static const uint table[] = {
-      [GPU_INDEX_U16] = sizeof(GLushort),
-      [GPU_INDEX_U32] = sizeof(GLuint),
-  };
-  return elem->index_len * table[elem->index_type];
+  return elem->index_len *
+         ((elem->index_type == GPU_INDEX_U32) ? sizeof(GLuint) : sizeof(GLshort));
 #else
   return elem->index_len * sizeof(GLuint);
 #endif
diff --git a/source/blender/gpu/intern/gpu_framebuffer.cc b/source/blender/gpu/intern/gpu_framebuffer.cc
index 4a6bb1f329d..3829573cde1 100644
--- a/source/blender/gpu/intern/gpu_framebuffer.cc
+++ b/source/blender/gpu/intern/gpu_framebuffer.cc
@@ -78,17 +78,25 @@ struct GPUFrameBuffer {
 
 static GLenum convert_attachment_type_to_gl(GPUAttachmentType type)
 {
-  static const GLenum table[] = {
-      [GPU_FB_DEPTH_ATTACHMENT] = GL_DEPTH_ATTACHMENT,
-      [GPU_FB_DEPTH_STENCIL_ATTACHMENT] = GL_DEPTH_STENCIL_ATTACHMENT,
-      [GPU_FB_COLOR_ATTACHMENT0] = GL_COLOR_ATTACHMENT0,
-      [GPU_FB_COLOR_ATTACHMENT1] = GL_COLOR_ATTACHMENT1,
-      [GPU_FB_COLOR_ATTACHMENT2] = GL_COLOR_ATTACHMENT2,
-      [GPU_FB_COLOR_ATTACHMENT3] = GL_COLOR_ATTACHMENT3,
-      [GPU_FB_COLOR_ATTACHMENT4] = GL_COLOR_ATTACHMENT4,
-      [GPU_FB_COLOR_ATTACHMENT5] = GL_COLOR_ATTACHMENT5,
-  };
-  return table[type];
+#define ATTACHMENT(type) \
+  case GPU_FB_##type: { \
+    return GL_##type; \
+  } \
+    ((void)0)
+
+  switch (type) {
+    ATTACHMENT(DEPTH_ATTACHMENT);
+    ATTACHMENT(DEPTH_STENCIL_ATTACHMENT);
+    ATTACHMENT(COLOR_ATTACHMENT0);
+    ATTACHMENT(COLOR_ATTACHMENT1);
+    ATTACHMENT(COLOR_ATTACHMENT2);
+    ATTACHMENT(COLOR_ATTACHMENT3);
+    ATTACHMENT(COLOR_ATTACHMENT4);
+    ATTACHMENT(COLOR_ATTACHMENT5);
+    default:
+      BLI_assert(0);
+      return GL_COLOR_ATTACHMENT0;
+  }
 }
 
 static GPUAttachmentType attachment_type_from_tex(GPUTexture *tex, int slot)



More information about the Bf-blender-cvs mailing list