Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu> --- src/compiler/glsl/glsl_parser_extras.cpp | 2 ++ src/compiler/glsl/glsl_parser_extras.h | 4 +++ src/mapi/glapi/gen/es_EXT.xml | 49 ++++++++++++++++++++++++++++++++ src/mapi/glapi/gen/gl_genexec.py | 1 + src/mesa/Makefile.sources | 2 ++ src/mesa/main/bbox.c | 44 ++++++++++++++++++++++++++++ src/mesa/main/bbox.h | 42 +++++++++++++++++++++++++++ src/mesa/main/context.c | 2 ++ src/mesa/main/extensions_table.h | 2 ++ src/mesa/main/mtypes.h | 1 + 10 files changed, 149 insertions(+) create mode 100644 src/mesa/main/bbox.c create mode 100644 src/mesa/main/bbox.h
diff --git a/src/compiler/glsl/glsl_parser_extras.cpp b/src/compiler/glsl/glsl_parser_extras.cpp index fc73a7e..7b2a150 100644 --- a/src/compiler/glsl/glsl_parser_extras.cpp +++ b/src/compiler/glsl/glsl_parser_extras.cpp @@ -625,6 +625,7 @@ static const _mesa_glsl_extension _mesa_glsl_supported_extensions[] = { EXT(OES_geometry_point_size, false, true, OES_geometry_shader), EXT(OES_geometry_shader, false, true, OES_geometry_shader), EXT(OES_gpu_shader5, false, true, ARB_gpu_shader5), + EXT(OES_primitive_bounding_box, false, true, OES_primitive_bounding_box), EXT(OES_sample_variables, false, true, OES_sample_variables), EXT(OES_shader_image_atomic, false, true, ARB_shader_image_load_store), EXT(OES_shader_io_blocks, false, true, OES_shader_io_blocks), @@ -645,6 +646,7 @@ static const _mesa_glsl_extension _mesa_glsl_supported_extensions[] = { EXT(EXT_draw_buffers, false, true, dummy_true), EXT(EXT_clip_cull_distance, false, true, ARB_cull_distance), EXT(EXT_gpu_shader5, false, true, ARB_gpu_shader5), + EXT(EXT_primitive_bounding_box, false, true, OES_primitive_bounding_box), EXT(EXT_separate_shader_objects, false, true, dummy_true), EXT(EXT_shader_integer_mix, true, true, EXT_shader_integer_mix), EXT(EXT_shader_io_blocks, false, true, OES_shader_io_blocks), diff --git a/src/compiler/glsl/glsl_parser_extras.h b/src/compiler/glsl/glsl_parser_extras.h index 8c43292..622a809 100644 --- a/src/compiler/glsl/glsl_parser_extras.h +++ b/src/compiler/glsl/glsl_parser_extras.h @@ -631,6 +631,8 @@ struct _mesa_glsl_parse_state { bool OES_geometry_shader_warn; bool OES_gpu_shader5_enable; bool OES_gpu_shader5_warn; + bool OES_primitive_bounding_box_enable; + bool OES_primitive_bounding_box_warn; bool OES_sample_variables_enable; bool OES_sample_variables_warn; bool OES_shader_image_atomic_enable; @@ -668,6 +670,8 @@ struct _mesa_glsl_parse_state { bool EXT_draw_buffers_warn; bool EXT_gpu_shader5_enable; bool EXT_gpu_shader5_warn; + bool EXT_primitive_bounding_box_enable; + bool EXT_primitive_bounding_box_warn; bool EXT_separate_shader_objects_enable; bool EXT_separate_shader_objects_warn; bool EXT_shader_integer_mix_enable; diff --git a/src/mapi/glapi/gen/es_EXT.xml b/src/mapi/glapi/gen/es_EXT.xml index 6886dab..23f75c9 100644 --- a/src/mapi/glapi/gen/es_EXT.xml +++ b/src/mapi/glapi/gen/es_EXT.xml @@ -924,6 +924,21 @@ </category> +<category name="GL_EXT_primitive_bounding_box" number="187"> + + <function name="PrimitiveBoundingBoxEXT" es2="3.1" alias="PrimitiveBoundingBox"> + <param name="minX" type="GLfloat"/> + <param name="minY" type="GLfloat"/> + <param name="minZ" type="GLfloat"/> + <param name="minW" type="GLfloat"/> + <param name="maxX" type="GLfloat"/> + <param name="maxY" type="GLfloat"/> + <param name="maxZ" type="GLfloat"/> + <param name="maxW" type="GLfloat"/> + </function> + +</category> + <xi:include href="KHR_robustness_es.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/> <category name="GL_EXT_base_instance" number="203"> @@ -1079,6 +1094,21 @@ </category> +<category name="GL_EXT_primitive_bounding_box" number="212"> + + <function name="PrimitiveBoundingBoxOES" es2="3.1" alias="PrimitiveBoundingBox"> + <param name="minX" type="GLfloat"/> + <param name="minY" type="GLfloat"/> + <param name="minZ" type="GLfloat"/> + <param name="minW" type="GLfloat"/> + <param name="maxX" type="GLfloat"/> + <param name="maxY" type="GLfloat"/> + <param name="maxZ" type="GLfloat"/> + <param name="maxW" type="GLfloat"/> + </function> + +</category> + <category name="GL_OES_texture_buffer" number="216"> <function name="TexBufferOES" es2="3.1" alias="TexBuffer"> @@ -1297,4 +1327,23 @@ </category> +<category name="ES3.2"> + + <!-- TODO: Move to GL 4.x when it is added to a GL version --> + <enum name="PRIMITIVE_BOUNDING_BOX_ARB" count="8" value="0x92BE"> + <size name="Get" mode="get"/> + </enum> + <function name="PrimitiveBoundingBox" es2="3.2" desktop="false"> + <param name="minX" type="GLfloat"/> + <param name="minY" type="GLfloat"/> + <param name="minZ" type="GLfloat"/> + <param name="minW" type="GLfloat"/> + <param name="maxX" type="GLfloat"/> + <param name="maxY" type="GLfloat"/> + <param name="maxZ" type="GLfloat"/> + <param name="maxW" type="GLfloat"/> + </function> + +</category> + </OpenGLAPI> diff --git a/src/mapi/glapi/gen/gl_genexec.py b/src/mapi/glapi/gen/gl_genexec.py index 72d7b6f..fe85e95 100644 --- a/src/mapi/glapi/gen/gl_genexec.py +++ b/src/mapi/glapi/gen/gl_genexec.py @@ -56,6 +56,7 @@ header = """/** #include "main/blit.h" #include "main/bufferobj.h" #include "main/arrayobj.h" +#include "main/bbox.h" #include "main/buffers.h" #include "main/clear.h" #include "main/clip.h" diff --git a/src/mesa/Makefile.sources b/src/mesa/Makefile.sources index 5f7f46d..c9e55a1 100644 --- a/src/mesa/Makefile.sources +++ b/src/mesa/Makefile.sources @@ -24,6 +24,8 @@ MAIN_FILES = \ main/atifragshader.h \ main/attrib.c \ main/attrib.h \ + main/bbox.c \ + main/bbox.h \ main/blend.c \ main/blend.h \ main/blit.c \ diff --git a/src/mesa/main/bbox.c b/src/mesa/main/bbox.c new file mode 100644 index 0000000..0ef5705 --- /dev/null +++ b/src/mesa/main/bbox.c @@ -0,0 +1,44 @@ +/* + * Mesa 3-D graphics library + * + * Copyright (C) 2016 Ilia Mirkin. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + + +/** + * \file bbox.c + * glPrimitiveBoundingBox function + */ + +#include "bbox.h" +#include "context.h" + +void GLAPIENTRY +_mesa_PrimitiveBoundingBox( + GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, + GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW) +{ +} + +void +_mesa_init_bbox(struct gl_context *ctx) +{ +} diff --git a/src/mesa/main/bbox.h b/src/mesa/main/bbox.h new file mode 100644 index 0000000..d00f87e --- /dev/null +++ b/src/mesa/main/bbox.h @@ -0,0 +1,42 @@ +/* + * Mesa 3-D graphics library + * + * Copyright (C) 1999-2008 Brian Paul All Rights Reserved. + * Copyright (C) 2009 VMware, Inc. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + + +#ifndef BBOX_H +#define BBOX_H + +#include "glheader.h" + +struct gl_context; + +extern void GLAPIENTRY +_mesa_PrimitiveBoundingBox( + GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, + GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); + +extern void +_mesa_init_bbox(struct gl_context *ctx); + +#endif diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c index 172c854..7700266 100644 --- a/src/mesa/main/context.c +++ b/src/mesa/main/context.c @@ -83,6 +83,7 @@ #include "api_loopback.h" #include "arrayobj.h" #include "attrib.h" +#include "bbox.h" #include "blend.h" #include "buffers.h" #include "bufferobj.h" @@ -812,6 +813,7 @@ init_attrib_groups(struct gl_context *ctx) /* Attribute Groups */ _mesa_init_accum( ctx ); _mesa_init_attrib( ctx ); + _mesa_init_bbox( ctx ); _mesa_init_buffer_objects( ctx ); _mesa_init_color( ctx ); _mesa_init_current( ctx ); diff --git a/src/mesa/main/extensions_table.h b/src/mesa/main/extensions_table.h index e3a99ec..e852835 100644 --- a/src/mesa/main/extensions_table.h +++ b/src/mesa/main/extensions_table.h @@ -221,6 +221,7 @@ EXT(EXT_pixel_buffer_object , EXT_pixel_buffer_object EXT(EXT_point_parameters , EXT_point_parameters , GLL, x , x , x , 1997) EXT(EXT_polygon_offset , dummy_true , GLL, x , x , x , 1995) EXT(EXT_polygon_offset_clamp , EXT_polygon_offset_clamp , GLL, GLC, ES1, ES2, 2014) +EXT(EXT_primitive_bounding_box , OES_primitive_bounding_box , x , x , x , 31, 2014) EXT(EXT_provoking_vertex , EXT_provoking_vertex , GLL, GLC, x , x , 2009) EXT(EXT_read_format_bgra , dummy_true , x , x , ES1, ES2, 2009) EXT(EXT_rescale_normal , dummy_true , GLL, x , x , x , 1997) @@ -341,6 +342,7 @@ EXT(OES_mapbuffer , dummy_true EXT(OES_packed_depth_stencil , dummy_true , x , x , ES1, ES2, 2007) EXT(OES_point_size_array , dummy_true , x , x , ES1, x , 2004) EXT(OES_point_sprite , ARB_point_sprite , x , x , ES1, x , 2004) +EXT(OES_primitive_bounding_box , OES_primitive_bounding_box , x , x , x , 31, 2014) EXT(OES_query_matrix , dummy_true , x , x , ES1, x , 2003) EXT(OES_read_format , dummy_true , GLL, GLC, ES1, x , 2003) EXT(OES_rgb8_rgba8 , dummy_true , x , x , ES1, ES2, 2005) diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index c19df0e..4fd317d 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -3917,6 +3917,7 @@ struct gl_extensions GLboolean EXT_timer_query; GLboolean EXT_vertex_array_bgra; GLboolean OES_copy_image; + GLboolean OES_primitive_bounding_box; GLboolean OES_sample_variables; GLboolean OES_shader_io_blocks; GLboolean OES_standard_derivatives; -- 2.7.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev