Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

  1. /*
  2.  * Mesa 3-D graphics library
  3.  *
  4.  * Copyright (C) 1999-2008  Brian Paul   All Rights Reserved.
  5.  *
  6.  * Permission is hereby granted, free of charge, to any person obtaining a
  7.  * copy of this software and associated documentation files (the "Software"),
  8.  * to deal in the Software without restriction, including without limitation
  9.  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
  10.  * and/or sell copies of the Software, and to permit persons to whom the
  11.  * Software is furnished to do so, subject to the following conditions:
  12.  *
  13.  * The above copyright notice and this permission notice shall be included
  14.  * in all copies or substantial portions of the Software.
  15.  *
  16.  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  17.  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  18.  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
  19.  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
  20.  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
  21.  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  22.  * OTHER DEALINGS IN THE SOFTWARE.
  23.  */
  24.  
  25.  
  26. #ifndef FBOBJECT_H
  27. #define FBOBJECT_H
  28.  
  29. #include "compiler.h"
  30. #include "glheader.h"
  31. #include <stdbool.h>
  32.  
  33. struct gl_context;
  34. struct gl_texture_object;
  35.  
  36.  
  37. /**
  38.  * Is the given FBO a user-created FBO?
  39.  */
  40. static inline GLboolean
  41. _mesa_is_user_fbo(const struct gl_framebuffer *fb)
  42. {
  43.    return fb->Name != 0;
  44. }
  45.  
  46.  
  47. /**
  48.  * Is the given FBO a window system FBO (like an X window)?
  49.  */
  50. static inline GLboolean
  51. _mesa_is_winsys_fbo(const struct gl_framebuffer *fb)
  52. {
  53.    return fb->Name == 0;
  54. }
  55.  
  56.  
  57.  
  58. extern void
  59. _mesa_init_fbobjects(struct gl_context *ctx);
  60.  
  61. extern struct gl_framebuffer *
  62. _mesa_get_incomplete_framebuffer(void);
  63.  
  64. extern struct gl_renderbuffer *
  65. _mesa_lookup_renderbuffer(struct gl_context *ctx, GLuint id);
  66.  
  67. extern struct gl_renderbuffer *
  68. _mesa_lookup_renderbuffer_err(struct gl_context *ctx, GLuint id,
  69.                               const char *func);
  70.  
  71. extern struct gl_framebuffer *
  72. _mesa_lookup_framebuffer(struct gl_context *ctx, GLuint id);
  73.  
  74. extern struct gl_framebuffer *
  75. _mesa_lookup_framebuffer_err(struct gl_context *ctx, GLuint id,
  76.                              const char *func);
  77.  
  78.  
  79. void
  80. _mesa_update_texture_renderbuffer(struct gl_context *ctx,
  81.                                   struct gl_framebuffer *fb,
  82.                                   struct gl_renderbuffer_attachment *att);
  83.  
  84. extern void
  85. _mesa_FramebufferRenderbuffer_sw(struct gl_context *ctx,
  86.                                  struct gl_framebuffer *fb,
  87.                                  GLenum attachment,
  88.                                  struct gl_renderbuffer *rb);
  89.  
  90. extern void
  91. _mesa_framebuffer_renderbuffer(struct gl_context *ctx,
  92.                                struct gl_framebuffer *fb,
  93.                                GLenum attachment,
  94.                                struct gl_renderbuffer *rb,
  95.                                const char *func);
  96.  
  97. extern void
  98. _mesa_validate_framebuffer(struct gl_context *ctx, struct gl_framebuffer *fb);
  99.  
  100. extern GLboolean
  101. _mesa_has_depthstencil_combined(const struct gl_framebuffer *fb);
  102.  
  103. extern void
  104. _mesa_test_framebuffer_completeness(struct gl_context *ctx,
  105.                                     struct gl_framebuffer *fb);
  106.  
  107. extern GLboolean
  108. _mesa_is_legal_color_format(const struct gl_context *ctx, GLenum baseFormat);
  109.  
  110. extern GLenum
  111. _mesa_base_fbo_format(struct gl_context *ctx, GLenum internalFormat);
  112.  
  113. extern bool
  114. _mesa_detach_renderbuffer(struct gl_context *ctx,
  115.                           struct gl_framebuffer *fb,
  116.                           const void *att);
  117.  
  118. extern void
  119. _mesa_framebuffer_texture(struct gl_context *ctx, struct gl_framebuffer *fb,
  120.                           GLenum attachment,
  121.                           struct gl_texture_object *texObj, GLenum textarget,
  122.                           GLint level, GLuint layer, GLboolean layered,
  123.                           const char *caller);
  124.  
  125. extern GLenum
  126. _mesa_check_framebuffer_status(struct gl_context *ctx,
  127.                                struct gl_framebuffer *fb);
  128.  
  129. extern void
  130. _mesa_get_framebuffer_attachment_parameter(struct gl_context *ctx,
  131.                                            struct gl_framebuffer *buffer,
  132.                                            GLenum attachment, GLenum pname,
  133.                                            GLint *params, const char *caller);
  134.  
  135.  
  136. extern GLboolean GLAPIENTRY
  137. _mesa_IsRenderbuffer(GLuint renderbuffer);
  138.  
  139. extern void GLAPIENTRY
  140. _mesa_BindRenderbuffer(GLenum target, GLuint renderbuffer);
  141.  
  142. extern void GLAPIENTRY
  143. _mesa_BindRenderbufferEXT(GLenum target, GLuint renderbuffer);
  144.  
  145. extern void GLAPIENTRY
  146. _mesa_DeleteRenderbuffers(GLsizei n, const GLuint *renderbuffers);
  147.  
  148. extern void GLAPIENTRY
  149. _mesa_GenRenderbuffers(GLsizei n, GLuint *renderbuffers);
  150.  
  151. extern void GLAPIENTRY
  152. _mesa_CreateRenderbuffers(GLsizei n, GLuint *renderbuffers);
  153.  
  154. extern void GLAPIENTRY
  155. _mesa_RenderbufferStorage(GLenum target, GLenum internalformat,
  156.                              GLsizei width, GLsizei height);
  157.  
  158. extern void GLAPIENTRY
  159. _mesa_RenderbufferStorageMultisample(GLenum target, GLsizei samples,
  160.                                      GLenum internalformat,
  161.                                      GLsizei width, GLsizei height);
  162.  
  163. extern void GLAPIENTRY
  164. _es_RenderbufferStorageEXT(GLenum target, GLenum internalFormat,
  165.                            GLsizei width, GLsizei height);
  166.  
  167. extern void GLAPIENTRY
  168. _mesa_NamedRenderbufferStorage(GLuint renderbuffer, GLenum internalformat,
  169.                                GLsizei width, GLsizei height);
  170.  
  171. extern void GLAPIENTRY
  172. _mesa_NamedRenderbufferStorageMultisample(GLuint renderbuffer, GLsizei samples,
  173.                                           GLenum internalformat,
  174.                                           GLsizei width, GLsizei height);
  175.  
  176. extern void GLAPIENTRY
  177. _mesa_EGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image);
  178.  
  179. extern void GLAPIENTRY
  180. _mesa_GetRenderbufferParameteriv(GLenum target, GLenum pname,
  181.                                     GLint *params);
  182.  
  183. void GLAPIENTRY
  184. _mesa_GetNamedRenderbufferParameteriv(GLuint renderbuffer, GLenum pname,
  185.                                       GLint *params);
  186.  
  187. extern GLboolean GLAPIENTRY
  188. _mesa_IsFramebuffer(GLuint framebuffer);
  189.  
  190. extern void GLAPIENTRY
  191. _mesa_BindFramebuffer(GLenum target, GLuint framebuffer);
  192.  
  193. extern void GLAPIENTRY
  194. _mesa_BindFramebufferEXT(GLenum target, GLuint framebuffer);
  195.  
  196. extern void GLAPIENTRY
  197. _mesa_DeleteFramebuffers(GLsizei n, const GLuint *framebuffers);
  198.  
  199. extern void GLAPIENTRY
  200. _mesa_GenFramebuffers(GLsizei n, GLuint *framebuffers);
  201.  
  202. extern void GLAPIENTRY
  203. _mesa_CreateFramebuffers(GLsizei n, GLuint *framebuffers);
  204.  
  205. extern GLenum GLAPIENTRY
  206. _mesa_CheckFramebufferStatus(GLenum target);
  207.  
  208. extern GLenum GLAPIENTRY
  209. _mesa_CheckNamedFramebufferStatus(GLuint framebuffer, GLenum target);
  210.  
  211. extern void GLAPIENTRY
  212. _mesa_FramebufferTexture1D(GLenum target, GLenum attachment,
  213.                               GLenum textarget, GLuint texture, GLint level);
  214.  
  215. extern void GLAPIENTRY
  216. _mesa_FramebufferTexture2D(GLenum target, GLenum attachment,
  217.                               GLenum textarget, GLuint texture, GLint level);
  218.  
  219. extern void GLAPIENTRY
  220. _mesa_FramebufferTexture3D(GLenum target, GLenum attachment,
  221.                               GLenum textarget, GLuint texture,
  222.                               GLint level, GLint layer);
  223.  
  224. extern void GLAPIENTRY
  225. _mesa_FramebufferTextureLayer(GLenum target, GLenum attachment,
  226.                                  GLuint texture, GLint level, GLint layer);
  227.  
  228. extern void GLAPIENTRY
  229. _mesa_NamedFramebufferTextureLayer(GLuint framebuffer, GLenum attachment,
  230.                                    GLuint texture, GLint level, GLint layer);
  231.  
  232. extern void GLAPIENTRY
  233. _mesa_FramebufferTexture(GLenum target, GLenum attachment,
  234.                          GLuint texture, GLint level);
  235.  
  236. extern void GLAPIENTRY
  237. _mesa_NamedFramebufferTexture(GLuint framebuffer, GLenum attachment,
  238.                               GLuint texture, GLint level);
  239.  
  240. extern void GLAPIENTRY
  241. _mesa_FramebufferRenderbuffer(GLenum target, GLenum attachment,
  242.                                  GLenum renderbuffertarget,
  243.                                  GLuint renderbuffer);
  244.  
  245. extern void GLAPIENTRY
  246. _mesa_NamedFramebufferRenderbuffer(GLuint framebuffer, GLenum attachment,
  247.                                    GLenum renderbuffertarget,
  248.                                    GLuint renderbuffer);
  249.  
  250. extern void GLAPIENTRY
  251. _mesa_GetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment,
  252.                                              GLenum pname, GLint *params);
  253. extern void GLAPIENTRY
  254. _mesa_GetNamedFramebufferAttachmentParameteriv(GLuint framebuffer,
  255.                                                GLenum attachment,
  256.                                                GLenum pname, GLint *params);
  257.  
  258. extern void GLAPIENTRY
  259. _mesa_NamedFramebufferParameteri(GLuint framebuffer, GLenum pname,
  260.                                  GLint param);
  261.  
  262. extern void GLAPIENTRY
  263. _mesa_GetNamedFramebufferParameteriv(GLuint framebuffer, GLenum pname,
  264.                                      GLint *param);
  265.  
  266. extern void GLAPIENTRY
  267. _mesa_InvalidateSubFramebuffer(GLenum target, GLsizei numAttachments,
  268.                                const GLenum *attachments, GLint x, GLint y,
  269.                                GLsizei width, GLsizei height);
  270.  
  271. extern void GLAPIENTRY
  272. _mesa_InvalidateNamedFramebufferSubData(GLuint framebuffer,
  273.                                         GLsizei numAttachments,
  274.                                         const GLenum *attachments,
  275.                                         GLint x, GLint y,
  276.                                         GLsizei width, GLsizei height);
  277.  
  278. extern void GLAPIENTRY
  279. _mesa_InvalidateFramebuffer(GLenum target, GLsizei numAttachments,
  280.                             const GLenum *attachments);
  281.  
  282. extern void GLAPIENTRY
  283. _mesa_InvalidateNamedFramebufferData(GLuint framebuffer,
  284.                                      GLsizei numAttachments,
  285.                                      const GLenum *attachments);
  286.  
  287. extern void GLAPIENTRY
  288. _mesa_DiscardFramebufferEXT(GLenum target, GLsizei numAttachments,
  289.                             const GLenum *attachments);
  290.  
  291. #endif /* FBOBJECT_H */
  292.