Luke Wilde
71746c47c2
LibWeb/WebGL: Bind default frame/render buffer when binding is null
...
This fixes the depth issues on github.com, as the depth commands are
now sent to the right frame/render buffer.
2025-01-08 17:55:17 +03:00
Luke Wilde
e5d59a2d42
LibWeb/WebGL2: Implement getSyncParameter
2025-01-08 17:55:17 +03:00
Luke Wilde
49c966b4e7
LibWeb/WebGL2: Implement uniform{1,2,3,4}ui
2025-01-08 17:55:17 +03:00
Luke Wilde
2f26ade426
LibWeb/WebGL2: Implement copyBufferSubData
2025-01-08 17:55:17 +03:00
Luke Wilde
db2d8f8f17
LibWeb/WebGL2: Implement bindBufferRange
2025-01-08 17:55:17 +03:00
Luke Wilde
c30c1d65f4
LibWeb/WebGL2: Implement clearBuffer{fv,iv,uiv,fi}
2025-01-08 17:55:17 +03:00
Luke Wilde
f627c91bf3
LibWeb/WebGL2: Implement deleteSampler
2025-01-08 17:55:17 +03:00
Luke Wilde
09ad685238
LibWeb/WebGL2: Implement samplerParameter{i,f}
2025-01-08 17:55:17 +03:00
Luke Wilde
42cce393f4
LibWeb/WebGL2: Implement drawElementsInstanced
2025-01-08 17:55:17 +03:00
Luke Wilde
c05fa44cf8
LibWeb/WebGL2: Implement vertexAttribDivisor
2025-01-08 17:55:17 +03:00
Luke Wilde
b6bc5912d6
LibWeb/WebGL: Implement tex(Sub)Image2D with TexImageSource
2025-01-08 17:55:17 +03:00
Luke Wilde
f66f01ce53
LibWeb/WebGL: Implement getUniformBlockIndex
2025-01-08 17:55:17 +03:00
Luke Wilde
216d5b33be
LibWeb/WebGL: Enforce minimum size when resizing existing context
...
Previously the enforcement was only done on creation. Not enforcing it
on change would cause a crash if the canvas width/height was set to
zero or less.
2025-01-08 17:55:17 +03:00
Luke Wilde
8e453d5069
LibWeb/WebGL: Preserve original bound objects to return in getParameter
...
Required by https://qwasm2.m-h.org.uk , which adds a custom `name`
attribute to objects it generates. It then gets some of these objects
out with getParameter, and expects the `name` attribute to be there.
2025-01-08 17:55:17 +03:00
Luke Wilde
c067271897
LibWeb/WebGL2: Implement getActiveUniformBlockParameter
2025-01-08 17:55:17 +03:00
Luke Wilde
191ceb0f61
LibWeb/WebGL2: Implement getActiveUniformBlockName
2025-01-08 17:55:17 +03:00
Luke Wilde
7957793863
LibWeb/WebGL2: Implement uniformBlockBinding
2025-01-08 17:55:17 +03:00
Luke Wilde
28a73dc392
LibWeb/WebGL: Implement deleteRenderbuffer
2025-01-08 17:55:17 +03:00
Luke Wilde
e26b524721
LibWeb/WebGL2: Implement invalidateFramebuffer
2025-01-08 17:55:17 +03:00
Luke Wilde
63b792c205
LibWeb/WebGL2: Implement bufferSubData with offset and length
2025-01-08 17:55:17 +03:00
Luke Wilde
18ea91715b
LibWeb/WebGL2: Implement bufferData with offset and length
2025-01-08 17:55:17 +03:00
Aliaksandr Kalenik
30d915c361
LibGfx+LibWeb: Specify bottom left origin for WebGL's PaintingSurface
...
By doing that we eliminate the need for the vertical flip flag.
As a side effect it fixes the bug when doing:
`canvasContext2d.drawImage(canvasWithWebGLContext, 0, 0);`
produced a flipped image because we didn't account for different origin
while serializing PaintingSurface into Gfx::Bitmap.
Visual progress on https://ciechanow.ski/curves-and-surfaces/
2024-12-20 20:47:45 +01:00
Aliaksandr Kalenik
c9105955f6
LibWeb/WebGL: Add support for ANGLEInstancedArrays extension
...
This is only WebGL 1.0 extension. It's enabled in ANGLE by default.
Progress on https://ciechanow.ski/curves-and-surfaces/ that relies on
this extension.
2024-12-20 15:31:58 +01:00
Aliaksandr Kalenik
07635d4554
LibWeb/WebGL: Set INVALID_OPERATION if object does not belong to context
2024-12-19 13:38:43 +01:00
Aliaksandr Kalenik
cf730870c5
LibWeb: Save WebGL context pointer in WebGLObject
...
This way we could be sure that context object won't be deallocated
before any of the objects that belong to it.
Having a context pointer is also going to be used in upcoming changes
to generate an INVALID_OPERATION error if an object does not belong to
the context it's being used in.
2024-12-19 13:38:43 +01:00
Luke Wilde
160c15444b
LibWeb/WebGL2: Implement blitFramebuffer
2024-12-14 09:06:28 +01:00
Luke Wilde
4a4263d869
LibWeb/WebGL2: Implement readBuffer
2024-12-14 09:06:28 +01:00
Luke Wilde
db89b478ff
LibWeb/WebGL2: Implement renderbufferStorageMultisample
2024-12-14 09:06:28 +01:00
Luke Wilde
8b07af9801
LibWeb/WebGL2: Implement bindBufferBase
2024-12-14 09:06:28 +01:00
Luke Wilde
6e42f401f9
LibWeb/WebGL2: Implement texImage3D with ArrayBufferView and offset
2024-12-14 09:06:28 +01:00
Luke Wilde
50b4d65540
LibWeb/WebGL2: Implement texImage2D with ArrayBufferView and offset
2024-12-14 09:06:28 +01:00
Luke Wilde
766f4d2ec4
LibWeb/WebGL2: Implement texSubImage2D with ArrayBufferView and offset
2024-12-14 09:06:28 +01:00
Luke Wilde
e6ebec853b
LibWeb/WebGL2: Implement texSubImage3D with ArrayBufferView and offset
2024-12-14 09:06:28 +01:00
Luke Wilde
5cde82ac80
LibWeb/WebGL2: Implement texStorage3D
2024-12-14 09:06:28 +01:00
Luke Wilde
776328e2e7
LibWeb/WebGL2: Implement getInternalformatParameter
2024-12-14 09:06:28 +01:00
Luke Wilde
0207487199
LibWeb/WebGL2: Implement deleteSync
2024-12-14 09:06:28 +01:00
Luke Wilde
ff8a9549f1
LibWeb/WebGL2: Implement clientWaitSync
2024-12-14 09:06:28 +01:00
Luke Wilde
135ceb387e
LibWeb/WebGL2: Implement fenceSync
2024-12-14 09:06:28 +01:00
Luke Wilde
bc9ae79a47
LibWeb/WebGL2: Implement texSubImage2D with ArrayBufferView
2024-12-14 09:06:28 +01:00
Luke Wilde
f4f3e446a2
LibWeb/WebGL2: Implement bindSampler
2024-12-14 09:06:28 +01:00
Luke Wilde
8a9d1de1cf
LibWeb/WebGL2: Implement createSampler
2024-12-14 09:06:28 +01:00
Luke Wilde
71521a7004
LibWeb/WebGL2: Implement WebGL 1 version of bufferSubData
2024-12-14 09:06:28 +01:00
Luke Wilde
bd1cc239df
LibWeb/WebGL2: Implement uniformMatrix{2,3,4}fv
2024-12-14 09:06:28 +01:00
Aliaksandr Kalenik
897883f947
LibWeb/WebGL: Implement texStorage2D()
2024-12-13 09:19:10 +01:00
Aliaksandr Kalenik
cfff38a176
LibWeb/WebGL: Implement uniform{1,2,3,4}{i,f}v calls for WebGL2
2024-12-13 09:19:10 +01:00
Aliaksandr Kalenik
73479d3f94
LibWeb/WebGL: Implement drawBuffers()
2024-12-13 09:19:10 +01:00
Aliaksandr Kalenik
145bb0f849
LibWeb/WebGL: Implement getSupportedExtensions()
2024-12-13 09:19:10 +01:00
Aliaksandr Kalenik
af4f0c5a81
LibWeb/WebGL: Implement texImage3D()
2024-12-13 09:19:10 +01:00
Aliaksandr Kalenik
ba19328b98
LibWeb/WebGL: Implement vertexAttrib{1,2,3,4}fv
2024-12-13 09:19:10 +01:00
Aliaksandr Kalenik
4e8ec1e793
LibWeb/WebGL: Implement readPixels()
2024-12-13 09:19:10 +01:00