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 61extern void 62_mesa_meta_init(struct gl_context *ctx); 63 64extern void 65_mesa_meta_free(struct gl_context *ctx); 66 67extern void 68_mesa_meta_begin(struct gl_context *ctx, GLbitfield state); 69 70extern void 71_mesa_meta_end(struct gl_context *ctx); 72 73extern GLboolean 74_mesa_meta_in_progress(struct gl_context *ctx); 75 76extern 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 82extern void 83_mesa_meta_Clear(struct gl_context *ctx, GLbitfield buffers); 84 85extern void 86_mesa_meta_glsl_Clear(struct gl_context *ctx, GLbitfield buffers); 87 88extern 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 93extern 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 100extern 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 106extern GLboolean 107_mesa_meta_check_generate_mipmap_fallback(struct gl_context *ctx, GLenum target, 108 struct gl_texture_object *texObj); 109 110extern void 111_mesa_meta_GenerateMipmap(struct gl_context *ctx, GLenum target, 112 struct gl_texture_object *texObj); 113 114extern 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 122extern void 123_mesa_meta_GetTexImage(struct gl_context *ctx, 124 GLenum format, GLenum type, GLvoid *pixels, 125 struct gl_texture_image *texImage); 126 127extern 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