Sfoglia il codice sorgente

glstuff: Fix incorrect handling of Transpose in Shader Inputs

    - Added missing recalculation of size when
    input buffer is "resized" (due to removing of
    post/pre-fixes). Now the "Transponse" part is
    correctly handled.

Signed-off-by: deflected <deflected@github>
deflected 10 anni fa
parent
commit
88e5214af7
1 ha cambiato i file con 3 aggiunte e 1 eliminazioni
  1. 3 1
      panda/src/glstuff/glShaderContext_src.cxx

+ 3 - 1
panda/src/glstuff/glShaderContext_src.cxx

@@ -589,7 +589,8 @@ reflect_uniform(int i, char *name_buffer, GLsizei name_buflen) {
   // Strip off [0] suffix that some drivers append to arrays.
   size_t size = strlen(name_buffer);
   if (size > 3 && strncmp(name_buffer + (size - 3), "[0]", 3) == 0) {
-    name_buffer[size - 3] = 0;
+    size -= 3;
+    name_buffer[size] = 0;
   }
 
   string param_name(name_buffer);
@@ -606,6 +607,7 @@ reflect_uniform(int i, char *name_buffer, GLsizei name_buflen) {
     bool transpose = false;
     bool inverse = false;
     string matrix_name(noprefix);
+    size = matrix_name.size();
 
     // Check for and chop off any "Transpose" or "Inverse" suffix.
     if (size > 15 && matrix_name.compare(size - 9, 9, "Transpose") == 0) {