aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSiva Velusamy <vsiva@google.com>2011-12-15 12:33:01 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-12-15 12:33:01 -0800
commitd5f733212db0aaa7b80d0f9d7184f8cc6943503d (patch)
treec0d1dcc47bf030705f75586786f7e5a30ab69f9c
parent7d00be55667a250fdcf1e0f7f52ac7aa5e5ecf13 (diff)
parent5e381c5ad46e68313b3642efceb3dea0abea0e1c (diff)
downloadsdk-d5f733212db0aaa7b80d0f9d7184f8cc6943503d.zip
sdk-d5f733212db0aaa7b80d0f9d7184f8cc6943503d.tar.gz
sdk-d5f733212db0aaa7b80d0f9d7184f8cc6943503d.tar.bz2
Merge "gltrace: show context id corresponding to gl functions"
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/entries.in2
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/editors/GLFunctionTraceViewer.java39
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/model/GLCall.java4
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/model/GLTrace.java4
4 files changed, 43 insertions, 6 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/entries.in b/eclipse/plugins/com.android.ide.eclipse.gldebugger/entries.in
index 336debd..e2c718c 100644
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/entries.in
+++ b/eclipse/plugins/com.android.ide.eclipse.gldebugger/entries.in
@@ -1,4 +1,6 @@
# com.android.ide.eclipse.gltrace.glentries, v1
+void, eglCreateContext, int version, int context
+void, eglMakeCurrent, int context
void, glActiveTexture, GLenum texture
void, glAlphaFunc, GLenum func, GLclampf ref
void, glAlphaFuncx, GLenum func, GLclampx ref
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/editors/GLFunctionTraceViewer.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/editors/GLFunctionTraceViewer.java
index b357220..acfd576 100644
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/editors/GLFunctionTraceViewer.java
+++ b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/editors/GLFunctionTraceViewer.java
@@ -25,6 +25,7 @@ import com.android.ide.eclipse.gltrace.views.GLFramebufferView;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+import org.eclipse.jface.viewers.CellLabelProvider;
import org.eclipse.jface.viewers.ColumnLabelProvider;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ISelectionChangedListener;
@@ -33,6 +34,7 @@ import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TableViewerColumn;
import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerCell;
import org.eclipse.jface.viewers.ViewerFilter;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
@@ -251,14 +253,22 @@ public class GLFunctionTraceViewer extends EditorPart implements ISelectionProvi
table.setLinesVisible(true);
mFrameTableViewer = new TableViewer(table);
+ CellLabelProvider labelProvider = new GLFrameLabelProvider();
- // single column that has a list of function calls
+ // column showing the GL context id
TableViewerColumn tvc = new TableViewerColumn(mFrameTableViewer, SWT.NONE);
+ tvc.setLabelProvider(labelProvider);
TableColumn column = tvc.getColumn();
+ column.setText("Context");
+ column.setWidth(50);
+
+ // column showing the GL function called
+ tvc = new TableViewerColumn(mFrameTableViewer, SWT.NONE);
+ tvc.setLabelProvider(labelProvider);
+ column = tvc.getColumn();
column.setText("Function");
column.setWidth(400);
- tvc.setLabelProvider(new GLFrameLabelProvider());
mFrameTableViewer.setContentProvider(new GLFrameContentProvider());
table.addSelectionListener(new SelectionAdapter() {
@@ -335,11 +345,28 @@ public class GLFunctionTraceViewer extends EditorPart implements ISelectionProvi
private class GLFrameLabelProvider extends ColumnLabelProvider {
@Override
- public String getText(Object element) {
- if (element instanceof GLCall) {
- return formatGLCall((GLCall) element);
+ public void update(ViewerCell cell) {
+ Object element = cell.getElement();
+ if (!(element instanceof GLCall)) {
+ return;
+ }
+
+ GLCall c = (GLCall) element;
+ cell.setText(getColumnText(c, cell.getColumnIndex()));
+ }
+
+ private String getColumnText(GLCall c, int columnIndex) {
+ switch (columnIndex) {
+ case 0:
+ return Integer.toString(c.getContextId());
+ default:
+ try {
+ return formatGLCall(c);
+ } catch (Exception e) {
+ // in case of any formatting errors, just return the function name.
+ return c.getFunction().toString();
+ }
}
- return element.toString();
}
}
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/model/GLCall.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/model/GLCall.java
index c090ddf..79a74e3 100644
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/model/GLCall.java
+++ b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/model/GLCall.java
@@ -78,6 +78,10 @@ public class GLCall {
return mMessage.getFunction();
}
+ public int getContextId() {
+ return mMessage.getContextId();
+ }
+
public List<DataType> getArgsList() {
return mMessage.getArgsList();
}
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/model/GLTrace.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/model/GLTrace.java
index b5d20f8..b81d830 100644
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/model/GLTrace.java
+++ b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/model/GLTrace.java
@@ -136,6 +136,10 @@ public class GLTrace {
for (int i = Math.min(fromIndex, toIndex); i <= Math.max(fromIndex, toIndex); i++) {
for (GLStateTransform f : mStateTransformsPerCall.get(i)) {
IGLProperty changedProperty = f.getChangedProperty(state);
+ if (changedProperty == null) {
+ continue;
+ }
+
// add the property that is affected
changedProperties.add(changedProperty);