Fix GPUIndexBuf not working in python
Since rBb47c5505aa37, Batchs containing GPUIndexBuf initialized via a PyObject with buffer protocol no longer work. This was because of an unsafe optimization in the GPUIndexBuf module for Python. So remove this micro-optimization.
This commit is contained in:
		@@ -91,15 +91,11 @@ static PyObject *pygpu_IndexBuf__tp_new(PyTypeObject *UNUSED(type), PyObject *ar
 | 
				
			|||||||
    /* Use `INT_MAX` instead of the actual number of vertices. */
 | 
					    /* Use `INT_MAX` instead of the actual number of vertices. */
 | 
				
			||||||
    GPU_indexbuf_init(&builder, prim_type.value_found, index_len, INT_MAX);
 | 
					    GPU_indexbuf_init(&builder, prim_type.value_found, index_len, INT_MAX);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if 0
 | 
					 | 
				
			||||||
    uint *buf = pybuffer.buf;
 | 
					    uint *buf = pybuffer.buf;
 | 
				
			||||||
    for (uint i = index_len; i--; buf++) {
 | 
					    for (uint i = index_len; i--; buf++) {
 | 
				
			||||||
      GPU_indexbuf_add_generic_vert(&builder, *buf);
 | 
					      GPU_indexbuf_add_generic_vert(&builder, *buf);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
#else
 | 
					
 | 
				
			||||||
    memcpy(builder.data, pybuffer.buf, index_len * sizeof(*builder.data));
 | 
					 | 
				
			||||||
    builder.index_len = index_len;
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
    PyBuffer_Release(&pybuffer);
 | 
					    PyBuffer_Release(&pybuffer);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  else {
 | 
					  else {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user