Skip to content

Commit 8dcbe69

Browse files
Lubrsigmta
authored andcommitted
LibWeb/WebGL2: Implement drawRangeElements
1 parent 2c13a2a commit 8dcbe69

File tree

3 files changed

+10
-1
lines changed

3 files changed

+10
-1
lines changed

Libraries/LibWeb/WebGL/WebGL2RenderingContextBase.idl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -365,7 +365,7 @@ interface mixin WebGL2RenderingContextBase {
365365
undefined vertexAttribDivisor(GLuint index, GLuint divisor);
366366
undefined drawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei instanceCount);
367367
undefined drawElementsInstanced(GLenum mode, GLsizei count, GLenum type, GLintptr offset, GLsizei instanceCount);
368-
[FIXME] undefined drawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, GLintptr offset);
368+
undefined drawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, GLintptr offset);
369369

370370
// Multiple Render Targets
371371
undefined drawBuffers(sequence<GLenum> buffers);

Libraries/LibWeb/WebGL/WebGL2RenderingContextImpl.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -404,6 +404,14 @@ void WebGL2RenderingContextImpl::draw_elements_instanced(WebIDL::UnsignedLong mo
404404
needs_to_present();
405405
}
406406

407+
void WebGL2RenderingContextImpl::draw_range_elements(WebIDL::UnsignedLong mode, WebIDL::UnsignedLong start, WebIDL::UnsignedLong end, WebIDL::Long count, WebIDL::UnsignedLong type, WebIDL::LongLong offset)
408+
{
409+
m_context->make_current();
410+
m_context->notify_content_will_change();
411+
needs_to_present();
412+
glDrawRangeElements(mode, start, end, count, type, reinterpret_cast<void*>(offset));
413+
}
414+
407415
void WebGL2RenderingContextImpl::draw_buffers(Vector<WebIDL::UnsignedLong> buffers)
408416
{
409417
m_context->make_current();

Libraries/LibWeb/WebGL/WebGL2RenderingContextImpl.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ class WebGL2RenderingContextImpl : public WebGLRenderingContextBase {
6161
void vertex_attrib_divisor(WebIDL::UnsignedLong index, WebIDL::UnsignedLong divisor);
6262
void draw_arrays_instanced(WebIDL::UnsignedLong mode, WebIDL::Long first, WebIDL::Long count, WebIDL::Long instance_count);
6363
void draw_elements_instanced(WebIDL::UnsignedLong mode, WebIDL::Long count, WebIDL::UnsignedLong type, WebIDL::LongLong offset, WebIDL::Long instance_count);
64+
void draw_range_elements(WebIDL::UnsignedLong mode, WebIDL::UnsignedLong start, WebIDL::UnsignedLong end, WebIDL::Long count, WebIDL::UnsignedLong type, WebIDL::LongLong offset);
6465
void draw_buffers(Vector<WebIDL::UnsignedLong> buffers);
6566
void clear_bufferfv(WebIDL::UnsignedLong buffer, WebIDL::Long drawbuffer, Float32List values, WebIDL::UnsignedLongLong src_offset);
6667
void clear_bufferiv(WebIDL::UnsignedLong buffer, WebIDL::Long drawbuffer, Int32List values, WebIDL::UnsignedLongLong src_offset);

0 commit comments

Comments
 (0)