X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fmain%2Ffbobject.h;h=9cded3cfa37c633fe9958ec6c833189afd825a92;hb=d012e6d8fe2f4f1139af9e47a684960e8cde103e;hp=8763f99c4a7312b3cef5b2db97aaf35f8e18a3ff;hpb=72e30991559017c16d48569e612dbc0970e3b9ca;p=mesa.git diff --git a/src/mesa/main/fbobject.h b/src/mesa/main/fbobject.h index 8763f99c4a7..9cded3cfa37 100644 --- a/src/mesa/main/fbobject.h +++ b/src/mesa/main/fbobject.h @@ -26,11 +26,34 @@ #ifndef FBOBJECT_H #define FBOBJECT_H +#include "compiler.h" #include "glheader.h" struct gl_context; struct gl_texture_object; + +/** + * Is the given FBO a user-created FBO? + */ +static inline GLboolean +_mesa_is_user_fbo(const struct gl_framebuffer *fb) +{ + return fb->Name != 0; +} + + +/** + * Is the given FBO a window system FBO (like an X window)? + */ +static inline GLboolean +_mesa_is_winsys_fbo(const struct gl_framebuffer *fb) +{ + return fb->Name == 0; +} + + + extern void _mesa_init_fbobjects(struct gl_context *ctx); @@ -48,6 +71,24 @@ _mesa_get_attachment(struct gl_context *ctx, struct gl_framebuffer *fb, GLenum attachment); +/** Return the texture image for a renderbuffer attachment */ +static inline struct gl_texture_image * +_mesa_get_attachment_teximage(struct gl_renderbuffer_attachment *att) +{ + assert(att->Type == GL_TEXTURE); + return att->Texture->Image[att->CubeMapFace][att->TextureLevel]; +} + + +/** Return the (const) texture image for a renderbuffer attachment */ +static inline const struct gl_texture_image * +_mesa_get_attachment_teximage_const(const struct gl_renderbuffer_attachment *att) +{ + assert(att->Type == GL_TEXTURE); + return att->Texture->Image[att->CubeMapFace][att->TextureLevel]; +} + + extern void _mesa_remove_attachment(struct gl_context *ctx, struct gl_renderbuffer_attachment *att); @@ -65,11 +106,16 @@ _mesa_set_renderbuffer_attachment(struct gl_context *ctx, struct gl_renderbuffer *rb); extern void -_mesa_framebuffer_renderbuffer(struct gl_context *ctx, struct gl_framebuffer *fb, +_mesa_framebuffer_renderbuffer(struct gl_context *ctx, + struct gl_framebuffer *fb, GLenum attachment, struct gl_renderbuffer *rb); extern void -_mesa_test_framebuffer_completeness(struct gl_context *ctx, struct gl_framebuffer *fb); +_mesa_validate_framebuffer(struct gl_context *ctx, struct gl_framebuffer *fb); + +extern void +_mesa_test_framebuffer_completeness(struct gl_context *ctx, + struct gl_framebuffer *fb); extern GLboolean _mesa_is_legal_color_format(const struct gl_context *ctx, GLenum baseFormat); @@ -168,4 +214,13 @@ _mesa_FramebufferTextureFaceARB(GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); +extern void GLAPIENTRY +_mesa_InvalidateSubFramebuffer(GLenum target, 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); + #endif /* FBOBJECT_H */