2017-01-15 82 views
0

我有一個元素數組緩衝區查找WebGLBuffer(ELEMENT_ARRAY_BUFFER)的長度

var index_buffer = gl.createBuffer(); 
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, index_buffer); 
gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint16Array(indices), gl.STATIC_DRAW); 

而且我希望能夠看到緩衝區的長度,但index_buffer.length是不確定的,沒有功能的WebGLBuffer類型獲取項目的長度

我該如何去了解它有多大?

UPDATE:感謝GMAN您指出,我用這個進行調試,不使用是否否則,試試這個獲取信息

+0

'indices.length'? –

+0

我有這樣的功能,我只返回緩衝區,並沒有能力看到數據數組在範圍 – FrickeFresh

+3

我很好奇,如何知道緩衝區的長度可以幫助你?您還需要知道緩衝區中的內容。 Uint8s,Uint16s,花車?事實上,它可能是一個混合的緩衝區,具有不同的偏移量的不同數據。所以如果你不知道緩衝區內容是什麼,那麼知道長度並沒有什麼用處,但另一方面,如果你知道緩衝區中有什麼,那麼你可能已經知道了長度。或者換句話說,除了可能用於調試以外,沒有理由要查找長度。只要檢查一下你所做的任何事情都沒有更好的解決方案。 – gman

回答

2

The spec has you covered更好的辦法:

gl.getBufferParameter(gl.ELEMENT_ARRAY_BUFFER, gl.BUFFER_SIZE); 

請從GPU查詢信息是昂貴的。