Mesa (master): mesa: Add API definitions for ARB_texture_view

Brian Paul brianp at kemper.freedesktop.org
Fri Dec 13 19:44:52 UTC 2013


Module: Mesa
Branch: master
Commit: d77d2af20a978972d74dcaa6c1099be02578f247
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d77d2af20a978972d74dcaa6c1099be02578f247

Author: Courtney Goeltzenleuchter <courtney at LunarG.com>
Date:   Mon Nov  4 14:08:16 2013 -0700

mesa: Add API definitions for ARB_texture_view

Stub in glTextureView API call to go with the
glTextureView API xml definition.
Includes dispatch test for glTextureView

Signed-off-by: Courtney Goeltzenleuchter <courtney at LunarG.com>

Reviewed-by: Brian Paul <brianp at vmware.com>

---

 src/mapi/glapi/gen/ARB_texture_view.xml |   23 +++++++++++
 src/mapi/glapi/gen/Makefile.am          |    1 +
 src/mapi/glapi/gen/gl_API.xml           |    4 +-
 src/mapi/glapi/gen/gl_genexec.py        |    1 +
 src/mesa/Makefile.sources               |    1 +
 src/mesa/SConscript                     |    1 +
 src/mesa/main/tests/dispatch_sanity.cpp |    2 +-
 src/mesa/main/textureview.c             |   65 +++++++++++++++++++++++++++++++
 src/mesa/main/textureview.h             |   39 ++++++++++++++++++
 9 files changed, 135 insertions(+), 2 deletions(-)

diff --git a/src/mapi/glapi/gen/ARB_texture_view.xml b/src/mapi/glapi/gen/ARB_texture_view.xml
new file mode 100644
index 0000000..3e6b8c9
--- /dev/null
+++ b/src/mapi/glapi/gen/ARB_texture_view.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<!DOCTYPE OpenGLAPI SYSTEM "gl_API.dtd">
+
+<!-- Note: no GLX protocol info yet. -->
+
+<OpenGLAPI>
+
+<category name="GL_ARB_texture_view" number="124">
+
+   <function name="TextureView" offset="assign">
+      <param name="texture" type="GLuint"/>
+      <param name="target" type="GLenum"/>
+      <param name="origtexture" type="GLuint"/>
+      <param name="internalformat" type="GLenum"/>
+      <param name="minlevel" type="GLuint"/>
+      <param name="numlevels" type="GLuint"/>
+      <param name="minlayer" type="GLuint"/>
+      <param name="numlayers" type="GLuint"/>
+   </function>
+
+</category>
+
+</OpenGLAPI>
diff --git a/src/mapi/glapi/gen/Makefile.am b/src/mapi/glapi/gen/Makefile.am
index 7af769a..65bd913 100644
--- a/src/mapi/glapi/gen/Makefile.am
+++ b/src/mapi/glapi/gen/Makefile.am
@@ -125,6 +125,7 @@ API_XML = \
 	ARB_texture_rg.xml \
 	ARB_texture_storage_multisample.xml \
 	ARB_texture_storage.xml \
+	ARB_texture_view.xml \
 	ARB_vertex_array_object.xml \
 	ARB_vertex_attrib_binding.xml \
 	AMD_draw_buffers_blend.xml \
diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml
index 5c877aa..778f3aa 100644
--- a/src/mapi/glapi/gen/gl_API.xml
+++ b/src/mapi/glapi/gen/gl_API.xml
@@ -8460,8 +8460,10 @@
 
 </category>
 
-<!-- ARB extensions #120...#124 -->
 
+<!-- ARB extensions #120...#123 -->
+
+<xi:include href="ARB_texture_view.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
 <xi:include href="ARB_vertex_attrib_binding.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
 
 <!-- ARB extension #126 -->
