Ini dimaksudkan sebagai meta-bug.
Beberapa metode yang tersisa diblokir di https://github.com/servo/servo/issues/5014 (metode yang menerima ArrayBufferView
atau BufferDataSource
dan telah diganti), tetapi beberapa metode lainnya dapat dilaksanakan tanpa masalah.
Saya akan mencoba mengajukan masalah individual untuk setiap kekurangan yang tersisa, karena beberapa di antaranya dapat berupa E-Easy
.
Klik untuk memperluas
Spesifikasi WebGL 1.0 ada di sini .
WebGL didasarkan pada spesifikasi GLES 2.0, sehingga spesifikasi WebGL sering kali memanfaatkan detailnya. Anda dapat menemukan versi PDF di sini .
Sisi DOM dari kode WebGL dapat ditemukan di file berikut:
components/script/dom/webglrenderingcontext.rs
components/script/dom/webglactiveinfo.rs
components/script/dom/webglbuffer.rs
components/script/dom/webglcontextevent.rs
components/script/dom/webglframebuffer.rs
components/script/dom/webglobject.rs
components/script/dom/webglprogram.rs
components/script/dom/webglrenderbuffer.rs
components/script/dom/webglrenderingcontext.rs
components/script/dom/webglshader.rs
components/script/dom/webglshaderprecisionformat.rs
components/script/dom/webgltexture.rs
components/script/dom/webgluniformlocation.rs
Utas WebGL adalah utas yang menerima pesan WebGL dari DOM, dan menjalankannya atau mengirimkannya ke backend WebRender.
Anda mungkin tidak perlu menyentuh apa pun di sini, tetapi jika Anda ingin melihatnya, file tersebut adalah:
components/canvas/webgl_paint_thread.rs
Definisi WebGL lainnya dan implementasi perintah ada di file webrender_traits
webgl.rs
, untuk dibagikan oleh Servo dan WebRender.
Anda akan ingin melihat definisi WebGLCommand
dan ke fungsi apply
.
Untuk bekerja secara aktif dengannya yang terbaik adalah dengan menggunakan Cargo override .
Perhatikan bahwa WebGLCommand
diekspor ulang dari canvas_traits
sebagai CanvasWebGLMessage
untuk alasan warisan (untuk menghindari rasa sakit rebase tambahan saat webrender belum bergabung).
gl.shaderSource()
(#21754)antialiasing
(#21285)ImageBitmap
(#20650)WebGLRenderingContext.bufferSubData
(#20558)[AllowShared]
(#20515)drawingBufferWidth
/ drawingBufferHeight
di WebGLRenderingContext
(#20530)WebGLRenderingContext.getContextAttributes
(#20532)WebGLRenderingContext.bufferData
(#20557)[Throws]
tidak berlaku per-overload (#20516)WebGLRenderingContext.getProgramInfoLog
(#20561)handle_object_deletion
mungkin salah (#21352)WebGLRenderingContext.activeTexture
(#20531)gl.getParameter(gl.ALIASED_LINE_WIDTH_RANGE)
(#20535)gl.getParameter(gl.BLEND_COLOR)
(#20536)gl.getParameter(gl.COLOR_CLEAR_VALUE)
(#20537)gl.getParameter(gl.COLOR_WRITEMASK)
(#20538)gl.getParameter(gl.COMPRESSED_TEXTURE_FORMATS)
(#20544)gl.getParameter(gl.DEPTH_RANGE)
(#20545)gl.getParameter(gl.GENERATE_MIPMAP_HINT)
(#20546)IMPLEMENTATION_COLOR_READ_FORMAT
dan IMPLEMENTATION_COLOR_READ_TYPE
(#20547)MAX_FRAGMENT_UNIFORM_VECTORS
dan MAX_VERTEX_UNIFORM_VECTORS
(#20548)gl.getParameter(gl.MAX_VARYING_VECTORS)
(#20549)SCISSOR_TEST
dan SCISSOR_BOX
(#20551)gl.getParameter(gl.UNPACK_COLORSPACE_CONVERSION_WEBGL)
(#20552)gl.getParameter(gl.UNPACK_FLIP_Y_WEBGL)
(#20553)gl.getParameter(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL)
(#20554)WebGLRenderingContext.bindBuffer
(#20556)gl.renderbufferStorage
(#20563)WebGLRenderingContext.getFramebufferAttachmentParameter
(#20593)WebGLRenderingContext.clear
(#20623)GLclampf
dengan benar (#20652)gl.getParameter
dan teman (#20655)renderbufferStorage
(#13710)WebGLShader
destructor sering menegaskan saat menutup halaman webgl (#21177)WebGLRenderingContext
s di halaman yang sama.WebGLCommand
sebagai CanvasWebGLMessage
(https://github.com/servo/servo/issues/10211)gl.getActiveAttrib
dan gl.getActiveUniform
(#20600)gl.getVertexAttrib
dan gl.getVertexAttribOffset
(#20608)gl-pointcoord.html
tidak menggambar apa pun (#21719)oes-texture-half-float.html
panik dengan kesalahan GL saat dijalankan dalam mode desktop (#21663)preserveDrawingBuffer
(#21132)cc @dmarcos
Saya akan bekerja untuk mengimplementasikan generateMipmap
@ConnorGBrewster saya membuka https://github.com/servo/servo/issues/10226, mari kita bahas di sana :)
Saya ingin mengerjakan getActiveUniform
@saurvs Saya membuka https://github.com/servo/servo/issues/10397 untuk Anda, jangan ragu untuk mengajukan pertanyaan apa pun yang mungkin Anda miliki di sana :)
Saya ingin mengerjakan semua metode seragam yang tersisa, jika tidak apa-apa
@autrilla Mereka milikmu! Saya telah membuka https://github.com/servo/servo/issues/10417 untuk melacaknya, jangan ragu untuk meninggalkan pertanyaan di sana :)
Saya sedang melihat fungsi stensil*.
Saya mengambil celah di copyTex*
dan texSubImage2D
Mencoba
Implement isShader
Implement isTexture
Saya ingin membantu texSubImage2D
@daoshengmu : kedengarannya bagus!
@danlrobertson , apakah Anda masih mengerjakan texSubImage2D
?
@danlrobertson Maaf karena saya tidak melihat Anda sedang mengerjakan texSubImage2D
. Saya hanya ingin membantu beberapa implementasi WebGL. Jika Anda masih mengerjakannya, saya dapat memilih copyTexImage2D
dan copyTexSubImage2D
@emilio
@daoshengmu Tidak masalah! Tidak apa-apa! Ini buruk bagi saya untuk mengambil begitu lama untuk mendapatkan PR, tapi sayangnya hidup terjadi : tersenyum:...
Apakah Anda setuju dengan mengambil texSubImage2D
? Saya sudah menerapkan komponen yang diperlukan di wr_traits . Saya seharusnya memiliki PR segera untuk copyTex*
, tetapi saya sebenarnya belum memulai texSubImage2D
. Jika Anda ingin texSubImage2D
, lakukanlah! Saya tidak memiliki keterikatan khusus dengannya. Hanya ingin belajar sedikit tentang kode webgl...
@danlrobertson Tentu. Saya akan mengambil texSubImage2D
. Terima kasih! 😄
Kalau oke saya akan kerjakan
Implement isFramebuffer
dan
Implement isRenderBuffer
@DDEFISHER lakukan! Keberatan membuka masalah untuk itu sehingga saya dapat menugaskan Anda di sana?
Saya juga akan mengerjakan isBuffer
karena mirip dengan 2 lainnya
Silakan beri komentar di sini jika Anda berniat untuk mengerjakan masalah ini. Terima kasih!
Masalah terpisah untuk masing-masing API adalah materi E-easy; ini bukan.
Adakah yang bisa menunjukkan implementasi E-easy(ish) yang bisa saya kerjakan? Terima kasih :)
@ofekd isEnabled
mungkin merupakan pilihan yang baik, karena enable
dan disable
sudah diterapkan!
@jdm saya akan mengambilnya
@ofekd isEnabled mungkin rumit sebagai kontributor baru, karena Anda perlu mengubah banyak hal di seluruh modul. Beberapa testcase dalam webgl-specific.html
, seperti fungsi blending atau fungsi stensil, harus menjadi titik awal yang sangat baik. invalid-passed-params.html
kemungkinan juga memiliki tugas mudah yang bagus.
@anholt Selama itu tidak terlalu rumit, saya tidak keberatan harus bekerja lagi. Saya belum mulai mengerjakan ini, tetapi sebagai permulaan sepertinya saya perlu mengubah:
webrender_traits/src/webgl.rs
servo/components/script/dom/webglrenderingcontext.rs
servo/components/script/dom/webidls/WebGLRenderingContext.webidl
Kecuali jika itu menghalangi upaya lain, saya akan terus mengerjakan isEnabled
Saya akan bekerja untuk mengimplementasikan validasiProgram dan getProgramInfoLog
Saya akan bekerja di uniformMatrix2fv, uniformMatrix3fv, uniformMatrix4fv dan framebufferRenderbuffer, framebufferTexture2D, renderbufferStorage.
Saya akan menjalankan demo webgl yang lebih menuntut dan mengukur kinerja pada servo dan saya membutuhkan fungsi-fungsi itu;)
@MortimerGoro Saya telah mengerjakan dukungan FBO (lihat beberapa penggabungan baru-baru ini, dan https://github.com/anholt/servo/tree/webgl-fbo). Saya juga mengumpulkan https://github.com/anholt/servo/tree/webgl-uniform-matrix-v untuk uniformmatrix, tetapi pengujian perlu di-debug.
@anholt luar biasa! apakah Anda memerlukan bantuan dengan pengujian uniformmatrix?
@MortimerGoro hanya mencari tahu apa yang terjadi dengan hasil yang tidak dapat diandalkan.
Saya telah membuka #13639 untuk melacak dukungan FBO. Ingin menambahkannya ke framebufferRenderbuffer/framebufferTexture2D?
@shravan-achar mungkin tertarik untuk mengerjakan yang tersisa di sini.
Sepertinya kehilangan toDataURL()
untuk WebGL adalah penyebab dari banyak masalah kasus uji yang tersisa (seperti asin_001_to_006.html
)
Hanya 5 API yang hilang sekarang.
saya, @taki-jaro, @mrowqa dan @xanewok akan mengerjakan masalah ini sebagai proyek siswa
cc @KiChjang
Saya berencana untuk mencoba glGetTexParameter.
Bekerja pada getFramebufferAttachmentParameter()
.
Saya ingin melakukan getRenderbufferParameter
Masalah ini sepertinya tidak lagi menyimpan catatan pengeditan karena beberapa alasan.
Sunting: Tampaknya berfungsi sekarang.
Saya menambahkan banyak masalah.
Komentar yang paling membantu
Saya berencana untuk mencoba glGetTexParameter.