mesa: add scaffolding for OES/EXT_primitive_bounding_box
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
@@ -631,6 +631,7 @@ static const _mesa_glsl_extension _mesa_glsl_supported_extensions[] = {
|
||||
EXT(OES_geometry_point_size),
|
||||
EXT(OES_geometry_shader),
|
||||
EXT(OES_gpu_shader5),
|
||||
EXT(OES_primitive_bounding_box),
|
||||
EXT(OES_sample_variables),
|
||||
EXT(OES_shader_image_atomic),
|
||||
EXT(OES_shader_io_blocks),
|
||||
@@ -656,6 +657,7 @@ static const _mesa_glsl_extension _mesa_glsl_supported_extensions[] = {
|
||||
EXT(EXT_geometry_point_size),
|
||||
EXT(EXT_geometry_shader),
|
||||
EXT(EXT_gpu_shader5),
|
||||
EXT(EXT_primitive_bounding_box),
|
||||
EXT(EXT_separate_shader_objects),
|
||||
EXT(EXT_shader_framebuffer_fetch),
|
||||
EXT(EXT_shader_integer_mix),
|
||||
|
@@ -672,6 +672,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;
|
||||
@@ -719,6 +721,8 @@ struct _mesa_glsl_parse_state {
|
||||
bool EXT_geometry_shader_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_framebuffer_fetch_enable;
|
||||
|
@@ -939,6 +939,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">
|
||||
@@ -1094,6 +1109,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">
|
||||
@@ -1312,4 +1342,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>
|
||||
|
@@ -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"
|
||||
|
@@ -26,6 +26,8 @@ MAIN_FILES = \
|
||||
main/attrib.h \
|
||||
main/barrier.c \
|
||||
main/barrier.h \
|
||||
main/bbox.c \
|
||||
main/bbox.h \
|
||||
main/blend.c \
|
||||
main/blend.h \
|
||||
main/blit.c \
|
||||
|
44
src/mesa/main/bbox.c
Normal file
44
src/mesa/main/bbox.c
Normal file
@@ -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)
|
||||
{
|
||||
}
|
42
src/mesa/main/bbox.h
Normal file
42
src/mesa/main/bbox.h
Normal file
@@ -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
|
@@ -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"
|
||||
@@ -809,6 +810,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 );
|
||||
|
@@ -223,6 +223,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)
|
||||
@@ -352,6 +353,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)
|
||||
|
@@ -3941,6 +3941,7 @@ struct gl_extensions
|
||||
GLboolean EXT_vertex_array_bgra;
|
||||
GLboolean EXT_window_rectangles;
|
||||
GLboolean OES_copy_image;
|
||||
GLboolean OES_primitive_bounding_box;
|
||||
GLboolean OES_sample_variables;
|
||||
GLboolean OES_standard_derivatives;
|
||||
GLboolean OES_texture_buffer;
|
||||
|
@@ -2607,5 +2607,8 @@ const struct function gles31_functions_possible[] = {
|
||||
/* GL_OES_tessellation_shader */
|
||||
{ "glPatchParameteriOES", 31, -1 },
|
||||
|
||||
/* GL_OES_primitive_bound_box */
|
||||
{ "glPrimitiveBoundingBoxOES", 31, -1 },
|
||||
|
||||
{ NULL, 0, -1 },
|
||||
};
|
||||
|
@@ -536,7 +536,7 @@ compute_version_es2(const struct gl_extensions *extensions,
|
||||
extensions->ARB_draw_buffers_blend &&
|
||||
extensions->ARB_draw_elements_base_vertex &&
|
||||
extensions->OES_geometry_shader &&
|
||||
/*extensions->OES_primitive_bounding_box*/ false &&
|
||||
extensions->OES_primitive_bounding_box &&
|
||||
extensions->OES_sample_variables &&
|
||||
extensions->ARB_tessellation_shader &&
|
||||
extensions->ARB_texture_border_clamp &&
|
||||
|
Reference in New Issue
Block a user