1 /* 2 * Mesa 3-D graphics library 3 * Version: 7.6 4 * 5 * Copyright (C) 2009 VMware, Inc. All Rights Reserved. 6 * 7 * Permission is hereby granted, free of charge, to any person obtaining a 8 * copy of this software and associated documentation files (the "Software"), 9 * to deal in the Software without restriction, including without limitation 10 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 11 * and/or sell copies of the Software, and to permit persons to whom the 12 * Software is furnished to do so, subject to the following conditions: 13 * 14 * The above copyright notice and this permission notice shall be included 15 * in all copies or substantial portions of the Software. 16 * 17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 18 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 20 * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 21 * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 22 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 */ 24 25 26 #ifndef META_H 27 #define META_H 28 29 #include "main/mtypes.h" 30 31 /** 32 * \name Flags for meta operations 33 * \{ 34 * 35 * These flags are passed to _mesa_meta_begin(). 36 */ 37 #define MESA_META_ALL ~0x0 38 #define MESA_META_ALPHA_TEST 0x1 39 #define MESA_META_BLEND 0x2 /**< includes logicop */ 40 #define MESA_META_COLOR_MASK 0x4 41 #define MESA_META_DEPTH_TEST 0x8 42 #define MESA_META_FOG 0x10 43 #define MESA_META_PIXEL_STORE 0x20 44 #define MESA_META_PIXEL_TRANSFER 0x40 45 #define MESA_META_RASTERIZATION 0x80 46 #define MESA_META_SCISSOR 0x100 47 #define MESA_META_SHADER 0x200 48 #define MESA_META_STENCIL_TEST 0x400 49 #define MESA_META_TRANSFORM 0x800 /**< modelview/projection matrix state */ 50 #define MESA_META_TEXTURE 0x1000 51 #define MESA_META_VERTEX 0x2000 52 #define MESA_META_VIEWPORT 0x4000 53 #define MESA_META_CLAMP_FRAGMENT_COLOR 0x8000 54 #define MESA_META_CLAMP_VERTEX_COLOR 0x10000 55 #define MESA_META_CONDITIONAL_RENDER 0x20000 56 #define MESA_META_CLIP 0x40000 57 #define MESA_META_SELECT_FEEDBACK 0x80000 58 #define MESA_META_MULTISAMPLE 0x100000 59 /**\}*/ 60 61 extern void 62 _mesa_meta_init(struct gl_context *ctx); 63 64 extern void 65 _mesa_meta_free(struct gl_context *ctx); 66 67 extern void 68 _mesa_meta_begin(struct gl_context *ctx, GLbitfield state); 69 70 extern void 71 _mesa_meta_end(struct gl_context *ctx); 72 73 extern GLboolean 74 _mesa_meta_in_progress(struct gl_context *ctx); 75 76 extern void 77 _mesa_meta_BlitFramebuffer(struct gl_context *ctx, 78 GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, 79 GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, 80 GLbitfield mask, GLenum filter); 81 82 extern void 83 _mesa_meta_Clear(struct gl_context *ctx, GLbitfield buffers); 84 85 extern void 86 _mesa_meta_glsl_Clear(struct gl_context *ctx, GLbitfield buffers); 87 88 extern void 89 _mesa_meta_CopyPixels(struct gl_context *ctx, GLint srcx, GLint srcy, 90 GLsizei width, GLsizei height, 91 GLint dstx, GLint dsty, GLenum type); 92 93 extern void 94 _mesa_meta_DrawPixels(struct gl_context *ctx, 95 GLint x, GLint y, GLsizei width, GLsizei height, 96 GLenum format, GLenum type, 97 const struct gl_pixelstore_attrib *unpack, 98 const GLvoid *pixels); 99 100 extern void 101 _mesa_meta_Bitmap(struct gl_context *ctx, 102 GLint x, GLint y, GLsizei width, GLsizei height, 103 const struct gl_pixelstore_attrib *unpack, 104 const GLubyte *bitmap); 105 106 extern GLboolean 107 _mesa_meta_check_generate_mipmap_fallback(struct gl_context *ctx, GLenum target, 108 struct gl_texture_object *texObj); 109 110 extern void 111 _mesa_meta_GenerateMipmap(struct gl_context *ctx, GLenum target, 112 struct gl_texture_object *texObj); 113 114 extern void 115 _mesa_meta_CopyTexSubImage(struct gl_context *ctx, GLuint dims, 116 struct gl_texture_image *texImage, 117 GLint xoffset, GLint yoffset, GLint zoffset, 118 struct gl_renderbuffer *rb, 119 GLint x, GLint y, 120 GLsizei width, GLsizei height); 121 122 extern void 123 _mesa_meta_GetTexImage(struct gl_context *ctx, 124 GLenum format, GLenum type, GLvoid *pixels, 125 struct gl_texture_image *texImage); 126 127 extern void 128 _mesa_meta_DrawTex(struct gl_context *ctx, GLfloat x, GLfloat y, GLfloat z, 129 GLfloat width, GLfloat height); 130 131 #endif /* META_H */ 132