mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-16 08:40:29 +01:00
main: Add entry points for InvalidateNamedFramebuffer[Sub]Data.
Reviewed-by: Fredrik Höglund <fredrik@kde.org> Signed-off-by: Fredrik Höglund <fredrik@kde.org>
This commit is contained in:
parent
65d4a20f1c
commit
d890fc710f
4 changed files with 99 additions and 0 deletions
|
|
@ -181,6 +181,22 @@
|
|||
<param name="layer" type="GLint" />
|
||||
</function>
|
||||
|
||||
<function name="InvalidateNamedFramebufferData" offset="assign">
|
||||
<param name="framebuffer" type="GLuint" />
|
||||
<param name="numAttachments" type="GLsizei" />
|
||||
<param name="attachments" type="const GLenum *" />
|
||||
</function>
|
||||
|
||||
<function name="InvalidateNamedFramebufferSubData" offset="assign">
|
||||
<param name="framebuffer" type="GLuint" />
|
||||
<param name="numAttachments" type="GLsizei" />
|
||||
<param name="attachments" type="const GLenum *" />
|
||||
<param name="x" type="GLint" />
|
||||
<param name="y" type="GLint" />
|
||||
<param name="width" type="GLsizei" />
|
||||
<param name="height" type="GLsizei" />
|
||||
</function>
|
||||
|
||||
<function name="BlitNamedFramebuffer" offset="assign">
|
||||
<param name="readFramebuffer" type="GLuint" />
|
||||
<param name="drawFramebuffer" type="GLuint" />
|
||||
|
|
|
|||
|
|
@ -3787,6 +3787,35 @@ _mesa_InvalidateSubFramebuffer(GLenum target, GLsizei numAttachments,
|
|||
}
|
||||
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_InvalidateNamedFramebufferSubData(GLuint framebuffer,
|
||||
GLsizei numAttachments,
|
||||
const GLenum *attachments,
|
||||
GLint x, GLint y,
|
||||
GLsizei width, GLsizei height)
|
||||
{
|
||||
struct gl_framebuffer *fb;
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
|
||||
/* The OpenGL 4.5 core spec (02.02.2015) says (in Section 17.4 Whole
|
||||
* Framebuffer Operations, PDF page 522): "If framebuffer is zero, the
|
||||
* default draw framebuffer is affected."
|
||||
*/
|
||||
if (framebuffer) {
|
||||
fb = _mesa_lookup_framebuffer_err(ctx, framebuffer,
|
||||
"glInvalidateNamedFramebufferSubData");
|
||||
if (!fb)
|
||||
return;
|
||||
}
|
||||
else
|
||||
fb = ctx->WinSysDrawBuffer;
|
||||
|
||||
invalidate_framebuffer_storage(ctx, fb, numAttachments, attachments,
|
||||
x, y, width, height,
|
||||
"glInvalidateNamedFramebufferSubData");
|
||||
}
|
||||
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_InvalidateFramebuffer(GLenum target, GLsizei numAttachments,
|
||||
const GLenum *attachments)
|
||||
|
|
@ -3821,6 +3850,46 @@ _mesa_InvalidateFramebuffer(GLenum target, GLsizei numAttachments,
|
|||
}
|
||||
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_InvalidateNamedFramebufferData(GLuint framebuffer,
|
||||
GLsizei numAttachments,
|
||||
const GLenum *attachments)
|
||||
{
|
||||
struct gl_framebuffer *fb;
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
|
||||
/* The OpenGL 4.5 core spec (02.02.2015) says (in Section 17.4 Whole
|
||||
* Framebuffer Operations, PDF page 522): "If framebuffer is zero, the
|
||||
* default draw framebuffer is affected."
|
||||
*/
|
||||
if (framebuffer) {
|
||||
fb = _mesa_lookup_framebuffer_err(ctx, framebuffer,
|
||||
"glInvalidateNamedFramebufferData");
|
||||
if (!fb)
|
||||
return;
|
||||
}
|
||||
else
|
||||
fb = ctx->WinSysDrawBuffer;
|
||||
|
||||
/* The GL_ARB_invalidate_subdata spec says:
|
||||
*
|
||||
* "The command
|
||||
*
|
||||
* void InvalidateFramebuffer(enum target,
|
||||
* sizei numAttachments,
|
||||
* const enum *attachments);
|
||||
*
|
||||
* is equivalent to the command InvalidateSubFramebuffer with <x>, <y>,
|
||||
* <width>, <height> equal to 0, 0, <MAX_VIEWPORT_DIMS[0]>,
|
||||
* <MAX_VIEWPORT_DIMS[1]> respectively."
|
||||
*/
|
||||
invalidate_framebuffer_storage(ctx, fb, numAttachments, attachments,
|
||||
0, 0,
|
||||
MAX_VIEWPORT_WIDTH, MAX_VIEWPORT_HEIGHT,
|
||||
"glInvalidateNamedFramebufferData");
|
||||
}
|
||||
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_DiscardFramebufferEXT(GLenum target, GLsizei numAttachments,
|
||||
const GLenum *attachments)
|
||||
|
|
|
|||
|
|
@ -260,10 +260,22 @@ _mesa_InvalidateSubFramebuffer(GLenum target, GLsizei numAttachments,
|
|||
const GLenum *attachments, GLint x, GLint y,
|
||||
GLsizei width, GLsizei height);
|
||||
|
||||
extern void GLAPIENTRY
|
||||
_mesa_InvalidateNamedFramebufferSubData(GLuint framebuffer,
|
||||
GLsizei numAttachments,
|
||||
const GLenum *attachments,
|
||||
GLint x, GLint y,
|
||||
GLsizei width, GLsizei height);
|
||||
|
||||
extern void GLAPIENTRY
|
||||
_mesa_InvalidateFramebuffer(GLenum target, GLsizei numAttachments,
|
||||
const GLenum *attachments);
|
||||
|
||||
extern void GLAPIENTRY
|
||||
_mesa_InvalidateNamedFramebufferData(GLuint framebuffer,
|
||||
GLsizei numAttachments,
|
||||
const GLenum *attachments);
|
||||
|
||||
extern void GLAPIENTRY
|
||||
_mesa_DiscardFramebufferEXT(GLenum target, GLsizei numAttachments,
|
||||
const GLenum *attachments);
|
||||
|
|
|
|||
|
|
@ -984,6 +984,8 @@ const struct function gl_core_functions_possible[] = {
|
|||
{ "glNamedFramebufferRenderbuffer", 45, -1 },
|
||||
{ "glNamedFramebufferTexture", 45, -1 },
|
||||
{ "glNamedFramebufferTextureLayer", 45, -1 },
|
||||
{ "glInvalidateNamedFramebufferSubData", 45, -1 },
|
||||
{ "glInvalidateNamedFramebufferData", 45, -1 },
|
||||
{ "glBlitNamedFramebuffer", 45, -1 },
|
||||
{ "glCheckNamedFramebufferStatus", 45, -1 },
|
||||
{ "glGetNamedFramebufferAttachmentParameteriv", 45, -1 },
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue