Timothy Flynn
a4324ee6e9
LibWeb: Remove the initialize_strings methods
...
We added these methods to propagate OOM errors at process startup, but
we longer fret about these tiny OOM failures. Requiring that these init
methods be called prohibits using these strings in processes that have
not set up a MainThreadVM. So let's just remove them and initialize the
strings in a sane manner.
In doing so, this also standardizes how we initialize strings whose C++
variable name differs from their string value. Instead of special-casing
these strings, we just include their string value in the x-macro list.
2025-01-12 00:35:58 +01:00
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