gltrace: Make framebuffer contents an optional message.

Currently, the contents of the FrameBuffer are sent by encoding
them as the last argument to the function call. As a result, it is
not possible to know if a message has the framebuffer encoded in it
without looking at the function type.

This patch modifies the protobuf definition to include a separate
optional framebuffer message.

Change-Id: Ief3a6950052d927ca0743e729457435b48c25a92
diff --git a/opengl/libs/GLES_trace/gltrace.proto b/opengl/libs/GLES_trace/gltrace.proto
index 59f80e3..12d8e7c 100644
--- a/opengl/libs/GLES_trace/gltrace.proto
+++ b/opengl/libs/GLES_trace/gltrace.proto
@@ -459,7 +459,7 @@
             BYTE = 3;       // GLbyte, GLubyte
             INT = 4;        // GLbitfield, GLshort, GLint, GLsizei, GLushort, GLuint, GLfixed
             FLOAT = 5;      // GLfloat, GLclampf
-            BOOL = 6;    // GLboolean
+            BOOL = 6;       // GLboolean
             ENUM = 7;       // GLenum
         };
 
@@ -473,9 +473,16 @@
         repeated bool   boolValue = 7;
     }
 
+    message FrameBuffer {
+        required int32  width = 1;
+        required int32  height = 2;
+        repeated bytes  contents = 3;
+    }
+
     required int32      context_id = 1;                     // GL context ID
     required Function   function = 2 [default = invalid];   // GL function called
     repeated DataType   args = 3;                           // GL function's arguments
     optional DataType   returnValue = 4;                    // GL function's return value
     optional float      duration = 5;                       // duration of GL call
+    optional FrameBuffer fb = 6;                            // contents of the framebuffer
 };