diff --git a/src/mapi/glapi/gen/gl_genexec.py b/src/mapi/glapi/gen/gl_genexec.py
index 3ce190f..b557b3b 100644
--- a/src/mapi/glapi/gen/gl_genexec.py
+++ b/src/mapi/glapi/gen/gl_genexec.py
@@ -102,6 +102,7 @@ header = """/**
 #include "main/texstate.h"
 #include "main/texstorage.h"
 #include "main/texturebarrier.h"
+#include "main/textureview.h"
 #include "main/transformfeedback.h"
 #include "main/mtypes.h"
 #include "main/varray.h"
diff --git a/src/mesa/Makefile.sources b/src/mesa/Makefile.sources
index a84f8a7..39525bc 100644
--- a/src/mesa/Makefile.sources
+++ b/src/mesa/Makefile.sources
@@ -103,6 +103,7 @@ MAIN_FILES = \
 	$(SRCDIR)main/texstate.c \
 	$(SRCDIR)main/texstorage.c \
 	$(SRCDIR)main/texstore.c \
+        $(SRCDIR)main/textureview.c \
 	$(SRCDIR)main/texturebarrier.c \
 	$(SRCDIR)main/transformfeedback.c \
 	$(SRCDIR)main/uniforms.c \
diff --git a/src/mesa/SConscript b/src/mesa/SConscript
index a2bb9f1..bb9b304 100644
--- a/src/mesa/SConscript
+++ b/src/mesa/SConscript
@@ -133,6 +133,7 @@ main_sources = [
     'main/texstorage.c',
     'main/texstore.c',
     'main/texturebarrier.c',
+    'main/textureview.c',
     'main/transformfeedback.c',
     'main/uniform_query.cpp',
     'main/uniforms.c',
diff --git a/src/mesa/main/tests/dispatch_sanity.cpp b/src/mesa/main/tests/dispatch_sanity.cpp
index e57fb52..2f4539a 100644
--- a/src/mesa/main/tests/dispatch_sanity.cpp
+++ b/src/mesa/main/tests/dispatch_sanity.cpp
@@ -853,7 +853,7 @@ const struct function gl_core_functions_possible[] = {
 // { "glDispatchCompute", 43, -1 },                     // XXX: Add to xml
 // { "glDispatchComputeIndirect", 43, -1 },             // XXX: Add to xml
 // { "glCopyImageSubData", 43, -1 },                    // XXX: Add to xml
-// { "glTextureView", 43, -1 },                         // XXX: Add to xml
+   { "glTextureView", 43, -1 },
    { "glBindVertexBuffer", 43, -1 },
    { "glVertexAttribFormat", 43, -1 },
    { "glVertexAttribIFormat", 43, -1 },
diff --git a/src/mesa/main/textureview.c b/src/mesa/main/textureview.c
new file mode 100644
index 0000000..4a6bd62
--- /dev/null
+++ b/src/mesa/main/textureview.c
@@ -0,0 +1,65 @@
+/*
+ * Mesa 3-D graphics library
+ *
+ * Copyright (C) 2013 LunarG, Inc.
+ *
+ * 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.
+ *
+ * Authors:
+ *    Courtney Goeltzenleuchter <courtney at lunarg.com>
+ */
+
+
+/**
+ * \file textureview.c
+ * GL_ARB_texture_view functions
+ */
+
+#include "glheader.h"
+#include "context.h"
+#include "enums.h"
+#include "imports.h"
+#include "macros.h"
+#include "teximage.h"
+#include "texobj.h"
+#include "texstorage.h"
+#include "textureview.h"
+#include "mtypes.h"
+
+/**
+ * glTextureView (ARB_texture_view)
+ * If an error is found, record it with _mesa_error()
+ * \return none.
+ */
+void GLAPIENTRY
+_mesa_TextureView(GLuint texture, GLenum target, GLuint origtexture,
+                  GLenum internalformat,
+                  GLuint minlevel, GLuint numlevels,
+                  GLuint minlayer, GLuint numlayers)
+{
+   GET_CURRENT_CONTEXT(ctx);
+
+   if (MESA_VERBOSE & (VERBOSE_API | VERBOSE_TEXTURE))
+      _mesa_debug(ctx, "glTextureView (unfinished) %d %s %d %s %d %d %d %d\n",
+                  texture, _mesa_lookup_enum_by_nr(target), origtexture,
+                  _mesa_lookup_enum_by_nr(internalformat),
+                  minlevel, numlevels, minlayer, numlayers);
+
+
+}
diff --git a/src/mesa/main/textureview.h b/src/mesa/main/textureview.h
new file mode 100644
index 0000000..c2f0f32
--- /dev/null
+++ b/src/mesa/main/textureview.h
@@ -0,0 +1,39 @@
+/*
+ * Mesa 3-D graphics library
+ *
+ * Copyright (C) 2012-2013 LunarG, Inc.
+ *
+ * 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.
+ *
+ * Authors:
+ *    Courtney Goeltzenleuchter <courtney at lunarg.com>
+ */
+
+
+#ifndef TEXTUREVIEW_H
+#define TEXTUREVIEW_H
+
+
+extern void GLAPIENTRY
+_mesa_TextureView(GLuint texture, GLenum target, GLuint origtexture,
+                  GLenum internalformat,
+                  GLuint minlevel, GLuint numlevels,
+                  GLuint minlayer, GLuint numlayers);
+
+#endif /* TEXTUREVIEW_H */




More information about the mesa-commit mailing list