There's trailing white space errors in quite a few lines. I noticed that patch 4 corrects some of these but you should really fix them in this commit, patch 4 should not touch them.

On 04/24/2015 09:59 AM, kevin.rogo...@intel.com wrote:
From: Kevin Rogovin <kevin.rogo...@intel.com>

Add extension flag and constant values for ARB_framebuffer_no_attachments.

---
  src/mesa/main/extensions.c  |  1 +
  src/mesa/main/fbobject.c    |  1 +
  src/mesa/main/framebuffer.c |  1 +
  src/mesa/main/mtypes.h      | 52 ++++++++++++++++++++++++++++++++++++++++-----
  4 files changed, 50 insertions(+), 5 deletions(-)

diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c
index 3d4965c..43b5c0b 100644
--- a/src/mesa/main/extensions.c
+++ b/src/mesa/main/extensions.c
@@ -118,6 +118,7 @@ static const struct extension extension_table[] = {
     { "GL_ARB_fragment_program_shadow",             
o(ARB_fragment_program_shadow),             GLL,            2003 },
     { "GL_ARB_fragment_shader",                     o(ARB_fragment_shader),    
                 GL,             2002 },
     { "GL_ARB_framebuffer_object",                  o(ARB_framebuffer_object), 
                 GL,             2005 },
+   { "GL_ARB_framebuffer_no_attachments",          
o(ARB_framebuffer_no_attachments),          GL,             2012 },
     { "GL_ARB_framebuffer_sRGB",                    o(EXT_framebuffer_sRGB),   
                 GL,             1998 },
     { "GL_ARB_get_program_binary",                  o(dummy_true),             
                 GL,             2010 },
     { "GL_ARB_gpu_shader5",                         o(ARB_gpu_shader5),        
                 GLC,            2010 },
diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c
index 27cf97f..eabbb96 100644
--- a/src/mesa/main/fbobject.c
+++ b/src/mesa/main/fbobject.c
@@ -914,6 +914,7 @@ _mesa_test_framebuffer_completeness(struct gl_context *ctx,
     fb->Height = 0;
     fb->_AllColorBuffersFixedPoint = GL_TRUE;
     fb->_HasSNormOrFloatColorBuffer = GL_FALSE;
+   fb->_HasAttachments = GL_TRUE;

     /* Start at -2 to more easily loop over all attachment points.
      *  -2: depth buffer
diff --git a/src/mesa/main/framebuffer.c b/src/mesa/main/framebuffer.c
index 4f7736a..4e4d896 100644
--- a/src/mesa/main/framebuffer.c
+++ b/src/mesa/main/framebuffer.c
@@ -157,6 +157,7 @@ _mesa_initialize_window_framebuffer(struct gl_framebuffer 
*fb,
     fb->_Status = GL_FRAMEBUFFER_COMPLETE_EXT;
     fb->_AllColorBuffersFixedPoint = !visual->floatMode;
     fb->_HasSNormOrFloatColorBuffer = visual->floatMode;
+   fb->_HasAttachments = GL_TRUE;

     compute_depth_max(fb);
  }
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index fb41430..38a3817 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -3133,12 +3133,29 @@ struct gl_framebuffer
      */
     struct gl_config Visual;

-   GLuint Width, Height;       /**< size of frame buffer in pixels */
+   /**
+    * size of frame buffer in pixels,
+    * no attachments has these values as 0
+    */
+   GLuint Width, Height;       
+
+   /**
+    * In the case that the framebuffer has no attachment (i.e.
+    * GL_ARB_framebuffer_no_attachments) then the geometry of
+    * the framebuffer is specified by the default values.
+    */
+   struct {
+     GLuint Width, Height, Layers, NumSamples;
+     GLboolean FixedSampleLocations;
+   } DefaultGeometry;

-   /** \name  Drawing bounds (Intersection of buffer size and scissor box) */
+   /** \name  Drawing bounds (Intersection of buffer size and scissor box)
+    * The drawing region is given by [_Xmin, _Xmax) x [_Ymin, _Ymax),
+    * (inclusive for _Xmin and _Ymin while exclusive for _Xmax and _Ymax)
+    */
     /*@{*/
-   GLint _Xmin, _Xmax;  /**< inclusive */
-   GLint _Ymin, _Ymax;  /**< exclusive */
+   GLint _Xmin, _Xmax;
+   GLint _Ymin, _Ymax;
     /*@}*/

     /** \name  Derived Z buffer stuff */
@@ -3151,6 +3168,20 @@ struct gl_framebuffer
     /** One of the GL_FRAMEBUFFER_(IN)COMPLETE_* tokens */
     GLenum _Status;

+   /** True if both of the conditions:
+    *  - one of Attachment has gl_renderbuffer_attachment::Type != GL_NONE
+    *  - _Status is GL_FRAMEBUFFER_COMPLETE_EXT
+    * NOTE: the values for Width and Height are set to 0 in the
+    * case of no attachments, a backend driver supporting
+    * GL_ARB_framebuffer_no_attachments must check for
+    * the flag _HasAttachments and if GL_FALSE, must then
+    * use the values in DefaultGeometry to initialize its
+    * viewport, scissor and so on (in particular _Xmin, _Xmax,
+    * _Ymin and _Ymax do NOT take into account _HasAttachments
+    * being false

IMO the documentation here would look better if you would use a bit longer lines and overall more consistent line length.

+    */
+   GLboolean _HasAttachments;
+
     /** Integer color values */
     GLboolean _IntegerColor;

@@ -3161,7 +3192,9 @@ struct gl_framebuffer
     /**
      * The maximum number of layers in the framebuffer, or 0 if the framebuffer
      * is not layered.  For cube maps and cube map arrays, each cube face
-    * counts as a layer.
+    * counts as a layer. As the case for Width, Height a backend driver
+    * supporting GL_ARB_framebuffer_no_attachments must use DefaultGeometry
+    * in the case that _HasAttachments is false
      */
     GLuint MaxNumLayers;

@@ -3340,6 +3373,14 @@ struct gl_constants
     GLuint MaxRenderbufferSize;   /**< GL_EXT_framebuffer_object */
     GLuint MaxSamples;            /**< GL_ARB_framebuffer_object */

+   /**
+    * GL_ARB_framebuffer_no_attachments
+    */
+   GLuint MaxFramebufferWidth;
+   GLuint MaxFramebufferHeight;
+   GLuint MaxFramebufferLayers;
+   GLuint MaxFramebufferSamples;
+
     /** Number of varying vectors between any two shader stages. */
     GLuint MaxVarying;

@@ -3618,6 +3659,7 @@ struct gl_extensions
     GLboolean ARB_fragment_program_shadow;
     GLboolean ARB_fragment_shader;
     GLboolean ARB_framebuffer_object;
+   GLboolean ARB_framebuffer_no_attachments;
     GLboolean ARB_explicit_attrib_location;
     GLboolean ARB_explicit_uniform_location;
     GLboolean ARB_geometry_shader4;

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to