mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-12-07 21:59:54 +00:00
LibWeb/WebGL: Implement getRenderbufferParameter()
This commit is contained in:
parent
9375660b64
commit
82dfa69e4e
Notes:
github-actions[bot]
2025-11-27 14:53:23 +00:00
Author: https://github.com/gmta
Commit: 82dfa69e4e
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/6941
3 changed files with 28 additions and 1 deletions
|
|
@ -118,7 +118,7 @@ interface mixin WebGLRenderingContextBase {
|
|||
[FIXME] any getFramebufferAttachmentParameter(GLenum target, GLenum attachment, GLenum pname);
|
||||
any getProgramParameter(WebGLProgram program, GLenum pname);
|
||||
DOMString? getProgramInfoLog(WebGLProgram program);
|
||||
[FIXME] any getRenderbufferParameter(GLenum target, GLenum pname);
|
||||
any getRenderbufferParameter(GLenum target, GLenum pname);
|
||||
any getShaderParameter(WebGLShader shader, GLenum pname);
|
||||
WebGLShaderPrecisionFormat? getShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype);
|
||||
DOMString? getShaderInfoLog(WebGLShader shader);
|
||||
|
|
|
|||
|
|
@ -1604,6 +1604,32 @@ Optional<String> WebGLRenderingContextImpl::get_program_info_log(GC::Root<WebGLP
|
|||
return String::from_utf8_without_validation(ReadonlyBytes { info_log.data(), static_cast<size_t>(info_log_length - 1) });
|
||||
}
|
||||
|
||||
JS::Value WebGLRenderingContextImpl::get_renderbuffer_parameter(WebIDL::UnsignedLong target, WebIDL::UnsignedLong pname)
|
||||
{
|
||||
m_context->make_current();
|
||||
|
||||
switch (pname) {
|
||||
case GL_RENDERBUFFER_WIDTH:
|
||||
case GL_RENDERBUFFER_HEIGHT:
|
||||
case GL_RENDERBUFFER_INTERNAL_FORMAT:
|
||||
case GL_RENDERBUFFER_RED_SIZE:
|
||||
case GL_RENDERBUFFER_GREEN_SIZE:
|
||||
case GL_RENDERBUFFER_BLUE_SIZE:
|
||||
case GL_RENDERBUFFER_ALPHA_SIZE:
|
||||
case GL_RENDERBUFFER_DEPTH_SIZE:
|
||||
case GL_RENDERBUFFER_SAMPLES:
|
||||
case GL_RENDERBUFFER_STENCIL_SIZE: {
|
||||
GLint result = 0;
|
||||
glGetRenderbufferParameteriv(target, pname, &result);
|
||||
return JS::Value(result);
|
||||
}
|
||||
default:
|
||||
// If pname is not in the table above, generates an INVALID_ENUM error.
|
||||
set_error(GL_INVALID_ENUM);
|
||||
return JS::js_null();
|
||||
}
|
||||
}
|
||||
|
||||
JS::Value WebGLRenderingContextImpl::get_shader_parameter(GC::Root<WebGLShader> shader, WebIDL::UnsignedLong pname)
|
||||
{
|
||||
m_context->make_current();
|
||||
|
|
|
|||
|
|
@ -88,6 +88,7 @@ public:
|
|||
WebIDL::UnsignedLong get_error();
|
||||
JS::Value get_program_parameter(GC::Root<WebGLProgram> program, WebIDL::UnsignedLong pname);
|
||||
Optional<String> get_program_info_log(GC::Root<WebGLProgram> program);
|
||||
JS::Value get_renderbuffer_parameter(WebIDL::UnsignedLong target, WebIDL::UnsignedLong pname);
|
||||
JS::Value get_shader_parameter(GC::Root<WebGLShader> shader, WebIDL::UnsignedLong pname);
|
||||
GC::Root<WebGLShaderPrecisionFormat> get_shader_precision_format(WebIDL::UnsignedLong shadertype, WebIDL::UnsignedLong precisiontype);
|
||||
Optional<String> get_shader_info_log(GC::Root<WebGLShader> shader);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue