diff options
author | Siva Velusamy <vsiva@google.com> | 2011-12-15 12:33:01 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-12-15 12:33:01 -0800 |
commit | d5f733212db0aaa7b80d0f9d7184f8cc6943503d (patch) | |
tree | c0d1dcc47bf030705f75586786f7e5a30ab69f9c | |
parent | 7d00be55667a250fdcf1e0f7f52ac7aa5e5ecf13 (diff) | |
parent | 5e381c5ad46e68313b3642efceb3dea0abea0e1c (diff) | |
download | sdk-d5f733212db0aaa7b80d0f9d7184f8cc6943503d.zip sdk-d5f733212db0aaa7b80d0f9d7184f8cc6943503d.tar.gz sdk-d5f733212db0aaa7b80d0f9d7184f8cc6943503d.tar.bz2 |
Merge "gltrace: show context id corresponding to gl functions"
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); |