Closed
Bug 1170455
Opened 9 years ago
Closed 9 years ago
WebGL 2 - getVertexAttrib(..., gl.CURRENT_VERTEX_ATTRIB) doesn't have integer types.
Categories
(Core :: Graphics: CanvasWebGL, defect)
Core
Graphics: CanvasWebGL
Tracking
()
RESOLVED
FIXED
mozilla42
Tracking | Status | |
---|---|---|
firefox42 | --- | fixed |
People
(Reporter: u480271, Assigned: u480271)
References
(Regressed 1 open bug, )
Details
(Whiteboard: [gfx-noted])
Attachments
(4 files)
4.72 KB,
patch
|
jgilbert
:
review+
|
Details | Diff | Splinter Review |
11.65 KB,
patch
|
jgilbert
:
review+
|
Details | Diff | Splinter Review |
4.71 KB,
patch
|
jgilbert
:
review+
|
Details | Diff | Splinter Review |
14.65 KB,
patch
|
jgilbert
:
review+
|
Details | Diff | Splinter Review |
getVertexAttrib needs to track integer types properly. FAIL gl.getVertexAttrib(0, gl.CURRENT_VERTEX_ATTRIB) is not an instance of Int32Array FAIL gl.getVertexAttrib(0, gl.CURRENT_VERTEX_ATTRIB)[0] should be -1. Was NaN. PASS gl.getVertexAttrib(0, gl.CURRENT_VERTEX_ATTRIB)[1] is 0 FAIL gl.getVertexAttrib(0, gl.CURRENT_VERTEX_ATTRIB)[2] should be 1. Was 1.401298464324817e-45. FAIL gl.getVertexAttrib(0, gl.CURRENT_VERTEX_ATTRIB)[3] should be 2. Was 2.802596928649634e-45. FAIL gl.getVertexAttrib(0, gl.CURRENT_VERTEX_ATTRIB) is not an instance of Uint32Array PASS gl.getVertexAttrib(0, gl.CURRENT_VERTEX_ATTRIB)[0] is 0 FAIL gl.getVertexAttrib(0, gl.CURRENT_VERTEX_ATTRIB)[1] should be 1. Was 1.401298464324817e-45. FAIL gl.getVertexAttrib(0, gl.CURRENT_VERTEX_ATTRIB)[2] should be 2. Was 2.802596928649634e-45. FAIL gl.getVertexAttrib(0, gl.CURRENT_VERTEX_ATTRIB)[3] should be 3. Was 4.203895392974451e-45.
Attachment #8636330 -
Flags: review?(jgilbert)
Attachment #8636331 -
Flags: review?(jgilbert)
Attachment #8636333 -
Flags: review?(jgilbert)
So the correct typed array can be returned from GetVertexAttrib.
Attachment #8636334 -
Flags: review?(jgilbert)
Comment 5•9 years ago
|
||
Comment on attachment 8636330 [details] [diff] [review] Part 1: Reformat GetVertexAttrib function. Review of attachment 8636330 [details] [diff] [review]: ----------------------------------------------------------------- ::: dom/canvas/WebGLContextVertices.cpp @@ +282,2 @@ > { > + return JS::Int32Value(mBoundVertexArray->mAttribs[index].divisor); One-line return should either omit `{` or they should go on the same line as the one-line conditional. I see this was already here, but while we're cleaning up weird braces, let's clean this up too. @@ +286,3 @@ > > + case LOCAL_GL_CURRENT_VERTEX_ATTRIB: { > + GLfloat vec[4] = {0, 0, 0, 1}; This should be indented again. Also, I think the `{` should go on the next line, properly indented for normal case branch contents. We can't do: switch (foo) { case BAR: { // ... } } // <- what? So we have been treating case scopes like anonymous scopes: switch (foo) { case BAR: // base indent level { // ... } } // <- normal
Attachment #8636330 -
Flags: review?(jgilbert) → review+
Updated•9 years ago
|
Attachment #8636331 -
Flags: review?(jgilbert) → review+
Comment 6•9 years ago
|
||
Comment on attachment 8636331 [details] [diff] [review] Part 2: Split vertex attribute functions into separate file. Review of attachment 8636331 [details] [diff] [review]: ----------------------------------------------------------------- I would call the new file WebGL2ContextVertexAttribs. It's not about vertices per se.
Comment 7•9 years ago
|
||
Comment on attachment 8636333 [details] [diff] [review] Part 3: Wrangle GetVertexAttribI symbols. Review of attachment 8636333 [details] [diff] [review]: ----------------------------------------------------------------- ::: gfx/gl/GLContext.h @@ +2385,5 @@ > + } > + > + void fGetVertexAttribIuiv(GLuint index, GLenum pname, GLuint* params) > + { > + ASSERT_SYMBOL_PRESENT(fGetVertexAttribIuiv); Gotta love the "I[u]iv" letter soup.
Attachment #8636333 -
Flags: review?(jgilbert) → review+
(In reply to Jeff Gilbert [:jgilbert] from comment #6) > I would call the new file WebGL2ContextVertexAttribs. It's not about > vertices per se. The equivalent functions for WebGL1 are in WebGLContextVertices.cpp. I kept that pattern. Is that a good enough reason not to rename to WebGL2ContextVertexAttribs?
(In reply to Jeff Gilbert [:jgilbert] from comment #7) > Gotta love the "I[u]iv" letter soup. It's like Superbowl numbering!
Comment 10•9 years ago
|
||
Comment on attachment 8636334 [details] [diff] [review] Part 4: Track the type of the generic vertex attribute. Review of attachment 8636334 [details] [diff] [review]: ----------------------------------------------------------------- ::: dom/canvas/WebGLContextVertices.cpp @@ +24,5 @@ > +GLint PuntToInt(GLfloat f) > +{ > + fi_t tmp; > + tmp.f = f; > + return tmp.i; Consider using MFBT's `ToT mozilla::BitwiseCast<ToT, FromT>(FromT)`.
Attachment #8636334 -
Flags: review?(jgilbert) → review+
Assignee | ||
Comment 11•9 years ago
|
||
(In reply to Jeff Gilbert [:jgilbert] from comment #10) > Consider using MFBT's `ToT mozilla::BitwiseCast<ToT, FromT>(FromT)`. Oh, cool. Didn't know about that.
Comment 12•9 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/ce1426e69a5c https://hg.mozilla.org/integration/mozilla-inbound/rev/f03847cf62c2 https://hg.mozilla.org/integration/mozilla-inbound/rev/5c815e17ac8a https://hg.mozilla.org/integration/mozilla-inbound/rev/bef0545626b5
Comment 13•9 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/ce1426e69a5c https://hg.mozilla.org/mozilla-central/rev/f03847cf62c2 https://hg.mozilla.org/mozilla-central/rev/5c815e17ac8a https://hg.mozilla.org/mozilla-central/rev/bef0545626b5
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
status-firefox42:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla42
You need to log in
before you can comment on or make changes to this bug.
Description
•