2013-05-07 46 views
0

我在啓用WebGL的OSX上的Safari中遇到問題。我可以將圖像加載到紋理,但是,每當我嘗試在某些操作後重新繪製紋理時,紋理都會變黑。 Chrome或Firefox中不會出現此問題。我已經在Safari 5.1.9和6.0.4上進行了測試。這是一個小提琴,展示了這個問題。WebGL紋理在OSX上的Safari中變爲黑色

http://jsfiddle.net/LTz37/1/

的紋理將正確加載,但按「左」或「右」按鈕後,它會變成黑色。

片段引起的問題:

gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([x1, y1, x2, y1, x1, y2, x1, y2, x2, y1, x2, y2]), gl.STATIC_DRAW); 
gl.drawArrays(gl.TRIANGLES, 0, 6); 

回答

0

質地是否需要每一個繪製操作之前約束。下面是更新的繪製(...)功能:

function draw(gl, image, x, y) { 
    gl.bindTexture(gl.TEXTURE_2D, texture); 
    setRectangle(gl, x, y, image.width, image.height); 
    gl.drawArrays(gl.TRIANGLES, 0, 6); 
} 

我更新了小提琴與更新的代碼註釋掉。

+0

這是Safari中的一個錯誤。如果用戶沒有綁定紋理,瀏覽器不應該解除綁定。 WebGL隱藏在Safari的兩層菜單中是有原因的。因爲它沒有完成。 – gman 2013-05-08 19:07:29

+0

以下是測試:FF和Chrome通過,Safari(6.0.4)失敗。 https://www.khronos.org/registry/webgl/sdk/tests/conformance/state/state-uneffected-after-compositing.html – gman 2013-05-08 19:25:56