diff options
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/GLTraceCollectorDialog.java')
-rw-r--r-- | eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/GLTraceCollectorDialog.java | 228 |
1 files changed, 0 insertions, 228 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/GLTraceCollectorDialog.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/GLTraceCollectorDialog.java deleted file mode 100644 index 56dc8e9ac..000000000 --- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/GLTraceCollectorDialog.java +++ /dev/null @@ -1,228 +0,0 @@ -/* - * Copyright (C) 2011 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.ide.eclipse.gltrace; - -import org.eclipse.jface.dialogs.IDialogConstants; -import org.eclipse.jface.dialogs.MessageDialog; -import org.eclipse.jface.dialogs.TitleAreaDialog; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionAdapter; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Group; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.ProgressBar; -import org.eclipse.swt.widgets.Shell; - -import java.io.IOException; -import java.text.DecimalFormat; - -/** Dialog displayed while the trace is being streamed from device to host. */ -public class GLTraceCollectorDialog extends TitleAreaDialog { - private static final String TITLE = "OpenGL ES Trace"; - private static final String DEFAULT_MESSAGE = "Trace collection in progress."; - private static final DecimalFormat SIZE_FORMATTER = new DecimalFormat("#.##"); //$NON-NLS-1$ - - private TraceOptions mTraceOptions; - private final TraceFileWriter mTraceFileWriter; - private final TraceCommandWriter mTraceCommandWriter; - - private Label mFramesCollectedLabel; - private Label mTraceFileSizeLabel; - private StatusRefreshTask mRefreshTask; - - protected GLTraceCollectorDialog(Shell parentShell, TraceFileWriter traceFileWriter, - TraceCommandWriter traceCommandWriter, TraceOptions traceOptions) { - super(parentShell); - mTraceFileWriter = traceFileWriter; - mTraceCommandWriter = traceCommandWriter; - mTraceOptions = traceOptions; - } - - @Override - protected Control createButtonBar(Composite parent) { - Composite c = new Composite(parent, SWT.NONE); - c.setLayout(new GridLayout(0, false)); - GridData gd = new GridData(GridData.FILL_HORIZONTAL); - gd.horizontalAlignment = GridData.CENTER; - c.setLayoutData(gd); - - createButton(c, IDialogConstants.OK_ID, "Stop Tracing", true); - return c; - } - - @Override - protected Control createDialogArea(Composite parent) { - parent.setLayout(new GridLayout()); - - setTitle(TITLE); - setMessage(DEFAULT_MESSAGE); - - Group controlGroup = new Group(parent, SWT.BORDER); - controlGroup.setLayout(new GridLayout(2, false)); - controlGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - controlGroup.setForeground(Display.getDefault().getSystemColor(SWT.COLOR_BLUE)); - controlGroup.setText("Trace Options"); - - createLabel(controlGroup, "Collect Framebuffer contents on eglSwapBuffers()"); - final Button eglSwapCheckBox = createButton(controlGroup, - mTraceOptions.collectFbOnEglSwap); - - createLabel(controlGroup, "Collect Framebuffer contents on glDraw*()"); - final Button glDrawCheckBox = createButton(controlGroup, mTraceOptions.collectFbOnGlDraw); - - createLabel(controlGroup, "Collect texture data for glTexImage*()"); - final Button glTexImageCheckBox = createButton(controlGroup, - mTraceOptions.collectTextureData); - - SelectionListener l = new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent event) { - boolean eglSwap = eglSwapCheckBox.getSelection(); - boolean glDraw = glDrawCheckBox.getSelection(); - boolean glTexImage = glTexImageCheckBox.getSelection(); - - try { - mTraceCommandWriter.setTraceOptions(eglSwap, glDraw, glTexImage); - } catch (IOException e) { - eglSwapCheckBox.setEnabled(false); - glDrawCheckBox.setEnabled(false); - glTexImageCheckBox.setEnabled(false); - - MessageDialog.openError(Display.getDefault().getActiveShell(), - "OpenGL ES Trace", - "Error while setting trace options: " + e.getMessage()); - } - - // update the text on the button - if (!(event.getSource() instanceof Button)) { - return; - } - Button sourceButton = (Button) event.getSource(); - sourceButton.setText(getToggleActionText(sourceButton.getSelection())); - sourceButton.pack(); - } - }; - - eglSwapCheckBox.addSelectionListener(l); - glDrawCheckBox.addSelectionListener(l); - glTexImageCheckBox.addSelectionListener(l); - - Group statusGroup = new Group(parent, SWT.NONE); - statusGroup.setLayout(new GridLayout(2, false)); - statusGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - statusGroup.setForeground(Display.getDefault().getSystemColor(SWT.COLOR_BLUE)); - statusGroup.setText("Trace Status"); - - createLabel(statusGroup, "Frames Collected:"); - mFramesCollectedLabel = createLabel(statusGroup, ""); - - createLabel(statusGroup, "Trace File Size:"); - mTraceFileSizeLabel = createLabel(statusGroup, ""); - - ProgressBar pb = new ProgressBar(statusGroup, SWT.INDETERMINATE); - GridData gd = new GridData(GridData.FILL_HORIZONTAL); - gd.horizontalSpan = 2; - pb.setLayoutData(gd); - - mRefreshTask = new StatusRefreshTask(); - new Thread(mRefreshTask, "Trace Status Refresh Thread").start(); - - return super.createDialogArea(parent); - } - - private Button createButton(Composite controlComposite, boolean selection) { - Button b = new Button(controlComposite, SWT.TOGGLE); - b.setText(getToggleActionText(selection)); - b.setSelection(selection); - return b; - } - - /** Get text to show on toggle box given its current selection. */ - private String getToggleActionText(boolean en) { - return en ? "Disable" : "Enable"; - } - - private Label createLabel(Composite parent, String text) { - Label l = new Label(parent, SWT.NONE); - l.setText(text); - GridData gd = new GridData(GridData.FILL_HORIZONTAL); - gd.horizontalAlignment = SWT.LEFT; - gd.verticalAlignment = SWT.CENTER; - l.setLayoutData(gd); - - return l; - } - - @Override - protected void okPressed() { - mRefreshTask.cancel(); - super.okPressed(); - } - - /** Periodically refresh the trace status. */ - private class StatusRefreshTask implements Runnable { - private static final int REFRESH_INTERVAL = 1000; - private volatile boolean mIsCancelled = false; - - @Override - public void run() { - if (mTraceFileWriter == null) { - return; - } - - while (!mIsCancelled) { - final String frameCount = Integer.toString(mTraceFileWriter.getCurrentFrameCount()); - - double fileSize = mTraceFileWriter.getCurrentFileSize(); - fileSize /= (1024 * 1024); // convert to size in MB - final String frameSize = SIZE_FORMATTER.format(fileSize) + " MB"; - - Display.getDefault().syncExec(new Runnable() { - @Override - public void run() { - if (mFramesCollectedLabel.isDisposed()) { - return; - } - - mFramesCollectedLabel.setText(frameCount); - mTraceFileSizeLabel.setText(frameSize); - - mFramesCollectedLabel.pack(); - mTraceFileSizeLabel.pack(); - } - }); - - try { - Thread.sleep(REFRESH_INTERVAL); - } catch (InterruptedException e) { - return; - } - } - } - - public void cancel() { - mIsCancelled = true; - } - } -} |