mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-11 02:29:21 +00:00
LibWeb/WebGL2: Implement bufferData with offset and length
This commit is contained in:
parent
a6ab9cc983
commit
18ea91715b
Notes:
github-actions[bot]
2025-01-08 15:01:00 +00:00
Author: https://github.com/Lubrsi
Commit: 18ea91715b
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/2943
Reviewed-by: https://github.com/kalenikaliaksandr
4 changed files with 45 additions and 1 deletions
|
@ -29,6 +29,21 @@ u32 BufferableObjectBase::byte_length() const
|
|||
[](GC::Ref<JS::ArrayBuffer> array_buffer) { return static_cast<u32>(array_buffer->byte_length()); });
|
||||
}
|
||||
|
||||
u32 BufferableObjectBase::element_size() const
|
||||
{
|
||||
return m_bufferable_object.visit(
|
||||
[](GC::Ref<JS::TypedArrayBase> typed_array) -> u32 {
|
||||
auto typed_array_record = JS::make_typed_array_with_buffer_witness_record(typed_array, JS::ArrayBuffer::Order::SeqCst);
|
||||
return typed_array_record.object->element_size();
|
||||
},
|
||||
[](GC::Ref<JS::DataView>) -> u32 {
|
||||
return 1;
|
||||
},
|
||||
[](GC::Ref<JS::ArrayBuffer>) -> u32 {
|
||||
return 1;
|
||||
});
|
||||
}
|
||||
|
||||
GC::Ref<JS::Object> BufferableObjectBase::raw_object()
|
||||
{
|
||||
return m_bufferable_object.visit([](auto const& obj) -> GC::Ref<JS::Object> { return obj; });
|
||||
|
|
|
@ -27,6 +27,7 @@ public:
|
|||
virtual ~BufferableObjectBase() override = default;
|
||||
|
||||
u32 byte_length() const;
|
||||
u32 element_size() const;
|
||||
|
||||
GC::Ref<JS::Object> raw_object();
|
||||
GC::Ref<JS::Object const> raw_object() const { return const_cast<BufferableObjectBase&>(*this).raw_object(); }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue