aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSiva Velusamy <vsiva@google.com>2012-08-15 10:44:40 -0700
committerandroid code review <noreply-gerritcodereview@google.com>2012-08-15 10:44:41 -0700
commitb8a2851136c91b6c4ff795ac5b0227dbb3b78e58 (patch)
tree5df1f7d81056d713ce93eec2edecbcd5b7356ed7
parentd0dae7afe707940f068d761d8e436a9dca48845b (diff)
parentf2d60eb32e2d2514a0a0a91c7bf2ac13ec74c5b4 (diff)
downloadsdk-b8a2851136c91b6c4ff795ac5b0227dbb3b78e58.zip
sdk-b8a2851136c91b6c4ff795ac5b0227dbb3b78e58.tar.gz
sdk-b8a2851136c91b6c4ff795ac5b0227dbb3b78e58.tar.bz2
Merge "Remove older gldebugger implementation."
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger.tests/src/com/android/ide/eclipse/gldebugger/MessageParserExTest.java119
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger.tests/src/com/android/ide/eclipse/gldebugger/MessageQueueTest.java185
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger.tests/src/com/android/ide/eclipse/gltrace/format/GLMessageFormatterTest.java2
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/META-INF/MANIFEST.MF5
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/plugin.xml7
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/BreakpointOption.java192
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/CodeGen.java1236
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/Context.java532
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/DebuggerMessage.java1736
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/GLFramesView.java757
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/GLServerShader.java259
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/GLServerState.java271
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/GLServerTexture.java235
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/GLServerVertex.java542
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/MessageData.java128
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/MessageFormatter.java1488
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/MessageParser.java747
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/MessageParserEx.java306
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/MessageProcessor.java173
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/MessageQueue.java322
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/ShaderEditor.java408
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/GLEnum.java (renamed from eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/GLEnum.java)2
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/GLTraceOptionsDialog.java1
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/GLUtils.java1
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/GlTracePlugin.java (renamed from eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/GlTracePlugin.java)2
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/ProtoBufUtils.java1
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/TraceFileParserTask.java2
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/editors/StateViewPage.java2
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/format/GLMessageFormatter.java2
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/GLEnumProperty.java2
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/GLState.java2
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/transforms/CurrentVboPropertyAccessor.java2
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/transforms/StateTransformFactory.java2
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/transforms/TexImageTransform.java2
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/views/FitToCanvasAction.java2
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/views/detail/ShaderUniformDetailsProvider.java2
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/views/detail/VboDetailProvider.java2
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/views/detail/VertexAttribPointerDataDetailProvider.java2
38 files changed, 16 insertions, 9665 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger.tests/src/com/android/ide/eclipse/gldebugger/MessageParserExTest.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger.tests/src/com/android/ide/eclipse/gldebugger/MessageParserExTest.java
deleted file mode 100644
index 8220cc7..0000000
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger.tests/src/com/android/ide/eclipse/gldebugger/MessageParserExTest.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- ** Copyright 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.gldebugger;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import com.android.ide.eclipse.gldebugger.GLEnum;
-import com.android.ide.eclipse.gldebugger.MessageFormatter;
-import com.android.ide.eclipse.gldebugger.MessageParserEx;
-import com.android.ide.eclipse.gldebugger.GLFramesView;
-import com.android.ide.eclipse.gldebugger.DebuggerMessage.Message;
-import com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Function;
-import com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Type;
-import com.google.protobuf.ByteString;
-
-import org.junit.Before;
-import org.junit.Test;
-
-import java.nio.ByteBuffer;
-
-public class MessageParserExTest {
- /**
- * @throws java.lang.Exception
- */
- @Before
- public void setUp() throws Exception {
- }
-
- @Test
- public void testParseFloats() {
- final MessageParserEx parser = new MessageParserEx();
- final String args = "{0, 1 ,2,3 }";
- parser.args = args;
- final ByteBuffer data = parser.parseFloats(4).asReadOnlyByteBuffer();
- data.order(GLFramesView.TARGET_BYTE_ORDER);
- for (int i = 0; i < 4; i++)
- assertEquals(i, data.getFloat(), 0);
- }
-
- @Test
- public void testParseArgument() {
- final MessageParserEx parser = new MessageParserEx();
- final String args = "sdfa = GL_VERTEX_SHADER , -5421 ,0x443=0x54f";
- parser.args = args;
- assertEquals(GLEnum.GL_VERTEX_SHADER.value, parser.parseArgument());
- assertEquals(-5421, parser.parseArgument());
- assertEquals(0x54f, parser.parseArgument());
- }
-
- /**
- * Test method for
- * {@link com.android.ide.eclipse.gldebugger.MessageParserEx#parse_glShaderSource(com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Builder)}
- * .
- */
- @Test
- public void testParse_glShaderSource() {
- final Message.Builder builder = Message.newBuilder();
- final MessageParserEx messageParserEx = new MessageParserEx();
- final String source = "dks \n jafhskjaho { urehg ; } hskjg";
- messageParserEx.parse(builder, "void glShaderSource ( shader=4, count= 1, "
- + "string =\"" + source + "\" , 0x0)");
- assertEquals(Function.glShaderSource, builder.getFunction());
- assertEquals(4, builder.getArg0());
- assertEquals(1, builder.getArg1());
- assertEquals(source, builder.getData().toStringUtf8());
- assertEquals(0, builder.getArg3());
- }
-
- @Test
- public void testParse_glBlendEquation() {
- assertNotNull(MessageParserEx.instance);
- final Message.Builder builder = Message.newBuilder();
- MessageParserEx.instance.parse(builder, "void glBlendEquation ( mode= GL_ADD ) ; ");
- assertEquals(Function.glBlendEquation, builder.getFunction());
- assertEquals(GLEnum.GL_ADD.value, builder.getArg0());
- }
-
- /** loopback testing of typical generated MessageFormatter and MessageParser */
- @Test
- public void testParseFormatterMessage() {
- final ByteBuffer srcData = ByteBuffer.allocate(4 * 2 * 4);
- srcData.order(GLFramesView.TARGET_BYTE_ORDER);
- for (int i = 0; i < 4 * 2; i++)
- srcData.putFloat(i);
- srcData.rewind();
- Message.Builder builder = Message.newBuilder();
- builder.setContextId(3752).setExpectResponse(false).setType(Type.CompleteCall);
- builder.setFunction(Function.glUniformMatrix2fv);
- builder.setArg0(54).setArg1(2).setArg2(0).setData(ByteString.copyFrom(srcData));
- Message msg = builder.build();
- builder = msg.toBuilder();
- String formatted = MessageFormatter.format(msg, false);
- formatted = formatted.substring(0, formatted.indexOf('(')) + ' ' + builder.getFunction() +
- formatted.substring(formatted.indexOf('('));
- Message.Builder parsed = Message.newBuilder();
- MessageParserEx.instance.parse(parsed, formatted);
- assertEquals(builder.getFunction(), parsed.getFunction());
- assertEquals(builder.getArg0(), parsed.getArg0());
- assertEquals(builder.getArg1(), parsed.getArg1());
- assertEquals(builder.getArg2(), parsed.getArg2());
- assertEquals(builder.getData().toStringUtf8(), parsed.getData().toStringUtf8());
- }
-
-}
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger.tests/src/com/android/ide/eclipse/gldebugger/MessageQueueTest.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger.tests/src/com/android/ide/eclipse/gldebugger/MessageQueueTest.java
deleted file mode 100644
index 360ebfc..0000000
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger.tests/src/com/android/ide/eclipse/gldebugger/MessageQueueTest.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- ** Copyright 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.gldebugger;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-
-import com.android.ide.eclipse.gldebugger.MessageQueue;
-import com.android.ide.eclipse.gldebugger.ProcessMessage;
-import com.android.ide.eclipse.gldebugger.DebuggerMessage.Message;
-import com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Function;
-import com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Type;
-
-import org.junit.Before;
-import org.junit.Test;
-
-import java.io.DataOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.nio.ByteOrder;
-
-public class MessageQueueTest {
- private MessageQueue queue;
-
- /**
- * @throws java.lang.Exception
- */
- @Before
- public void setUp() throws Exception {
- queue = new MessageQueue(null, new ProcessMessage[0]);
- }
-
- /**
- * Test method for
- * {@link com.android.ide.eclipse.gldebugger.MessageQueue#defaultProcessMessage(com.android.ide.eclipse.gldebugger.DebuggerMessage.Message, boolean, boolean)}
- * .
- *
- * @throws IOException
- */
- @Test
- public void testDefaultProcessMessage() throws IOException {
- final int contextId = 8784;
- assertNull(queue.getPartialMessage(contextId));
- Message.Builder builder = Message.newBuilder();
- builder.setContextId(contextId);
- builder.setExpectResponse(false);
- builder.setFunction(Function.glFinish);
- builder.setType(Type.BeforeCall);
- Message msg = builder.build();
- queue.defaultProcessMessage(msg, false, false);
- assertNotNull(queue.getPartialMessage(contextId));
-
- builder = msg.toBuilder();
- builder.setType(Type.AfterCall);
- builder.setTime(5);
- msg = builder.build();
- queue.defaultProcessMessage(msg, false, false);
- assertNull(queue.getPartialMessage(contextId));
- Message complete = queue.removeCompleteMessage(contextId);
- assertNotNull(complete);
- assertEquals(contextId, complete.getContextId());
- assertEquals(msg.getFunction(), complete.getFunction());
- assertEquals(msg.getTime(), complete.getTime(), 0);
- assertEquals(Type.CompleteCall, complete.getType());
-
- // an already complete message should just be added to complete queue
- queue.defaultProcessMessage(complete, false, false);
- assertNull(queue.getPartialMessage(contextId));
- complete = queue.removeCompleteMessage(contextId);
- assertNotNull(complete);
- assertEquals(contextId, complete.getContextId());
- assertEquals(msg.getFunction(), complete.getFunction());
- assertEquals(msg.getTime(), complete.getTime(), 0);
- assertEquals(Type.CompleteCall, complete.getType());
- }
-
- @Test
- public void testCompletePartialMessage() throws IOException {
- final int contextId = 8784;
- assertNull(queue.getPartialMessage(contextId));
- Message.Builder builder = Message.newBuilder();
- builder.setContextId(contextId);
- builder.setExpectResponse(false);
- builder.setFunction(Function.glFinish);
- builder.setType(Type.BeforeCall);
- Message msg = builder.build();
- queue.defaultProcessMessage(msg, false, false);
- assertNotNull(queue.getPartialMessage(contextId));
- queue.completePartialMessage(contextId);
-
- final Message complete = queue.removeCompleteMessage(contextId);
- assertNotNull(complete);
- assertEquals(contextId, complete.getContextId());
- assertEquals(msg.getFunction(), complete.getFunction());
- assertEquals(msg.getTime(), complete.getTime(), 0);
- assertEquals(Type.BeforeCall, complete.getType());
- }
-
- /** Write two messages from two contexts to file and test handling them */
- @Test
- public void testRunWithFile() throws FileNotFoundException, IOException, InterruptedException {
- final File filePath = File.createTempFile("test", ".gles2dbg");
- DataOutputStream file = new DataOutputStream(new FileOutputStream(filePath));
- Message.Builder builder = Message.newBuilder();
- final int contextId0 = 521643, contextId1 = 87634;
- assertNull(queue.removeCompleteMessage(contextId0));
- assertNull(queue.removeCompleteMessage(contextId1));
-
- builder.setContextId(contextId0).setExpectResponse(false).setType(Type.BeforeCall);
- builder.setFunction(Function.glClear).setArg0(contextId0);
- Message msg0 = builder.build();
- byte[] data = msg0.toByteArray();
- file.writeInt(data.length);
- file.write(data);
-
- builder = Message.newBuilder();
- builder.setContextId(contextId1).setExpectResponse(false).setType(Type.BeforeCall);
- builder.setFunction(Function.glDisable).setArg0(contextId1);
- Message msg1 = builder.build();
- data = msg1.toByteArray();
- file.writeInt(data.length);
- file.write(data);
-
- builder = Message.newBuilder();
- msg0 = builder.setContextId(msg0.getContextId()).setExpectResponse(false)
- .setType(Type.AfterCall).setFunction(msg0.getFunction()).setTime(2).build();
- data = msg0.toByteArray();
- file.writeInt(data.length);
- file.write(data);
-
- builder = Message.newBuilder();
- msg1 = builder.setContextId(msg1.getContextId()).setExpectResponse(false)
- .setType(Type.AfterCall).setFunction(msg1.getFunction()).setTime(465).build();
- data = msg1.toByteArray();
- file.writeInt(data.length);
- file.write(data);
-
- file.close();
-
- FileInputStream fis = new FileInputStream(filePath);
- // Java VM uses big endian, so the file was written in big endian
- queue.start(ByteOrder.BIG_ENDIAN, fis);
- queue.thread.join();
-
- Message complete0 = queue.removeCompleteMessage(msg0.getContextId());
- assertNotNull(complete0);
- assertNull(queue.removeCompleteMessage(contextId0));
- assertEquals(contextId0, complete0.getContextId());
- assertEquals(false, complete0.getExpectResponse());
- assertEquals(Type.CompleteCall, complete0.getType());
- assertEquals(msg0.getFunction(), complete0.getFunction());
- assertEquals(contextId0, complete0.getArg0());
- assertEquals(msg0.getTime(), complete0.getTime(), 0);
-
- Message complete1 = queue.removeCompleteMessage(msg1.getContextId());
- assertNotNull(complete1);
- assertNull(queue.removeCompleteMessage(contextId1));
- assertEquals(contextId1, complete1.getContextId());
- assertEquals(false, complete1.getExpectResponse());
- assertEquals(Type.CompleteCall, complete1.getType());
- assertEquals(msg1.getFunction(), complete1.getFunction());
- assertEquals(contextId1, complete1.getArg0());
- assertEquals(msg1.getTime(), complete1.getTime(), 0);
-
- filePath.delete();
- }
-}
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger.tests/src/com/android/ide/eclipse/gltrace/format/GLMessageFormatterTest.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger.tests/src/com/android/ide/eclipse/gltrace/format/GLMessageFormatterTest.java
index 984cbee..afbc09a 100644
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger.tests/src/com/android/ide/eclipse/gltrace/format/GLMessageFormatterTest.java
+++ b/eclipse/plugins/com.android.ide.eclipse.gldebugger.tests/src/com/android/ide/eclipse/gltrace/format/GLMessageFormatterTest.java
@@ -18,7 +18,7 @@ package com.android.ide.eclipse.gltrace.format;
import static org.junit.Assert.*;
-import com.android.ide.eclipse.gldebugger.GLEnum;
+import com.android.ide.eclipse.gltrace.GLEnum;
import com.android.ide.eclipse.gltrace.GLProtoBuf.GLMessage;
import com.android.ide.eclipse.gltrace.GLProtoBuf.GLMessage.Builder;
import com.android.ide.eclipse.gltrace.GLProtoBuf.GLMessage.DataType;
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/META-INF/MANIFEST.MF b/eclipse/plugins/com.android.ide.eclipse.gldebugger/META-INF/MANIFEST.MF
index e25e76f..7c91055 100644
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/META-INF/MANIFEST.MF
+++ b/eclipse/plugins/com.android.ide.eclipse.gldebugger/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2
Bundle-Name: Tracer for OpenGL ES
Bundle-SymbolicName: com.android.ide.eclipse.gldebugger;singleton:=true
Bundle-Version: 21.0.0.qualifier
-Bundle-Activator: com.android.ide.eclipse.gldebugger.GlTracePlugin
+Bundle-Activator: com.android.ide.eclipse.gltrace.GlTracePlugin
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
org.eclipse.ui.ide,
@@ -17,8 +17,7 @@ Bundle-ClassPath: libs/host-libprotobuf-java-2.3.0-lite.jar,
libs/liblzf.jar,
.
Bundle-Vendor: The Android Open Source Project
-Export-Package: com.android.ide.eclipse.gldebugger;x-friends:="com.android.ide.eclipse.gldebugger.tests",
- com.android.ide.eclipse.gltrace;x-friends:="com.android.ide.eclipse.gldebugger.tests",
+Export-Package: com.android.ide.eclipse.gltrace;x-friends:="com.android.ide.eclipse.gldebugger.tests",
com.android.ide.eclipse.gltrace.format;x-friends:="com.android.ide.eclipse.gldebugger.tests",
com.android.ide.eclipse.gltrace.model;x-friends:="com.android.ide.eclipse.gldebugger.tests"
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/plugin.xml b/eclipse/plugins/com.android.ide.eclipse.gldebugger/plugin.xml
index 67ebd88..6c25822 100644
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/plugin.xml
+++ b/eclipse/plugins/com.android.ide.eclipse.gldebugger/plugin.xml
@@ -9,13 +9,6 @@
name="Tracer for OpenGL ES">
</category>
<view
- name="OpenGL Trace"
- icon="icons/sample.gif"
- category="com.android.ide.eclipse.gltrace"
- class="com.android.ide.eclipse.gldebugger.GLFramesView"
- id="glesv2debuggerclient.views.SampleView">
- </view>
- <view
category="com.android.ide.eclipse.gltrace"
class="com.android.ide.eclipse.gltrace.views.FrameSummaryView"
icon="icons/opengl.png"
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/BreakpointOption.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/BreakpointOption.java
deleted file mode 100644
index b75cf99..0000000
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/BreakpointOption.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- ** Copyright 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.gldebugger;
-
-import com.android.ide.eclipse.gldebugger.DebuggerMessage.Message;
-import com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Function;
-import com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Prop;
-import com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Type;
-
-import org.eclipse.jface.dialogs.InputDialog;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Shell;
-
-import java.io.IOException;
-
-public class BreakpointOption extends ScrolledComposite implements SelectionListener,
- ProcessMessage {
-
- GLFramesView mGLFramesView;
- Button[] buttonsBreak = new Button[Function.values().length];
- /** cache of buttonsBreak[Function.getNumber()].getSelection */
- boolean[] breakpoints = new boolean[Function.values().length];
-
- BreakpointOption(GLFramesView view, Composite parent) {
- super(parent, SWT.NO_BACKGROUND | SWT.V_SCROLL | SWT.H_SCROLL);
- mGLFramesView = view;
-
- Composite composite = new Composite(this, 0);
- GridLayout layout = new GridLayout();
- layout.numColumns = 4;
- composite.setLayout(layout);
- this.setLayout(new FillLayout());
-
- for (int i = 0; i < Function.values().length; i++) {
- Group group = new Group(composite, 0);
- group.setLayout(new RowLayout());
- group.setText(Function.values()[i].toString());
- Button btn = new Button(group, SWT.CHECK);
- btn.addSelectionListener(this);
- btn.setText("Break");
- btn.setSelection(false);
- breakpoints[Function.values()[i].getNumber()] = btn.getSelection();
- buttonsBreak[Function.values()[i].getNumber()] = btn;
- }
-
- Point size = composite.computeSize(SWT.DEFAULT, SWT.DEFAULT);
- composite.setSize(size);
- this.setContent(composite);
- this.setExpandHorizontal(true);
- this.setExpandVertical(true);
- this.setMinSize(size);
- this.layout();
- }
-
- void setBreakpoint(final int contextId, final Function function, final boolean enabled) {
- Message.Builder builder = Message.newBuilder();
- builder.setContextId(contextId);
- builder.setType(Type.Response);
- builder.setExpectResponse(false);
- builder.setFunction(Function.SETPROP);
- builder.setProp(Prop.ExpectResponse);
- builder.setArg0(function.getNumber());
- builder.setArg1(enabled ? 1 : 0);
- mGLFramesView.messageQueue.addCommand(builder.build());
- breakpoints[function.getNumber()] = enabled;
- }
-
- @Override
- public void widgetSelected(SelectionEvent e) {
- Button btn = (Button) e.widget;
- Group group = (Group) btn.getParent();
- int contextId = 0;
- if (mGLFramesView.current != null)
- contextId = mGLFramesView.current.contextId;
- setBreakpoint(contextId, Function.valueOf(group.getText()), btn.getSelection());
- }
-
- @Override
- public void widgetDefaultSelected(SelectionEvent e) {
- }
-
- private Function lastFunction = Function.NEG;
-
- @Override
- public boolean processMessage(final MessageQueue queue, final Message msg) throws IOException {
- if (!breakpoints[msg.getFunction().getNumber()])
- return false;
- // use DefaultProcessMessage just to register the GL call
- // but do not send response
- final int contextId = msg.getContextId();
- if (msg.getType() == Type.BeforeCall || msg.getType() == Type.AfterCall)
- queue.defaultProcessMessage(msg, true, false);
- final Message.Builder builder = Message.newBuilder();
- builder.setContextId(contextId);
- builder.setType(Type.Response);
- builder.setExpectResponse(true);
- final Shell shell = mGLFramesView.getViewSite().getShell();
- final boolean send[] = new boolean[1];
- shell.getDisplay().syncExec(new Runnable() {
- @Override
- public void run() {
- String call = MessageFormatter.format(msg, false);
- call = call.substring(0, call.indexOf("(")) + ' ' +
- msg.getFunction() + call.substring(call.indexOf("("));
- if (msg.hasData() && msg.getFunction() == Function.glShaderSource)
- {
- int index = call.indexOf("string=") + 7;
- String ptr = call.substring(index, call.indexOf(',', index));
- call = call.replace(ptr, '"' + msg.getData().toStringUtf8() + '"');
- }
- if (msg.getType() == Type.AfterCall)
- {
- call = "skip " + call;
- builder.setFunction(Function.SKIP);
- }
- else if (msg.getType() == Type.BeforeCall)
- {
- call = "continue " + call;
- builder.setFunction(Function.CONTINUE);
- }
- else
- {
- assert msg.getType() == Type.AfterGeneratedCall;
- assert msg.getFunction() == lastFunction;
- call = "skip " + call;
- builder.setFunction(Function.SKIP);
- }
- InputDialog inputDialog = new InputDialog(shell,
- msg.getFunction().toString() + " " + msg.getType().toString(),
- "(s)kip, (c)continue, (r)emove bp or glFunction(...)",
- call, null);
- if (Window.OK == inputDialog.open())
- {
- String s = inputDialog.getValue().substring(0, 1).toLowerCase();
- if (s.startsWith("s"))
- {
- builder.setFunction(Function.SKIP);
- // AfterCall is skipped, so push BeforeCall to complete
- if (queue.getPartialMessage(contextId) != null)
- queue.completePartialMessage(contextId);
- }
- else if (s.startsWith("c"))
- builder.setFunction(Function.CONTINUE);
- else if (s.startsWith("r"))
- {
- Button btn = buttonsBreak[msg.getFunction().getNumber()];
- btn.setSelection(false);
- setBreakpoint(msg.getContextId(), msg.getFunction(), false);
- builder.setExpectResponse(false);
- }
- else
- {
- MessageParserEx.instance.parse(builder, inputDialog.getValue());
- lastFunction = builder.getFunction();
- builder.setExpectResponse(true);
- // AfterCall is skipped, so push BeforeCall to complete
- if (queue.getPartialMessage(contextId) != null)
- queue.completePartialMessage(contextId);
- }
- }
- // else defaults to continue BeforeCall and skip AfterCall
- }
- });
- queue.sendMessage(builder.build());
- return true;
- }
-}
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/CodeGen.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/CodeGen.java
deleted file mode 100644
index 1477106..0000000
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/CodeGen.java
+++ /dev/null
@@ -1,1236 +0,0 @@
-/*
- ** Copyright 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.gldebugger;
-
-import com.android.ide.eclipse.gldebugger.DebuggerMessage.Message;
-import com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Function;
-import com.android.sdklib.util.SparseIntArray;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.swt.widgets.Shell;
-
-import java.io.FileOutputStream;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.lang.reflect.InvocationTargetException;
-import java.nio.ByteBuffer;
-
-public class CodeGen implements IRunnableWithProgress {
- private FileWriter codeFile, makeFile, namesHeaderFile, namesSourceFile;
- private PrintWriter code, make, namesHeader, namesSource;
- private FileOutputStream dataOut;
- private SparseIntArray bufferNames,
- framebufferNames, programNames, textureNames, shaderNames, renderbufferNames;
-
- /** return true if msg was a texture upload */
- private boolean codeGenTextureUpload(final Message msg, final boolean replaceCopy) {
- String s = null;
- switch (msg.getFunction()) {
- case glCompressedTexImage2D:
- s = MessageFormatter.format(msg, true).replace("arg7", "texData");
- break;
- case glCompressedTexSubImage2D:
- case glTexImage2D:
- case glTexSubImage2D:
- s = MessageFormatter.format(msg, true).replace("arg8", "texData");
- break;
- case glCopyTexImage2D:
- if (!replaceCopy) {
- code.write(MessageFormatter.format(msg, true));
- code.write(";CHKERR;\n");
- return true;
- }
- assert msg.getArg2() == msg.getPixelFormat(); // TODO
- s = "//" + MessageFormatter.format(msg, true) + "\n";
- s += String.format("glTexImage2D(%s, %d, %s, %d, %d, %d, %s, %s, texData);CHKERR;",
- GLEnum.valueOf(msg.getArg0()), msg.getArg1(),
- GLEnum.valueOf(msg.getArg2()), msg.getArg5(), msg.getArg6(),
- msg.getArg7(), GLEnum.valueOf(msg.getPixelFormat()),
- GLEnum.valueOf(msg.getPixelType()));
- break;
- case glCopyTexSubImage2D:
- if (!replaceCopy) {
- code.write(MessageFormatter.format(msg, true));
- code.write(";CHKERR;\n");
- return true;
- }
- // FIXME: check the texture format & type, and convert
- s = "//" + MessageFormatter.format(msg, true) + "\n";
- s += String.format(
- "glTexSubImage2D(%s, %d, %d, %d, %d, %d, %s, %s, texData);CHKERR;",
- GLEnum.valueOf(msg.getArg0()), msg.getArg1(), msg.getArg2(),
- msg.getArg3(), msg.getArg6(), msg.getArg7(),
- GLEnum.valueOf(msg.getPixelFormat()), GLEnum.valueOf(msg.getPixelType()));
- break;
- default:
- return false;
- }
-
- if (msg.hasData()) {
- final byte[] data = MessageProcessor.lzfDecompressChunks(msg.getData());
- try {
- code.write("{\n");
- code.format(" void * texData = malloc(%d);CHKERR;\n", data.length);
- code.format(" FILE * texFile = fopen(\"/sdcard/frame_data.bin\", \"rb\");CHKERR;\n");
- code.format(" assert(texFile);CHKERR;\n");
- code.format(" fseek(texFile, %d, SEEK_SET);CHKERR;\n", dataOut.getChannel()
- .position());
- dataOut.write(data);
- code.format(" fread(texData, %d, 1, texFile);CHKERR;\n", data.length);
- code.format(" fclose(texFile);CHKERR;\n");
- code.format(" " + s + ";\n");
- code.format(" free(texData);CHKERR;\n");
- code.format("}\n");
- } catch (IOException e) {
- e.printStackTrace();
- assert false;
- }
- } else
- code.write(s.replace("texData", "NULL") + ";\n");
- return true;
- }
-
- private void codeGenServerState(final GLServerState serverState) {
- code.write("// CodeGenServerState\n");
- for (int i = 0; i < serverState.enableDisables.size(); i++) {
- final GLEnum key = GLEnum.valueOf(serverState.enableDisables.keyAt(i));
- if (serverState.enableDisables.valueAt(i) == 0)
- code.format("glDisable(%s);CHKERR;\n", key);
- else
- code.format("glEnable(%s);CHKERR;\n", key);
- }
- for (int i = 0; i < serverState.lastSetter.size(); i++) {
- final Function key = Function.valueOf(serverState.lastSetter.keyAt(i));
- final Message msg = serverState.lastSetter.valueAt(i);
- if (msg == null) {
- code.format("// %s is default\n", key);
- continue;
- }
- final String s = MessageFormatter.format(msg, true);
- code.write(s);
- code.write(";\n");
- }
- // TODO: stencil and integers
- }
-
- private void codeGenServerShader(final GLServerShader serverShader) {
- code.write("// CodeGenServerShader\n");
- for (int i = 0; i < serverShader.shaders.size(); i++) {
- final int name = serverShader.shaders.keyAt(i);
- final GLShader shader = serverShader.shaders.valueAt(i);
- final String id = "shader_" + name;
- if (shaderNames.indexOfKey(name) < 0) {
- namesSource.format("GLuint %s = 0;\n", id);
- namesHeader.format("extern GLuint %s;\n", id);
- }
- code.format("%s = glCreateShader(%s);CHKERR;\n", id, shader.type);
- shaderNames.put(name, name);
-
- if (shader.source != null) {
- final String src = shader.source.replace("\r", "").replace("\n", "\\n\\\n")
- .replace("\"", "\\\"");
- code.format("glShaderSource(%s, 1, (const GLchar *[]){\"%s\"}, NULL);CHKERR;\n",
- id, src);
- code.format("glCompileShader(%s);CHKERR;\n", id);
- }
- }
-
- for (int i = 0; i < serverShader.programs.size(); i++) {
- final int name = serverShader.programs.keyAt(i);
- final GLProgram program = serverShader.programs.valueAt(i);
- final String id = "program_" + name;
- if (programNames.indexOfKey(name) < 0) {
- namesSource.format("GLuint %s = 0;\n", id);
- namesHeader.format("extern GLuint %s;\n", id);
- }
- code.format("%s = glCreateProgram();CHKERR;\n", id);
- programNames.put(name, name);
- code.format("glAttachShader(%s, shader_%d);CHKERR;\n", id,
- program.vert);
- code.format("glAttachShader(%s, shader_%d);CHKERR;\n", id,
- program.frag);
- code.format("glLinkProgram(%s);CHKERR;\n", id);
- if (serverShader.current == program)
- code.format("glUseProgram(%s);CHKERR;\n", id);
- }
- }
-
- private void codeGenServerTexture(final GLServerTexture serverTexture, final boolean replaceCopy) {
- code.write("// CodeGenServerTexture\n");
- for (int i = 0; i < serverTexture.textures.size(); i++) {
- final int name = serverTexture.textures.keyAt(i);
- final GLTexture tex = serverTexture.textures.valueAt(i);
- final String id = "texture_" + name;
- if (textureNames.indexOfKey(name) < 0) {
- namesHeader.format("extern GLuint %s;\n", id);
- namesSource.format("GLuint %s = 0;\n", id);
- }
- code.format("%s = 0;\n", id);
- textureNames.put(name, name);
-
- if (name == 0)
- continue;
- code.format("glGenTextures(1, &%s);CHKERR;\n", id);
- String s = String.format("glBindTexture(%s, texture_%d);CHKERR;\n", tex.target,
- tex.name);
- code.write(s);
- for (final Message msg : tex.contentChanges) {
- if (codeGenTextureUpload(msg, replaceCopy))
- continue;
- switch (msg.getFunction()) {
- case glGenerateMipmap:
- s = MessageFormatter.format(msg, true);
- break;
- default:
- assert false;
- }
- code.write(s + ";\n");
- }
- code.format("glTexParameteriv(%s, GL_TEXTURE_WRAP_S, (GLint[]){%s});CHKERR;\n",
- tex.target, tex.wrapS);
- code.format("glTexParameteriv(%s, GL_TEXTURE_WRAP_T, (GLint[]){%s});CHKERR;\n",
- tex.target, tex.wrapT);
- code.format("glTexParameteriv(%s, GL_TEXTURE_MIN_FILTER, (GLint[]){%s});CHKERR;\n",
- tex.target, tex.min);
- code.format("glTexParameteriv(%s, GL_TEXTURE_MAG_FILTER, (GLint[]){%s});CHKERR;\n",
- tex.target, tex.mag);
- }
- for (int i = 0; i < serverTexture.tmu2D.length; i++) {
- code.format("glActiveTexture(%s);CHKERR;\n",
- GLEnum.valueOf(GLEnum.GL_TEXTURE0.value + i));
- code.format("glBindTexture(GL_TEXTURE_2D, texture_%d);CHKERR;\n",
- serverTexture.tmu2D[i]);
- }
- for (int i = 0; i < serverTexture.tmuCube.length; i++) {
- code.format("glActiveTexture(%s);CHKERR;\n",
- GLEnum.valueOf(GLEnum.GL_TEXTURE0.value + i));
- code.format("glBindTexture(GL_TEXTURE_CUBE_MAP, texture_%d);CHKERR;\n",
- serverTexture.tmuCube[i]);
- }
- code.format("glActiveTexture(%s);CHKERR;\n", serverTexture.activeTexture);
- if (serverTexture.tex2D == null)
- code.format("glBindTexture(GL_TEXTURE_2D, 0);CHKERR;\n");
- else
- code.format("glBindTexture(GL_TEXTURE_2D, texture_%d);CHKERR;\n",
- serverTexture.tex2D.name);
- if (serverTexture.texCube == null)
- code.format("glBindTexture(GL_TEXTURE_CUBE_MAP, 0);CHKERR;\n");
- else
- code.format("glBindTexture(GL_TEXTURE_CUBE_MAP, texture_%d);CHKERR;\n",
- serverTexture.texCube.name);
- }
-
- private void codeGenBufferData(final ByteBuffer buffer, final String call) {
- ByteBuffer bfr = buffer;
- if (buffer.isReadOnly()) {
- bfr = ByteBuffer.allocate(buffer.capacity());
- bfr.put(buffer);
- }
- final byte[] data = bfr.array();
- try {
- code.write("{\n");
- code.format(" void * bufferData = malloc(%d);\n", data.length);
- code.format(" FILE * bufferFile = fopen(\"/sdcard/frame_data.bin\", \"rb\");\n");
- code.format(" assert(bufferFile);\n");
- code.format(" fseek(bufferFile, %d, SEEK_SET);\n", dataOut.getChannel()
- .position());
- dataOut.write(data);
- code.format(" fread(bufferData, %d, 1, bufferFile);\n", data.length);
- code.format(" fclose(bufferFile);\n");
- code.format(" " + call + ";CHKERR;\n");
- code.format(" free(bufferData);\n");
- code.format("}\n");
- } catch (IOException e) {
- e.printStackTrace();
- assert false;
- }
- }
-
- private void codeGenServerVertex(final GLServerVertex v) {
- code.write("// CodeGenServerVertex\n");
- for (int i = 0; i < v.buffers.size(); i++) {
- final int name = v.buffers.keyAt(i);
- final String id = "buffer_" + name;
- final GLBuffer buffer = v.buffers.valueAt(i);
- if (bufferNames.indexOfKey(name) < 0) {
- namesHeader.format("extern GLuint %s;\n", id);
- namesSource.format("GLuint %s = 0;\n", id);
- }
- code.format("%s = 0;\n", id);
- bufferNames.put(name, name);
- if (name == 0)
- continue;
- code.format("glGenBuffers(1, &%s);CHKERR;\n", id);
- if (buffer.target != null) {
- code.format("glBindBuffer(%s, %s);CHKERR;\n", buffer.target, id);
- if (buffer.data != null) {
- String s = String.format("glBufferData(%s, %d, bufferData, %s)", buffer.target,
- buffer.data.capacity(), buffer.usage);
- codeGenBufferData(buffer.data, s);
- }
- }
- }
- // TODO: use MAX_VERTEX_ATTRIBS
- for (int i = 0; i < v.defaultAttribs.length; i++)
- code.format("glVertexAttrib4f(%d, %f, %f, %f, %f);CHKERR;\n", i,
- v.defaultAttribs[i][0],
- v.defaultAttribs[i][1], v.defaultAttribs[i][2], v.defaultAttribs[i][3]);
- for (int i = 0; i < v.attribPointers.length; i++) {
- final GLAttribPointer att = v.attribPointers[i];
- if (att.type == null)
- continue;
- if (att.buffer != null)
- code.format("glBindBuffer(GL_ARRAY_BUFFER, buffer_%d);CHKERR;\n", att.buffer.name);
- else
- code.format("glBindBuffer(GL_ARRAY_BUFFER, 0);CHKERR;\n");
- code.format("glVertexAttribPointer(%d, %d, %s, %b, %d, (const GLvoid *)%d);CHKERR;\n",
- i, att.size, att.type, att.normalized, att.stride, att.ptr);
- }
- if (v.attribBuffer != null)
- code.format("glBindBuffer(GL_ARRAY_BUFFER, buffer_%d);CHKERR;\n", v.attribBuffer.name);
- else
- code.write("glBindBuffer(GL_ARRAY_BUFFER, 0);CHKERR;\n");
- if (v.indexBuffer != null)
- code.format("glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, buffer_%d);CHKERR;\n",
- v.indexBuffer.name);
- else
- code.write("glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);CHKERR;\n");
- }
-
- private void codeGenGenNames(final Message msg) {
- final ByteBuffer names = msg.getData().asReadOnlyByteBuffer();
- names.order(GLFramesView.TARGET_BYTE_ORDER);
- SparseIntArray namesArray = null;
- for (int i = 0; i < msg.getArg0(); i++) {
- String id = "";
- final int name = names.getInt();
- switch (msg.getFunction()) {
- case glGenBuffers:
- id = "buffer";
- namesArray = bufferNames;
- break;
- case glGenFramebuffers:
- id = "framebuffer";
- namesArray = framebufferNames;
- break;
- case glGenRenderbuffers:
- id = "renderbuffer";
- namesArray = renderbufferNames;
- break;
- case glGenTextures:
- id = "texture";
- namesArray = textureNames;
- break;
- default:
- assert false;
- }
- id += "_" + name;
- if (namesArray.indexOfKey(name) < 0) {
- namesHeader.format("extern GLuint %s;\n", id);
- namesSource.format("GLuint %s = 0;\n", id);
- }
- code.format("%s = 0;\n", id);
- namesArray.put(name, name);
- code.format("%s(1, &%s);CHKERR;\n", msg.getFunction(), id);
- }
- }
-
- private void codeGenDeleteNames(final Message msg) {
- final ByteBuffer names = msg.getData().asReadOnlyByteBuffer();
- names.order(GLFramesView.TARGET_BYTE_ORDER);
- SparseIntArray namesArray = null;
- for (int i = 0; i < msg.getArg0(); i++) {
- String id = null;
- final int name = names.getInt();
- switch (msg.getFunction()) {
- case glDeleteBuffers:
- id = "buffer";
- namesArray = bufferNames;
- break;
- case glDeleteFramebuffers:
- id = "framebuffer";
- namesArray = framebufferNames;
- break;
- case glDeleteRenderbuffers:
- id = "renderbuffer";
- namesArray = renderbufferNames;
- break;
- case glDeleteTextures:
- id = "texture";
- namesArray = textureNames;
- break;
- default:
- assert false;
- }
- id += "_" + name;
- code.format("%s = 0;\n", id);
- namesArray.put(name, 0);
- code.format("%s(1, &%s);CHKERR;\n", msg.getFunction(), id);
- }
- }
-
- private void codeGenBindNames(final Message msg) {
- String id = null;
- SparseIntArray namesArray = null;
- final int name = msg.getArg1();
- switch (msg.getFunction()) {
- case glBindBuffer:
- id = "buffer";
- namesArray = bufferNames;
- break;
- case glBindFramebuffer:
- id = "framebuffer";
- namesArray = framebufferNames;
- break;
- case glBindRenderbuffer:
- id = "renderbuffer";
- namesArray = renderbufferNames;
- break;
- case glBindTexture:
- id = "texture";
- namesArray = textureNames;
- break;
- default:
- assert false;
- }
- id += "_" + name;
- if (namesArray.indexOfKey(name) < 0) {
- namesHeader.format("extern GLuint %s;\n", id);
- namesSource.format("GLuint %s = 0;\n", id);
- } else if (namesArray.get(name) != name)
- code.format("%s = %d;\n", id, name); // name was deleted
- namesArray.put(name, name);
- code.write(MessageFormatter.format(msg, true));
- code.write(";CHKERR;\n");
- }
-
- private void codeGenDrawArrays(final GLServerVertex v, final MessageData msgData)
- throws IOException {
- final int maxAttrib = msgData.msg.getArg7();
- if (maxAttrib < 1) {
- code.write("// no vertex data\n");
- return;
- }
- final byte[] data = msgData.msg.getData().toByteArray();
- final GLEnum mode = GLEnum.valueOf(msgData.msg.getArg0());
- final int first = msgData.msg.getArg1(), count = msgData.msg.getArg2();
- int attribDataStride = 0;
- for (int i = 0; i < maxAttrib; i++) {
- final GLAttribPointer att = v.attribPointers[i];
- if (!att.enabled)
- continue;
- if (att.buffer != null)
- continue;
- attribDataStride += att.elemSize;
- }
- assert attribDataStride * count == data.length;
- code.write("{\n");
- if (attribDataStride > 0) {
- code.format(" FILE * attribFile = fopen(\"/sdcard/frame_data.bin\", \"rb\");CHKERR;\n");
- code.format(" assert(attribFile);CHKERR;\n");
- code.format(" fseek(attribFile, %d, SEEK_SET);CHKERR;\n", dataOut.getChannel()
- .position());
- dataOut.write(data);
- code.format(" char * const attribData = (char *)malloc(%d);\n", first
- * attribDataStride + data.length);
- code.format(" assert(attribData);\n");
- code.format(" fread(attribData + %d, %d, 1, attribFile);\n",
- first * attribDataStride, data.length);
- code.format(" fclose(attribFile);\n");
- code.format(" glBindBuffer(GL_ARRAY_BUFFER, 0);CHKERR;\n");
- int attribDataOffset = 0;
- for (int i = 0; i < maxAttrib; i++) {
- final GLAttribPointer att = v.attribPointers[i];
- if (!att.enabled)
- continue;
- if (att.buffer != null)
- continue;
- code.format(
- " glVertexAttribPointer(%d, %d, %s, %b, %d, attribData + %d);CHKERR;\n",
- i, att.size, att.type, att.normalized,
- attribDataStride, attribDataOffset);
- attribDataOffset += att.elemSize;
- }
- if (v.attribBuffer != null)
- code.format(" glBindBuffer(GL_ARRAY_BUFFER, %d);CHKERR;\n",
- v.attribBuffer.name);
- }
- code.format(" glDrawArrays(%s, %d, %d);CHKERR;\n", mode, first, count);
- if (attribDataStride > 0)
- code.format(" free(attribData);CHKERR;\n");
- code.write("};\n");
- }
-
- private void codeGenDrawElements(final GLServerVertex v, final MessageData msgData)
- throws IOException {
- final int maxAttrib = msgData.msg.getArg7();
- if (maxAttrib < 1) {
- code.write("// no vertex data\n");
- return;
- }
- final GLEnum mode = GLEnum.valueOf(msgData.msg.getArg0());
- final int count = msgData.msg.getArg1();
- final GLEnum type = GLEnum.valueOf(msgData.msg.getArg2());
- String typeName = "GLubyte";
- if (type == GLEnum.GL_UNSIGNED_SHORT)
- typeName = "GLushort";
- int attribDataStride = 0;
- for (int i = 0; i < maxAttrib; i++) {
- final GLAttribPointer att = v.attribPointers[i];
- if (!att.enabled)
- continue;
- if (att.buffer != null)
- continue;
- attribDataStride += att.elemSize;
- }
- code.write("{\n");
- if (v.indexBuffer == null || attribDataStride > 0) {
- // need to load user pointer indices and/or attributes
- final byte[] element = new byte[attribDataStride];
- final ByteBuffer data = msgData.msg.getData().asReadOnlyByteBuffer();
- data.order(GLFramesView.TARGET_BYTE_ORDER);
- final ByteBuffer indexData = ByteBuffer.allocate(count * GLServerVertex.typeSize(type));
- indexData.order(GLFramesView.TARGET_BYTE_ORDER);
- final ByteBuffer attribData = ByteBuffer.allocate(count * attribDataStride);
- attribData.order(GLFramesView.TARGET_BYTE_ORDER);
- int maxIndex = -1;
- ByteBuffer indexSrc = data;
- if (v.indexBuffer != null) {
- indexSrc = v.indexBuffer.data;
- indexSrc.position(msgData.msg.getArg3());
- }
- indexSrc.order(GLFramesView.TARGET_BYTE_ORDER);
- for (int i = 0; i < count; i++) {
- int index = -1;
- if (type == GLEnum.GL_UNSIGNED_BYTE) {
- byte idx = indexSrc.get();
- index = idx & 0xff;
- indexData.put(idx);
- } else if (type == GLEnum.GL_UNSIGNED_SHORT) {
- short idx = indexSrc.getShort();
- index = idx & 0xffff;
- indexData.putShort(idx);
- } else
- assert false;
- data.get(element);
- attribData.put(element);
- if (index > maxIndex)
- maxIndex = index;
- }
- code.format(" FILE * attribFile = fopen(\"/sdcard/frame_data.bin\", \"rb\");CHKERR;\n");
- code.format(" assert(attribFile);CHKERR;\n");
- code.format(" fseek(attribFile, 0x%X, SEEK_SET);CHKERR;\n",
- dataOut.getChannel().position());
- dataOut.write(indexData.array());
- code.format(" %s * const indexData = (%s *)malloc(%d);\n", typeName, typeName,
- indexData.capacity());
- code.format(" assert(indexData);\n");
- code.format(" fread(indexData, %d, 1, attribFile);\n", indexData.capacity());
- if (attribDataStride > 0) {
- code.format(" glBindBuffer(GL_ARRAY_BUFFER, 0);CHKERR;\n");
- for (int i = 0; i < maxAttrib; i++) {
- final GLAttribPointer att = v.attribPointers[i];
- if (!att.enabled)
- continue;
- if (att.buffer != null)
- continue;
- code.format(" char * const attrib%d = (char *)malloc(%d);\n",
- i, att.elemSize * (maxIndex + 1));
- code.format(" assert(attrib%d);\n", i);
- code.format(
- " glVertexAttribPointer(%d, %d, %s, %b, %d, attrib%d);CHKERR;\n",
- i, att.size, att.type, att.normalized, att.elemSize, i);
- }
- dataOut.write(attribData.array());
- code.format(" for (%s i = 0; i < %d; i++) {\n", typeName, count);
- for (int i = 0; i < maxAttrib; i++) {
- final GLAttribPointer att = v.attribPointers[i];
- if (!att.enabled)
- continue;
- if (att.buffer != null)
- continue;
- code.format(
- " fread(attrib%d + indexData[i] * %d, %d, 1, attribFile);\n",
- i, att.elemSize, att.elemSize);
- }
- code.format(" }\n");
- if (v.attribBuffer != null)
- code.format(" glBindBuffer(GL_ARRAY_BUFFER, %d);CHKERR;\n",
- v.attribBuffer.name);
- }
- code.format(" fclose(attribFile);\n");
- }
- if (v.indexBuffer != null)
- code.format(" glDrawElements(%s, %d, %s, (const void *)%d);CHKERR;\n",
- mode, count, type, msgData.msg.getArg3());
- else {
- code.format(" glDrawElements(%s, %d, %s, indexData);CHKERR;\n",
- mode, count, type);
- code.format(" free(indexData);\n");
- }
- for (int i = 0; i < maxAttrib; i++) {
- final GLAttribPointer att = v.attribPointers[i];
- if (!att.enabled)
- continue;
- if (att.buffer != null)
- continue;
- code.format(" free(attrib%d);\n", i);
- }
- code.write("};\n");
- }
-
- private void codeGenDraw(final GLServerVertex v, final MessageData msgData)
- throws IOException {
- final int maxAttrib = msgData.msg.getArg7();
- if (maxAttrib < 1) {
- code.write("// no vertex data\n");
- return;
- }
- final int count = msgData.attribs[0].length / 4;
- final GLEnum mode = GLEnum.valueOf(msgData.msg.getArg0());
- final ByteBuffer attribData = ByteBuffer.allocate(maxAttrib * count * 16);
- attribData.order(GLFramesView.TARGET_BYTE_ORDER);
- for (int i = 0; i < count; i++)
- for (int j = 0; j < maxAttrib; j++)
- for (int k = 0; k < 4; k++)
- attribData.putFloat(msgData.attribs[j][i * 4 + k]);
- assert attribData.remaining() == 0;
- code.write("{\n");
- code.format(" FILE * attribFile = fopen(\"/sdcard/frame_data.bin\", \"rb\");CHKERR;\n");
- code.format(" assert(attribFile);CHKERR;\n");
- code.format(" fseek(attribFile, 0x%X, SEEK_SET);CHKERR;\n",
- dataOut.getChannel().position());
- dataOut.write(attribData.array());
- code.format(" char * const attribData = (char *)malloc(%d);\n", attribData.capacity());
- code.format(" assert(attribData);\n");
- code.format(" fread(attribData, %d, 1, attribFile);\n", attribData.capacity());
- code.format(" fclose(attribFile);\n");
- code.format(" glBindBuffer(GL_ARRAY_BUFFER, 0);CHKERR;\n");
- for (int i = 0; i < maxAttrib; i++) {
- final GLAttribPointer att = v.attribPointers[i];
- assert msgData.attribs[i].length == count * 4;
- code.format(
- " glVertexAttribPointer(%d, %d, GL_FLOAT, GL_FALSE, %d, attribData + %d);CHKERR;\n",
- i, att.size, maxAttrib * 16, i * 16);
- }
- code.format(" glDrawArrays(%s, 0, %d);CHKERR;\n", mode, count);
- code.format(" free(attribData);\n");
- if (v.attribBuffer != null)
- code.format(" glBindBuffer(GL_ARRAY_BUFFER, %d);CHKERR;\n",
- v.attribBuffer.name);
- code.write("};\n");
- }
-
- private void codeGenFunction(final Context ctx, final MessageData msgData)
- throws IOException {
- final Message msg = msgData.msg;
- String call = MessageFormatter.format(msg, true);
- switch (msg.getFunction()) {
- case glActiveTexture:
- case glAttachShader:
- case glBindAttribLocation:
- break;
- case glBindBuffer:
- case glBindFramebuffer:
- case glBindRenderbuffer:
- case glBindTexture:
- codeGenBindNames(msg);
- return;
- case glBlendColor:
- case glBlendEquation:
- case glBlendEquationSeparate:
- case glBlendFunc:
- case glBlendFuncSeparate:
- break;
- case glBufferData:
- call = MessageFormatter.format(msg, true).replace("arg2", "bufferData");
- codeGenBufferData(msg.getData().asReadOnlyByteBuffer(), call);
- return;
- case glBufferSubData:
- call = MessageFormatter.format(msg, true).replace("arg3", "bufferData");
- codeGenBufferData(msg.getData().asReadOnlyByteBuffer(), call);
- return;
- case glCheckFramebufferStatus:
- case glClear:
- case glClearColor:
- case glClearDepthf:
- case glClearStencil:
- case glColorMask:
- case glCompileShader:
- break;
- case glCompressedTexImage2D:
- case glCompressedTexSubImage2D:
- case glCopyTexImage2D:
- case glCopyTexSubImage2D:
- codeGenTextureUpload(msg, false);
- return;
- case glCreateProgram:
- namesHeader.format("extern GLuint program_%d;\n", msg.getRet());
- namesSource.format("GLuint program_%d = 0;\n", msg.getRet());
- code.format("program_%d = glCreateProgram();CHKERR;\n", msg.getRet());
- return;
- case glCreateShader:
- namesHeader.format("extern GLuint shader_%d;\n", msg.getRet());
- namesSource.format("GLuint shader_%d = 0;\n", msg.getRet());
- code.format("shader_%d = %s;\n", msg.getRet(), call);
- return;
- case glCullFace:
- break;
- case glDeleteBuffers:
- case glDeleteFramebuffers:
- case glDeleteProgram:
- programNames.put(msg.getArg0(), 0);
- break;
- case glDeleteRenderbuffers:
- codeGenDeleteNames(msg);
- return;
- case glDeleteShader:
- shaderNames.put(msg.getArg0(), 0);
- return;
- case glDeleteTextures:
- codeGenDeleteNames(msg);
- return;
- case glDepthFunc:
- case glDepthMask:
- case glDepthRangef:
- case glDetachShader:
- case glDisable:
- case glDisableVertexAttribArray:
- break;
- case glDrawArrays:
- // CodeGenDraw(ctx.serverVertex, msgData);
- codeGenDrawArrays(ctx.serverVertex, msgData);
- return;
- case glDrawElements:
- // CodeGenDraw(ctx.serverVertex, msgData);
- codeGenDrawElements(ctx.serverVertex, msgData);
- return;
- case glEnable:
- case glEnableVertexAttribArray:
- case glFinish:
- case glFlush:
- case glFramebufferRenderbuffer:
- case glFramebufferTexture2D:
- case glFrontFace:
- break;
- case glGenBuffers:
- codeGenGenNames(msg);
- return;
- case glGenerateMipmap:
- break;
- case glGenFramebuffers:
- case glGenRenderbuffers:
- case glGenTextures:
- codeGenGenNames(msg);
- return;
- case glGetActiveAttrib:
- case glGetActiveUniform:
- case glGetAttachedShaders:
- break;
- case glGetAttribLocation:
- call = String.format("assert(%d == %s)", msg.getRet(), call);
- break;
- case glGetBooleanv:
- case glGetBufferParameteriv:
- return; // TODO
- case glGetError:
- code.write("CHKERR;\n");
- return;
- case glGetFloatv:
- case glGetFramebufferAttachmentParameteriv:
- case glGetIntegerv:
- case glGetProgramiv:
- case glGetProgramInfoLog:
- case glGetRenderbufferParameteriv:
- case glGetShaderiv:
- case glGetShaderInfoLog:
- case glGetShaderPrecisionFormat:
- case glGetShaderSource:
- case glGetString:
- case glGetTexParameterfv:
- case glGetTexParameteriv:
- case glGetUniformfv:
- case glGetUniformiv:
- return;
- case glGetUniformLocation:
- call = String.format("assert(%d == %s)", msg.getRet(), call);
- break;
- case glGetVertexAttribfv:
- case glGetVertexAttribiv:
- case glGetVertexAttribPointerv:
- return; // TODO
- case glHint:
- case glIsBuffer:
- case glIsEnabled:
- case glIsFramebuffer:
- case glIsProgram:
- case glIsRenderbuffer:
- case glIsShader:
- case glIsTexture:
- case glLineWidth:
- case glLinkProgram:
- case glPixelStorei:
- case glPolygonOffset:
- break;
- case glReadPixels:
- return; // TODO
- case glReleaseShaderCompiler:
- case glRenderbufferStorage:
- case glSampleCoverage:
- case glScissor:
- break;
- case glShaderBinary:
- return; // TODO
- case glShaderSource:
- call = String.format(
- "glShaderSource(shader_%d, 1, (const char * []){\"%s\"}, NULL)",
- msg.getArg0(),
- msg.getData().toStringUtf8().replace("\r", "").replace("\n", "\\n\\\n")
- .replace("\"", "\\\"")
- );
- break;
- case glStencilFunc:
- case glStencilFuncSeparate:
- case glStencilMask:
- case glStencilMaskSeparate:
- case glStencilOp:
- case glStencilOpSeparate:
- break;
- case glTexImage2D:
- codeGenTextureUpload(msg, false);
- return;
- case glTexParameterf:
- break;
- case glTexParameterfv:
- return; // TODO
- case glTexParameteri:
- break;
- case glTexParameteriv:
- return; // TODO
- case glTexSubImage2D:
- codeGenTextureUpload(msg, false);
- return;
- case glUniform1f:
- case glUniform1fv:
- case glUniform1i:
- case glUniform1iv:
- case glUniform2f:
- case glUniform2fv:
- case glUniform2i:
- case glUniform2iv:
- case glUniform3f:
- case glUniform3fv:
- case glUniform3i:
- case glUniform3iv:
- case glUniform4f:
- case glUniform4fv:
- case glUniform4i:
- case glUniform4iv:
- case glUniformMatrix2fv:
- case glUniformMatrix3fv:
- case glUniformMatrix4fv:
- case glUseProgram:
- case glValidateProgram:
- case glVertexAttrib1f:
- case glVertexAttrib1fv:
- case glVertexAttrib2f:
- case glVertexAttrib2fv:
- case glVertexAttrib3f:
- case glVertexAttrib3fv:
- case glVertexAttrib4f:
- case glVertexAttrib4fv:
- break;
- case glVertexAttribPointer:
- // if it's user pointer, then CodeGenDrawArrays/Elements will
- // replace it with loaded data just before the draw
- call = call.replace("arg5", "(const void *)0x" +
- Integer.toHexString(msg.getArg5()));
- break;
- case glViewport:
- break;
- case eglSwapBuffers:
- return;
- default:
- assert false;
- return;
- }
- if (call.indexOf("glEnable(/*cap*/ GL_TEXTURE_2D)") >= 0)
- return;
- else if (call.indexOf("glDisable(/*cap*/ GL_TEXTURE_2D)") >= 0)
- return;
- else if (call.indexOf("glActiveTexture(/*texture*/ GL_TEXTURE_2D)") >= 0)
- return;
- code.write(call + ";CHKERR;\n");
- }
-
- private void codeGenSetup(final Context ctx) {
- try {
- codeFile = new FileWriter("frame_setup.cpp", false);
- code = new PrintWriter(codeFile);
- dataOut = new FileOutputStream("frame_data.bin", false);
- namesHeaderFile = new FileWriter("frame_names.h", false);
- namesHeader = new PrintWriter(namesHeaderFile);
- namesSourceFile = new FileWriter("frame_names.cpp", false);
- namesSource = new PrintWriter(namesSourceFile);
- } catch (IOException e) {
- e.printStackTrace();
- assert false;
- }
- bufferNames = new SparseIntArray();
- framebufferNames = new SparseIntArray();
- programNames = new SparseIntArray();
- textureNames = new SparseIntArray();
- shaderNames = new SparseIntArray();
- renderbufferNames = new SparseIntArray();
-
- namesHeader.write("#include <stdlib.h>\n");
- namesHeader.write("#include <stdio.h>\n");
- namesHeader.write("#include <assert.h>\n");
- namesHeader.write("#include <GLES2/gl2.h>\n");
- namesHeader.write("#include <GLES2/gl2ext.h>\n");
- namesHeader.write("#define CHKERR assert(GL_NO_ERROR == glGetError());/**/\n");
- namesHeader.write("void FrameSetup();\n");
- namesHeader.write("extern const unsigned int FrameCount;\n");
- namesHeader.write("extern const GLuint program_0;\n");
-
- namesSource.write("/*\n" +
- " * Copyright (C) 2011 The Android Open Source Project\n" +
- " *\n" +
- " * Licensed under the Apache License, Version 2.0 (the \"License\");\n" +
- " * you may not use this file except in compliance with the License.\n" +
- " * You may obtain a copy of the License at\n" +
- " *\n" +
- " * http://www.apache.org/licenses/LICENSE-2.0\n" +
- " *\n" +
- " * Unless required by applicable law or agreed to in writing, software\n" +
- " * distributed under the License is distributed on an \"AS IS\" BASIS,\n" +
- " * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n" +
- " * See the License for the specific language governing permissions and\n" +
- " * limitations under the License.\n" +
- " */\n" +
- "\n" +
- "#include <stdlib.h>\n" +
- "#include <stdio.h>\n" +
- "\n" +
- "#include <EGL/egl.h>\n" +
- "#include <GLES2/gl2.h>\n" +
- "#include <GLES2/gl2ext.h>\n" +
- "\n" +
- "#include <ui/FramebufferNativeWindow.h>\n" +
- "#include <ui/EGLUtils.h>\n" +
- "\n" +
- "#include <private/ui/android_natives_priv.h>\n" +
- "\n" +
- "#include <surfaceflinger/Surface.h>\n" +
- "#include <surfaceflinger/ISurface.h>\n" +
- "#include <surfaceflinger/SurfaceComposerClient.h>\n" +
- "\n" +
- "using namespace android;\n" +
- "\n" +
- "static void checkEglError(const char* op, EGLBoolean returnVal = EGL_TRUE)\n" +
- "{\n" +
- " if (returnVal != EGL_TRUE) {\n" +
- " fprintf(stderr, \"%s() returned %d\\n\", op, returnVal);\n" +
- " }\n" +
- "\n" +
- " for (EGLint error = eglGetError(); error != EGL_SUCCESS; error\n" +
- " = eglGetError()) {\n" +
- " fprintf(stderr, \"after %s() eglError %s (0x%x)\\n\", op, EGLUtils::strerror(error),\n" +
- " error);\n" +
- " }\n" +
- "}\n" +
- "\n" +
- "static EGLDisplay dpy;\n" +
- "static EGLSurface surface;\n" +
- "\n" +
- "#include \"frame_names.h\"\n" +
- "const GLuint program_0 = 0;\n" +
- "int main(int argc, char** argv)\n" +
- "{\n" +
- " EGLBoolean returnValue;\n" +
- " EGLConfig myConfig = {0};\n" +
- "\n" +
- " EGLint context_attribs[] = { EGL_CONTEXT_CLIENT_VERSION, 2, EGL_NONE };\n" +
- " EGLint majorVersion;\n" +
- " EGLint minorVersion;\n" +
- " EGLContext context;\n" +
- " EGLint w, h;\n" +
- "\n" +
- "\n" +
- " checkEglError(\"<init>\");\n" +
- " dpy = eglGetDisplay(EGL_DEFAULT_DISPLAY);\n" +
- " checkEglError(\"eglGetDisplay\");\n" +
- " if (dpy == EGL_NO_DISPLAY) {\n" +
- " printf(\"eglGetDisplay returned EGL_NO_DISPLAY.\\n\");\n" +
- " return 0;\n" +
- " }\n" +
- "\n" +
- " returnValue = eglInitialize(dpy, &majorVersion, &minorVersion);\n" +
- " checkEglError(\"eglInitialize\", returnValue);\n" +
- " if (returnValue != EGL_TRUE) {\n" +
- " printf(\"eglInitialize failed\\n\");\n" +
- " return 0;\n" +
- " }\n" +
- "\n" +
- " sp<SurfaceComposerClient> spClient;\n" +
- " sp<SurfaceControl> spControl;\n" +
- " sp<Surface> spSurface;\n" +
- "\n" +
- " // create a client to surfaceflinger\n" +
- " spClient = new SurfaceComposerClient();\n" +
- "\n" +
- " spControl = spClient->createSurface(getpid(), 0, 1280, 752, PIXEL_FORMAT_RGBX_8888);\n" +
- " spClient->openTransaction();\n" +
- " spControl->setLayer(350000);\n" +
- " spControl->show();\n" +
- " spClient->closeTransaction();\n" +
- "\n" +
- " spSurface = spControl->getSurface();\n" +
- " EGLNativeWindowType window = spSurface.get();\n" +
- "\n" +
- " printf(\"window=%p\\n\", window);\n" +
- " EGLint attrib_list[] = {\n" +
- " EGL_SURFACE_TYPE, EGL_WINDOW_BIT,\n" +
- " EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,\n" +
- " EGL_BUFFER_SIZE, 32,\n" +
- " EGL_RED_SIZE, 8,\n" +
- " EGL_GREEN_SIZE, 8,\n" +
- " EGL_BLUE_SIZE, 8,\n" +
- " EGL_NONE\n" +
- " };\n" +
- "\n" +
- " EGLConfig configs[12] = {0};\n" +
- " int num_config = -1;\n" +
- " eglChooseConfig(dpy, attrib_list, configs, sizeof(configs) / sizeof(*configs), &num_config);\n" +
- " printf(\"eglChooseConfig %d \\n\", num_config);\n" +
- "\n" +
- " surface = eglCreateWindowSurface(dpy, configs[0], window, NULL);\n" +
- " checkEglError(\"eglCreateWindowSurface\");\n" +
- " if (surface == EGL_NO_SURFACE) {\n" +
- " printf(\"gelCreateWindowSurface failed.\\n\");\n" +
- " return 0;\n" +
- " }\n" +
- "\n" +
- " context = eglCreateContext(dpy, configs[0], EGL_NO_CONTEXT, context_attribs);\n" +
- " checkEglError(\"eglCreateContext\");\n" +
- " if (context == EGL_NO_CONTEXT) {\n" +
- " printf(\"eglCreateContext failed\\n\");\n" +
- " return 0;\n" +
- " }\n" +
- " printf(\"context=%p \\n\", context);\n" +
- "\n" +
- " returnValue = eglMakeCurrent(dpy, surface, surface, context);\n" +
- " checkEglError(\"eglMakeCurrent\", returnValue);\n" +
- " if (returnValue != EGL_TRUE) {\n" +
- " return 0;\n" +
- " }\n" +
- "\n" +
- " glClearColor(1,1,1,1);\n" +
- " glClear(GL_COLOR_BUFFER_BIT);\n" +
- "\n" +
- " FrameSetup();\n" +
- " while (true)\n" +
- " for (unsigned int i = 0; i < FrameCount; i++) {\n" +
- " Frames[i]();\n" +
- " eglSwapBuffers(dpy, surface);\n" +
- " printf(\"press ENTER after Frame%d \\n\", i);\n" +
- " getchar();\n" +
- " }\n" +
- "\n" +
- " return 0;\n" +
- "}");
-
- code.write("#include \"frame_names.h\"\n");
- code.write("void FrameSetup(){\n");
-
- codeGenServerState(ctx.serverState);
- codeGenServerShader(ctx.serverShader);
- codeGenServerTexture(ctx.serverTexture, true);
- codeGenServerVertex(ctx.serverVertex);
-
- code.write("}\n");
-
- try {
- codeFile.close();
- makeFile = new FileWriter("Android.mk", false);
- make = new PrintWriter(makeFile);
- make.write("LOCAL_PATH:= $(call my-dir)\n" +
- "include $(CLEAR_VARS)\n" +
- "LOCAL_SRC_FILES := \\\n");
- } catch (IOException e) {
- e.printStackTrace();
- assert false;
- }
- }
-
- private void codeGenCleanup() {
- make.write(" frame_setup.cpp \\\n");
- make.write(" frame_names.cpp \\\n");
- make.write("#\n");
- make.write(
- "LOCAL_SHARED_LIBRARIES := \\\n" +
- " libcutils \\\n" +
- " libutils \\\n" +
- " libEGL \\\n" +
- " libGLESv2 \\\n" +
- " libui \\\n" +
- " libhardware \\\n" +
- " libgui\n" +
- "\n" +
- "LOCAL_MODULE:= gles2dbg\n" +
- "\n" +
- "LOCAL_MODULE_TAGS := optional\n" +
- "\n" +
- "LOCAL_CFLAGS := -DGL_GLEXT_PROTOTYPES -O0 -g -DDEBUG -UNDEBUG\n" +
- "\n" +
- "include $(BUILD_EXECUTABLE)");
- try {
- dataOut.flush();
- dataOut.close();
- codeFile.close();
- makeFile.close();
- namesHeaderFile.close();
- namesSourceFile.close();
- } catch (IOException e) {
- e.printStackTrace();
- assert false;
- }
- dataOut = null;
- code = null;
- codeFile = null;
- make = null;
- makeFile = null;
-
- bufferNames = null;
- framebufferNames = null;
- programNames = null;
- textureNames = null;
- shaderNames = null;
- renderbufferNames = null;
- }
-
- private DebugContext dbgCtx;
- private int count;
- private IProgressMonitor progress;
-
- @Override
- public void run(IProgressMonitor monitor) {
- progress.beginTask("CodeGenFrames", count + 2);
- Context ctx = dbgCtx.getFrame(0).startContext.clone();
- codeGenSetup(ctx);
- progress.worked(1);
- for (int i = 0; i < count; i++) {
- try {
- codeFile = new FileWriter("frame" + i + ".cpp", false);
- code = new PrintWriter(codeFile);
- } catch (IOException e1) {
- e1.printStackTrace();
- assert false;
- }
- make.format(" frame%d.cpp \\\n", i);
-
- code.write("#include \"frame_names.h\"\n");
- code.format("void Frame%d(){\n", i);
- final Frame frame = dbgCtx.getFrame(i);
- for (int j = 0; j < frame.size(); j++) {
- final MessageData msgData = frame.get(j);
- code.format("/* frame function %d: %s %s*/\n", j, msgData.msg.getFunction(),
- MessageFormatter.format(msgData.msg, false));
- ctx.processMessage(msgData.msg);
- try {
- codeGenFunction(ctx, msgData);
- } catch (IOException e) {
- e.printStackTrace();
- assert false;
- }
- }
- code.write("}\n");
- try {
- codeFile.close();
- } catch (IOException e) {
- e.printStackTrace();
- assert false;
- }
- progress.worked(1);
- }
- for (int i = 0; i < count; i++)
- namesHeader.format("void Frame%d();\n", i);
- namesHeader.format("extern void (* Frames[%d])();\n", count);
- namesSource.format("void (* Frames[%d])() = {\n", count);
- for (int i = 0; i < count; i++) {
- namesSource.format(" Frame%d,\n", i);
- }
- namesSource.write("};\n");
- namesSource.format("const unsigned int FrameCount = %d;\n", count);
- codeGenCleanup();
- progress.worked(1);
- }
-
- void codeGenFrames(final DebugContext dbgCtx, int count, final Shell shell) {
- this.dbgCtx = dbgCtx;
- this.count = count;
- ProgressMonitorDialog dialog = new ProgressMonitorDialog(shell);
- this.progress = dialog.getProgressMonitor();
- try {
- dialog.run(false, true, this);
- } catch (InvocationTargetException e) {
- e.printStackTrace();
- assert false;
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- this.dbgCtx = null;
- this.count = 0;
- progress = null;
- }
-
- void codeGenFrame(final Frame frame) {
- Context ctx = frame.startContext.clone();
- codeGenSetup(ctx);
- try {
- codeFile = new FileWriter("frame0.cpp", false);
- code = new PrintWriter(codeFile);
- } catch (IOException e1) {
- e1.printStackTrace();
- assert false;
- }
- make.format(" frame0.cpp \\\n");
- code.write("#include \"frame_names.h\"\n");
- code.format("void Frame0(){\n");
- for (int i = 0; i < frame.size(); i++) {
- final MessageData msgData = frame.get(i);
- code.format("/* frame function %d: %s %s*/\n", i, msgData.msg.getFunction(),
- MessageFormatter.format(msgData.msg, false));
- ctx.processMessage(msgData.msg);
- try {
- codeGenFunction(ctx, msgData);
- } catch (IOException e) {
- e.printStackTrace();
- assert false;
- }
- }
- code.write("}\n");
- namesHeader.write("void Frame0();\n");
- namesHeader.write("extern void (* Frames[1])();\n");
- namesSource.write("void (* Frames[1])() = {Frame0};\n");
- namesSource.write("const unsigned int FrameCount = 1;\n");
- codeGenCleanup();
- }
-}
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/Context.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/Context.java
deleted file mode 100644
index e8c5bd7..0000000
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/Context.java
+++ /dev/null
@@ -1,532 +0,0 @@
-/*
- ** Copyright 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.gldebugger;
-
-import com.android.ide.eclipse.gldebugger.DebuggerMessage.Message;
-import com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.DataType;
-import com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Function;
-import com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Prop;
-import com.android.sdklib.util.SparseArray;
-import com.android.sdklib.util.SparseIntArray;
-import com.google.protobuf.ByteString;
-
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Display;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.RandomAccessFile;
-import java.lang.reflect.Array;
-import java.lang.reflect.Field;
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Map;
-import java.util.Set;
-
-class Frame {
- public final long filePosition;
- private int callsCount;
-
- final Context startContext;
- private ArrayList<MessageData> calls = new ArrayList<MessageData>();
-
- Frame(final Context context, final long filePosition) {
- this.startContext = context.clone();
- this.filePosition = filePosition;
- }
-
- void add(final MessageData msgData) {
- calls.add(msgData);
- }
-
- void increaseCallsCount() {
- callsCount++;
- }
-
- Context computeContext(final MessageData call) {
- Context ctx = startContext.clone();
- for (int i = 0; i < calls.size(); i++)
- if (call == calls.get(i))
- return ctx;
- else
- ctx.processMessage(calls.get(i).msg);
- assert false;
- return ctx;
- }
-
- int size() {
- return callsCount;
- }
-
- MessageData get(final int i) {
- return calls.get(i);
- }
-
- ArrayList<MessageData> get() {
- return calls;
- }
-
- void unload() {
- if (calls == null)
- return;
- calls.clear();
- calls = null;
- }
-
- void load(final RandomAccessFile file) {
- if (calls != null && calls.size() == callsCount)
- return;
- try {
- Context ctx = startContext.clone();
- calls = new ArrayList<MessageData>(callsCount);
- final long oriPosition = file.getFilePointer();
- file.seek(filePosition);
- for (int i = 0; i < callsCount; i++) {
- int len = file.readInt();
- if (GLFramesView.TARGET_BYTE_ORDER == ByteOrder.LITTLE_ENDIAN)
- len = Integer.reverseBytes(len);
- final byte[] data = new byte[len];
- file.read(data);
- Message msg = Message.parseFrom(data);
- ctx.processMessage(msg);
- final MessageData msgData = new MessageData(Display.getCurrent(), msg, ctx);
- calls.add(msgData);
- }
- file.seek(oriPosition);
- } catch (IOException e) {
- e.printStackTrace();
- assert false;
- }
- }
-}
-
-class DebugContext {
- boolean uiUpdate = false;
- final int contextId;
- Context currentContext;
- private ArrayList<Frame> frames = new ArrayList<Frame>(128);
- private Frame lastFrame;
- private Frame loadedFrame;
- private RandomAccessFile file;
-
- DebugContext(final int contextId) {
- this.contextId = contextId;
- currentContext = new Context(contextId);
- try {
- file = new RandomAccessFile("0x" + Integer.toHexString(contextId) +
- ".gles2dbg", "rw");
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- assert false;
- }
- }
-
- /** write message to file; if frame not null, then increase its call count */
- void saveMessage(final Message msg, final RandomAccessFile file, Frame frame) {
- synchronized (file) {
- if (frame != null)
- frame.increaseCallsCount();
- final byte[] data = msg.toByteArray();
- final ByteBuffer len = ByteBuffer.allocate(4);
- len.order(GLFramesView.TARGET_BYTE_ORDER);
- len.putInt(data.length);
- try {
- if (GLFramesView.TARGET_BYTE_ORDER == ByteOrder.BIG_ENDIAN)
- file.writeInt(data.length);
- else
- file.writeInt(Integer.reverseBytes(data.length));
- file.write(data);
- } catch (IOException e) {
- e.printStackTrace();
- assert false;
- }
- }
- }
-
- /**
- * Caches new Message, and formats into MessageData for current frame; this
- * function is called exactly once for each new Message
- */
- void processMessage(final Message newMsg) {
- Message msg = newMsg;
- if (msg.getFunction() == Function.SETPROP) {
- // GL impl. consts should have been sent before any GL call messages
- assert frames.size() == 0;
- assert lastFrame == null;
- assert msg.getProp() == Prop.GLConstant;
- switch (GLEnum.valueOf(msg.getArg0())) {
- case GL_MAX_VERTEX_ATTRIBS:
- currentContext.serverVertex = new GLServerVertex(msg.getArg1());
- break;
- case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS:
- currentContext.serverTexture = new GLServerTexture(currentContext,
- msg.getArg1());
- break;
- default:
- assert false;
- return;
- }
- saveMessage(msg, file, null);
- return;
- }
-
- if (lastFrame == null) {
- // first real message after the GL impl. consts
- synchronized (file) {
- try {
- lastFrame = new Frame(currentContext, file.getFilePointer());
- } catch (IOException e) {
- e.printStackTrace();
- assert false;
- }
- }
- synchronized (frames) {
- frames.add(lastFrame);
- }
- assert loadedFrame == null;
- loadedFrame = lastFrame;
- }
- currentContext.processMessage(msg);
- if (msg.hasDataType() && msg.getDataType() == DataType.ReferencedImage) {
- // decode referenced image so it doesn't rely on context later on
- final byte[] referenced = MessageProcessor.lzfDecompressChunks(msg.getData());
- currentContext.readPixelRef = MessageProcessor.decodeReferencedImage(
- currentContext.readPixelRef, referenced);
- final byte[] decoded = MessageProcessor.lzfCompressChunks(
- currentContext.readPixelRef, referenced.length);
- msg = msg.toBuilder().setDataType(DataType.NonreferencedImage)
- .setData(ByteString.copyFrom(decoded)).build();
- }
- saveMessage(msg, file, lastFrame);
- if (loadedFrame == lastFrame) {
- // frame selected for view, so format MessageData
- final MessageData msgData = new MessageData(Display.getCurrent(), msg, currentContext);
- lastFrame.add(msgData);
- uiUpdate = true;
- }
- if (msg.getFunction() != Function.eglSwapBuffers)
- return;
- synchronized (frames) {
- if (loadedFrame != lastFrame)
- lastFrame.unload();
- try {
- frames.add(lastFrame = new Frame(currentContext, file.getFilePointer()));
- // file.getChannel().force(false);
- uiUpdate = true;
- } catch (IOException e) {
- e.printStackTrace();
- assert false;
- }
- }
- return;
- }
-
- Frame getFrame(int index) {
- synchronized (frames) {
- Frame newFrame = frames.get(index);
- if (loadedFrame != null && loadedFrame != lastFrame && newFrame != loadedFrame) {
- loadedFrame.unload();
- uiUpdate = true;
- }
- loadedFrame = newFrame;
- synchronized (file) {
- loadedFrame.load(file);
- }
- return loadedFrame;
- }
- }
-
- int frameCount() {
- synchronized (frames) {
- return frames.size();
- }
- }
-}
-
-/** aggregate of GL states */
-public class Context implements Cloneable {
- public final int contextId;
- public ArrayList<Context> shares = new ArrayList<Context>(); // self too
- public GLServerVertex serverVertex;
- public GLServerShader serverShader = new GLServerShader(this);
- public GLServerState serverState = new GLServerState(this);
- public GLServerTexture serverTexture;
-
- byte[] readPixelRef = new byte[0];
-
- public Context(int contextId) {
- this.contextId = contextId;
- shares.add(this);
- }
-
- @Override
- public Context clone() {
- try {
- Context copy = (Context) super.clone();
- // FIXME: context sharing list clone
- copy.shares = new ArrayList<Context>(1);
- copy.shares.add(copy);
- if (serverVertex != null)
- copy.serverVertex = serverVertex.clone();
- copy.serverShader = serverShader.clone(copy);
- copy.serverState = serverState.clone();
- if (serverTexture != null)
- copy.serverTexture = serverTexture.clone(copy);
- // don't need to clone readPixelsRef, since referenced images
- // are decoded when they are encountered
- return copy;
- } catch (CloneNotSupportedException e) {
- e.printStackTrace();
- assert false;
- return null;
- }
- }
-
- /** mainly updating states */
- public void processMessage(Message msg) {
- if (serverVertex.process(msg))
- return;
- if (serverShader.processMessage(msg))
- return;
- if (serverState.processMessage(msg))
- return;
- if (serverTexture.processMessage(msg))
- return;
- }
-}
-
-class ContextViewProvider extends LabelProvider implements ITreeContentProvider,
- ISelectionChangedListener {
- Context context;
- final GLFramesView sampleView;
-
- ContextViewProvider(final GLFramesView sampleView) {
- this.sampleView = sampleView;
- }
-
- @Override
- public void dispose() {
- }
-
- @Override
- public String getText(Object obj) {
- if (obj == null)
- return "null";
- if (obj instanceof Entry) {
- Entry entry = (Entry) obj;
- String objStr = "null (or default)";
- if (entry.obj != null) {
- objStr = entry.obj.toString();
- if (entry.obj instanceof Message)
- objStr = MessageFormatter.format((Message) entry.obj, false);
- }
- return entry.name + " = " + objStr;
- }
- return obj.toString();
- }
-
- @Override
- public Image getImage(Object obj) {
- if (!(obj instanceof Entry))
- return null;
- final Entry entry = (Entry) obj;
- if (!(entry.obj instanceof Message))
- return null;
- final Message msg = (Message) entry.obj;
- switch (msg.getFunction()) {
- case glTexImage2D:
- case glTexSubImage2D:
- case glCopyTexImage2D:
- case glCopyTexSubImage2D: {
- entry.image = new MessageData(Display.getCurrent(), msg, null).getImage();
- if (entry.image == null)
- return null;
- return new Image(Display.getCurrent(), entry.image.getImageData().scaledTo(96, 96));
- }
- default:
- return null;
- }
- }
-
- @Override
- public void selectionChanged(SelectionChangedEvent event) {
- StructuredSelection selection = (StructuredSelection) event
- .getSelection();
- if (null == selection)
- return;
- final Object obj = selection.getFirstElement();
- if (!(obj instanceof Entry))
- return;
- final Entry entry = (Entry) obj;
- if (entry.image == null)
- return;
- sampleView.tabFolder.setSelection(sampleView.tabItemImage);
- sampleView.canvas.setBackgroundImage(entry.image);
- sampleView.canvas.redraw();
- }
-
- @Override
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- context = (Context) newInput;
- }
-
- class Entry {
- String name;
- Object obj;
- Image image;
-
- Entry(String name, Object obj) {
- this.name = name;
- this.obj = obj;
- }
- }
-
- @Override
- public Object[] getElements(Object inputElement) {
- if (inputElement != context)
- return null;
- return getChildren(new Entry("Context", inputElement));
- }
-
- @Override
- public Object[] getChildren(Object parentElement) {
- if (!(parentElement instanceof Entry))
- return null;
- Entry entry = (Entry) parentElement;
- ArrayList<Object> children = new ArrayList<Object>();
- if (entry.obj == context.serverState.enableDisables) {
- for (int i = 0; i < context.serverState.enableDisables.size(); i++) {
- final int key = context.serverState.enableDisables.keyAt(i);
- final int value = context.serverState.enableDisables.valueAt(i);
- children.add(GLEnum.valueOf(key).name() + " = " + value);
- }
- } else if (entry.obj == context.serverState.integers) {
- for (int i = 0; i < context.serverState.integers.size(); i++) {
- final int key = context.serverState.integers.keyAt(i);
- final Message val = context.serverState.integers.valueAt(i);
- if (val != null)
- children.add(GLEnum.valueOf(key).name() + " : " +
- MessageFormatter.format(val, false));
- else
- children.add(GLEnum.valueOf(key).name() + " : default");
- }
- } else if (entry.obj == context.serverState.lastSetter) {
- for (int i = 0; i < context.serverState.lastSetter.size(); i++) {
- final int key = context.serverState.lastSetter.keyAt(i);
- final Message msg = context.serverState.lastSetter.valueAt(i);
- if (msg == null)
- children.add(Function.valueOf(key).name() + " : default");
- else
- children.add(Function.valueOf(key).name() + " : "
- + MessageFormatter.format(msg, false));
- }
- } else if (entry.obj instanceof SparseArray) {
- SparseArray<?> sa = (SparseArray<?>) entry.obj;
- for (int i = 0; i < sa.size(); i++)
- children.add(new Entry("[" + sa.keyAt(i) + "]", sa.valueAt(i)));
- } else if (entry.obj instanceof Map) {
- Set<?> set = ((Map<?, ?>) entry.obj).entrySet();
- for (Object o : set) {
- Map.Entry e = (Map.Entry) o;
- children.add(new Entry(e.getKey().toString(), e.getValue()));
- }
- } else if (entry.obj instanceof SparseIntArray) {
- SparseIntArray sa = (SparseIntArray) entry.obj;
- for (int i = 0; i < sa.size(); i++)
- children.add("[" + sa.keyAt(i) + "] = " + sa.valueAt(i));
- } else if (entry.obj instanceof Collection) {
- Collection<?> collection = (Collection<?>) entry.obj;
- for (Object o : collection)
- children.add(new Entry("[?]", o));
- } else if (entry.obj.getClass().isArray()) {
- for (int i = 0; i < Array.getLength(entry.obj); i++)
- children.add(new Entry("[" + i + "]", Array.get(entry.obj, i)));
- } else {
- Field[] fields = entry.obj.getClass().getFields();
- for (Field f : fields) {
- try {
- children.add(new Entry(f.getName(), f.get(entry.obj)));
- } catch (IllegalArgumentException e) {
- e.printStackTrace();
- } catch (IllegalAccessException e) {
- e.printStackTrace();
- }
- }
- }
- return children.toArray();
- }
-
- @Override
- public Object getParent(Object element) {
- return null;
- }
-
- @Override
- public boolean hasChildren(Object element) {
- if (element == null)
- return false;
- if (!(element instanceof Entry))
- return false;
- Object obj = ((Entry) element).obj;
- if (obj == null)
- return false;
- if (obj instanceof SparseArray)
- return ((SparseArray<?>) obj).size() > 0;
- else if (obj instanceof SparseIntArray)
- return ((SparseIntArray) obj).size() > 0;
- else if (obj instanceof Collection)
- return ((Collection<?>) obj).size() > 0;
- else if (obj instanceof Map)
- return ((Map<?, ?>) obj).size() > 0;
- else if (obj.getClass().isArray())
- return Array.getLength(obj) > 0;
- else if (obj instanceof Message)
- return false;
- else if (isPrimitive(obj))
- return false;
- else if (obj.getClass().equals(String.class))
- return false;
- else if (obj.getClass().equals(Message.class))
- return false;
- else if (obj instanceof GLEnum)
- return false;
- return obj.getClass().getFields().length > 0;
- }
-
- static boolean isPrimitive(final Object obj) {
- final Class<? extends Object> c = obj.getClass();
- if (c.isPrimitive())
- return true;
- if (c == Integer.class)
- return true;
- if (c == Boolean.class)
- return true;
- if (c == Float.class)
- return true;
- if (c == Short.class)
- return true;
- return false;
- }
-}
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/DebuggerMessage.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/DebuggerMessage.java
deleted file mode 100644
index 4c7992f..0000000
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/DebuggerMessage.java
+++ /dev/null
@@ -1,1736 +0,0 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
-// source: debugger_message.proto
-
-package com.android.ide.eclipse.gldebugger;
-
-public final class DebuggerMessage {
- private DebuggerMessage() {}
- public static void registerAllExtensions(
- com.google.protobuf.ExtensionRegistryLite registry) {
- }
- public static final class Message extends
- com.google.protobuf.GeneratedMessageLite {
- // Use Message.newBuilder() to construct.
- private Message() {
- initFields();
- }
- private Message(boolean noInit) {}
-
- private static final Message defaultInstance;
- public static Message getDefaultInstance() {
- return defaultInstance;
- }
-
- @Override
- public Message getDefaultInstanceForType() {
- return defaultInstance;
- }
-
- public enum Function
- implements com.google.protobuf.Internal.EnumLite {
- glActiveTexture(0, 0),
- glAttachShader(1, 1),
- glBindAttribLocation(2, 2),
- glBindBuffer(3, 3),
- glBindFramebuffer(4, 4),
- glBindRenderbuffer(5, 5),
- glBindTexture(6, 6),
- glBlendColor(7, 7),
- glBlendEquation(8, 8),
- glBlendEquationSeparate(9, 9),
- glBlendFunc(10, 10),
- glBlendFuncSeparate(11, 11),
- glBufferData(12, 12),
- glBufferSubData(13, 13),
- glCheckFramebufferStatus(14, 14),
- glClear(15, 15),
- glClearColor(16, 16),
- glClearDepthf(17, 17),
- glClearStencil(18, 18),
- glColorMask(19, 19),
- glCompileShader(20, 20),
- glCompressedTexImage2D(21, 21),
- glCompressedTexSubImage2D(22, 22),
- glCopyTexImage2D(23, 23),
- glCopyTexSubImage2D(24, 24),
- glCreateProgram(25, 25),
- glCreateShader(26, 26),
- glCullFace(27, 27),
- glDeleteBuffers(28, 28),
- glDeleteFramebuffers(29, 29),
- glDeleteProgram(30, 30),
- glDeleteRenderbuffers(31, 31),
- glDeleteShader(32, 32),
- glDeleteTextures(33, 33),
- glDepthFunc(34, 34),
- glDepthMask(35, 35),
- glDepthRangef(36, 36),
- glDetachShader(37, 37),
- glDisable(38, 38),
- glDisableVertexAttribArray(39, 39),
- glDrawArrays(40, 40),
- glDrawElements(41, 41),
- glEnable(42, 42),
- glEnableVertexAttribArray(43, 43),
- glFinish(44, 44),
- glFlush(45, 45),
- glFramebufferRenderbuffer(46, 46),
- glFramebufferTexture2D(47, 47),
- glFrontFace(48, 48),
- glGenBuffers(49, 49),
- glGenerateMipmap(50, 50),
- glGenFramebuffers(51, 51),
- glGenRenderbuffers(52, 52),
- glGenTextures(53, 53),
- glGetActiveAttrib(54, 54),
- glGetActiveUniform(55, 55),
- glGetAttachedShaders(56, 56),
- glGetAttribLocation(57, 57),
- glGetBooleanv(58, 58),
- glGetBufferParameteriv(59, 59),
- glGetError(60, 60),
- glGetFloatv(61, 61),
- glGetFramebufferAttachmentParameteriv(62, 62),
- glGetIntegerv(63, 63),
- glGetProgramiv(64, 64),
- glGetProgramInfoLog(65, 65),
- glGetRenderbufferParameteriv(66, 66),
- glGetShaderiv(67, 67),
- glGetShaderInfoLog(68, 68),
- glGetShaderPrecisionFormat(69, 69),
- glGetShaderSource(70, 70),
- glGetString(71, 71),
- glGetTexParameterfv(72, 72),
- glGetTexParameteriv(73, 73),
- glGetUniformfv(74, 74),
- glGetUniformiv(75, 75),
- glGetUniformLocation(76, 76),
- glGetVertexAttribfv(77, 77),
- glGetVertexAttribiv(78, 78),
- glGetVertexAttribPointerv(79, 79),
- glHint(80, 80),
- glIsBuffer(81, 81),
- glIsEnabled(82, 82),
- glIsFramebuffer(83, 83),
- glIsProgram(84, 84),
- glIsRenderbuffer(85, 85),
- glIsShader(86, 86),
- glIsTexture(87, 87),
- glLineWidth(88, 88),
- glLinkProgram(89, 89),
- glPixelStorei(90, 90),
- glPolygonOffset(91, 91),
- glReadPixels(92, 92),
- glReleaseShaderCompiler(93, 93),
- glRenderbufferStorage(94, 94),
- glSampleCoverage(95, 95),
- glScissor(96, 96),
- glShaderBinary(97, 97),
- glShaderSource(98, 98),
- glStencilFunc(99, 99),
- glStencilFuncSeparate(100, 100),
- glStencilMask(101, 101),
- glStencilMaskSeparate(102, 102),
- glStencilOp(103, 103),
- glStencilOpSeparate(104, 104),
- glTexImage2D(105, 105),
- glTexParameterf(106, 106),
- glTexParameterfv(107, 107),
- glTexParameteri(108, 108),
- glTexParameteriv(109, 109),
- glTexSubImage2D(110, 110),
- glUniform1f(111, 111),
- glUniform1fv(112, 112),
- glUniform1i(113, 113),
- glUniform1iv(114, 114),
- glUniform2f(115, 115),
- glUniform2fv(116, 116),
- glUniform2i(117, 117),
- glUniform2iv(118, 118),
- glUniform3f(119, 119),
- glUniform3fv(120, 120),
- glUniform3i(121, 121),
- glUniform3iv(122, 122),
- glUniform4f(123, 123),
- glUniform4fv(124, 124),
- glUniform4i(125, 125),
- glUniform4iv(126, 126),
- glUniformMatrix2fv(127, 127),
- glUniformMatrix3fv(128, 128),
- glUniformMatrix4fv(129, 129),
- glUseProgram(130, 130),
- glValidateProgram(131, 131),
- glVertexAttrib1f(132, 132),
- glVertexAttrib1fv(133, 133),
- glVertexAttrib2f(134, 134),
- glVertexAttrib2fv(135, 135),
- glVertexAttrib3f(136, 136),
- glVertexAttrib3fv(137, 137),
- glVertexAttrib4f(138, 138),
- glVertexAttrib4fv(139, 139),
- glVertexAttribPointer(140, 140),
- glViewport(141, 141),
- eglGetDisplay(142, 142),
- eglInitialize(143, 143),
- eglTerminate(144, 144),
- eglGetConfigs(145, 145),
- eglChooseConfig(146, 146),
- eglGetConfigAttrib(147, 147),
- eglCreateWindowSurface(148, 148),
- eglCreatePixmapSurface(149, 149),
- eglCreatePbufferSurface(150, 150),
- eglDestroySurface(151, 151),
- eglQuerySurface(152, 152),
- eglCreateContext(153, 153),
- eglDestroyContext(154, 154),
- eglMakeCurrent(155, 155),
- eglGetCurrentContext(156, 156),
- eglGetCurrentSurface(157, 157),
- eglGetCurrentDisplay(158, 158),
- eglQueryContext(159, 159),
- eglWaitGL(160, 160),
- eglWaitNative(161, 161),
- eglSwapBuffers(162, 162),
- eglCopyBuffers(163, 163),
- eglGetError(164, 164),
- eglQueryString(165, 165),
- eglGetProcAddress(166, 166),
- eglSurfaceAttrib(167, 167),
- eglBindTexImage(168, 168),
- eglReleaseTexImage(169, 169),
- eglSwapInterval(170, 170),
- eglBindAPI(171, 171),
- eglQueryAPI(172, 172),
- eglWaitClient(173, 173),
- eglReleaseThread(174, 174),
- eglCreatePbufferFromClientBuffer(175, 175),
- eglLockSurfaceKHR(176, 176),
- eglUnlockSurfaceKHR(177, 177),
- eglCreateImageKHR(178, 178),
- eglDestroyImageKHR(179, 179),
- eglCreateSyncKHR(180, 180),
- eglDestroySyncKHR(181, 181),
- eglClientWaitSyncKHR(182, 182),
- eglGetSyncAttribKHR(183, 183),
- eglSetSwapRectangleANDROID(184, 184),
- eglGetRenderBufferANDROID(185, 185),
- ACK(186, 186),
- NEG(187, 187),
- CONTINUE(188, 188),
- SKIP(189, 189),
- SETPROP(190, 190),
- ;
-
-
- @Override
- public final int getNumber() { return value; }
-
- public static Function valueOf(int value) {
- switch (value) {
- case 0: return glActiveTexture;
- case 1: return glAttachShader;
- case 2: return glBindAttribLocation;
- case 3: return glBindBuffer;
- case 4: return glBindFramebuffer;
- case 5: return glBindRenderbuffer;
- case 6: return glBindTexture;
- case 7: return glBlendColor;
- case 8: return glBlendEquation;
- case 9: return glBlendEquationSeparate;
- case 10: return glBlendFunc;
- case 11: return glBlendFuncSeparate;
- case 12: return glBufferData;
- case 13: return glBufferSubData;
- case 14: return glCheckFramebufferStatus;
- case 15: return glClear;
- case 16: return glClearColor;
- case 17: return glClearDepthf;
- case 18: return glClearStencil;
- case 19: return glColorMask;
- case 20: return glCompileShader;
- case 21: return glCompressedTexImage2D;
- case 22: return glCompressedTexSubImage2D;
- case 23: return glCopyTexImage2D;
- case 24: return glCopyTexSubImage2D;
- case 25: return glCreateProgram;
- case 26: return glCreateShader;
- case 27: return glCullFace;
- case 28: return glDeleteBuffers;
- case 29: return glDeleteFramebuffers;
- case 30: return glDeleteProgram;
- case 31: return glDeleteRenderbuffers;
- case 32: return glDeleteShader;
- case 33: return glDeleteTextures;
- case 34: return glDepthFunc;
- case 35: return glDepthMask;
- case 36: return glDepthRangef;
- case 37: return glDetachShader;
- case 38: return glDisable;
- case 39: return glDisableVertexAttribArray;
- case 40: return glDrawArrays;
- case 41: return glDrawElements;
- case 42: return glEnable;
- case 43: return glEnableVertexAttribArray;
- case 44: return glFinish;
- case 45: return glFlush;
- case 46: return glFramebufferRenderbuffer;
- case 47: return glFramebufferTexture2D;
- case 48: return glFrontFace;
- case 49: return glGenBuffers;
- case 50: return glGenerateMipmap;
- case 51: return glGenFramebuffers;
- case 52: return glGenRenderbuffers;
- case 53: return glGenTextures;
- case 54: return glGetActiveAttrib;
- case 55: return glGetActiveUniform;
- case 56: return glGetAttachedShaders;
- case 57: return glGetAttribLocation;
- case 58: return glGetBooleanv;
- case 59: return glGetBufferParameteriv;
- case 60: return glGetError;
- case 61: return glGetFloatv;
- case 62: return glGetFramebufferAttachmentParameteriv;
- case 63: return glGetIntegerv;
- case 64: return glGetProgramiv;
- case 65: return glGetProgramInfoLog;
- case 66: return glGetRenderbufferParameteriv;
- case 67: return glGetShaderiv;
- case 68: return glGetShaderInfoLog;
- case 69: return glGetShaderPrecisionFormat;
- case 70: return glGetShaderSource;
- case 71: return glGetString;
- case 72: return glGetTexParameterfv;
- case 73: return glGetTexParameteriv;
- case 74: return glGetUniformfv;
- case 75: return glGetUniformiv;
- case 76: return glGetUniformLocation;
- case 77: return glGetVertexAttribfv;
- case 78: return glGetVertexAttribiv;
- case 79: return glGetVertexAttribPointerv;
- case 80: return glHint;
- case 81: return glIsBuffer;
- case 82: return glIsEnabled;
- case 83: return glIsFramebuffer;
- case 84: return glIsProgram;
- case 85: return glIsRenderbuffer;
- case 86: return glIsShader;
- case 87: return glIsTexture;
- case 88: return glLineWidth;
- case 89: return glLinkProgram;
- case 90: return glPixelStorei;
- case 91: return glPolygonOffset;
- case 92: return glReadPixels;
- case 93: return glReleaseShaderCompiler;
- case 94: return glRenderbufferStorage;
- case 95: return glSampleCoverage;
- case 96: return glScissor;
- case 97: return glShaderBinary;
- case 98: return glShaderSource;
- case 99: return glStencilFunc;
- case 100: return glStencilFuncSeparate;
- case 101: return glStencilMask;
- case 102: return glStencilMaskSeparate;
- case 103: return glStencilOp;
- case 104: return glStencilOpSeparate;
- case 105: return glTexImage2D;
- case 106: return glTexParameterf;
- case 107: return glTexParameterfv;
- case 108: return glTexParameteri;
- case 109: return glTexParameteriv;
- case 110: return glTexSubImage2D;
- case 111: return glUniform1f;
- case 112: return glUniform1fv;
- case 113: return glUniform1i;
- case 114: return glUniform1iv;
- case 115: return glUniform2f;
- case 116: return glUniform2fv;
- case 117: return glUniform2i;
- case 118: return glUniform2iv;
- case 119: return glUniform3f;
- case 120: return glUniform3fv;
- case 121: return glUniform3i;
- case 122: return glUniform3iv;
- case 123: return glUniform4f;
- case 124: return glUniform4fv;
- case 125: return glUniform4i;
- case 126: return glUniform4iv;
- case 127: return glUniformMatrix2fv;
- case 128: return glUniformMatrix3fv;
- case 129: return glUniformMatrix4fv;
- case 130: return glUseProgram;
- case 131: return glValidateProgram;
- case 132: return glVertexAttrib1f;
- case 133: return glVertexAttrib1fv;
- case 134: return glVertexAttrib2f;
- case 135: return glVertexAttrib2fv;
- case 136: return glVertexAttrib3f;
- case 137: return glVertexAttrib3fv;
- case 138: return glVertexAttrib4f;
- case 139: return glVertexAttrib4fv;
- case 140: return glVertexAttribPointer;
- case 141: return glViewport;
- case 142: return eglGetDisplay;
- case 143: return eglInitialize;
- case 144: return eglTerminate;
- case 145: return eglGetConfigs;
- case 146: return eglChooseConfig;
- case 147: return eglGetConfigAttrib;
- case 148: return eglCreateWindowSurface;
- case 149: return eglCreatePixmapSurface;
- case 150: return eglCreatePbufferSurface;
- case 151: return eglDestroySurface;
- case 152: return eglQuerySurface;
- case 153: return eglCreateContext;
- case 154: return eglDestroyContext;
- case 155: return eglMakeCurrent;
- case 156: return eglGetCurrentContext;
- case 157: return eglGetCurrentSurface;
- case 158: return eglGetCurrentDisplay;
- case 159: return eglQueryContext;
- case 160: return eglWaitGL;
- case 161: return eglWaitNative;
- case 162: return eglSwapBuffers;
- case 163: return eglCopyBuffers;
- case 164: return eglGetError;
- case 165: return eglQueryString;
- case 166: return eglGetProcAddress;
- case 167: return eglSurfaceAttrib;
- case 168: return eglBindTexImage;
- case 169: return eglReleaseTexImage;
- case 170: return eglSwapInterval;
- case 171: return eglBindAPI;
- case 172: return eglQueryAPI;
- case 173: return eglWaitClient;
- case 174: return eglReleaseThread;
- case 175: return eglCreatePbufferFromClientBuffer;
- case 176: return eglLockSurfaceKHR;
- case 177: return eglUnlockSurfaceKHR;
- case 178: return eglCreateImageKHR;
- case 179: return eglDestroyImageKHR;
- case 180: return eglCreateSyncKHR;
- case 181: return eglDestroySyncKHR;
- case 182: return eglClientWaitSyncKHR;
- case 183: return eglGetSyncAttribKHR;
- case 184: return eglSetSwapRectangleANDROID;
- case 185: return eglGetRenderBufferANDROID;
- case 186: return ACK;
- case 187: return NEG;
- case 188: return CONTINUE;
- case 189: return SKIP;
- case 190: return SETPROP;
- default: return null;
- }
- }
-
- public static com.google.protobuf.Internal.EnumLiteMap<Function>
- internalGetValueMap() {
- return internalValueMap;
- }
- private static com.google.protobuf.Internal.EnumLiteMap<Function>
- internalValueMap =
- new com.google.protobuf.Internal.EnumLiteMap<Function>() {
- @Override
- public Function findValueByNumber(int number) {
- return Function.valueOf(number)
- ; }
- };
-
- private final int index;
- private final int value;
- private Function(int index, int value) {
- this.index = index;
- this.value = value;
- }
-
- // @@protoc_insertion_point(enum_scope:com.android.glesv2debugger.Message.Function)
- }
-
- public enum Type
- implements com.google.protobuf.Internal.EnumLite {
- BeforeCall(0, 0),
- AfterCall(1, 1),
- AfterGeneratedCall(2, 2),
- Response(3, 3),
- CompleteCall(4, 4),
- ;
-
-
- @Override
- public final int getNumber() { return value; }
-
- public static Type valueOf(int value) {
- switch (value) {
- case 0: return BeforeCall;
- case 1: return AfterCall;
- case 2: return AfterGeneratedCall;
- case 3: return Response;
- case 4: return CompleteCall;
- default: return null;
- }
- }
-
- public static com.google.protobuf.Internal.EnumLiteMap<Type>
- internalGetValueMap() {
- return internalValueMap;
- }
- private static com.google.protobuf.Internal.EnumLiteMap<Type>
- internalValueMap =
- new com.google.protobuf.Internal.EnumLiteMap<Type>() {
- @Override
- public Type findValueByNumber(int number) {
- return Type.valueOf(number)
- ; }
- };
-
- private final int index;
- private final int value;
- private Type(int index, int value) {
- this.index = index;
- this.value = value;
- }
-
- // @@protoc_insertion_point(enum_scope:com.android.glesv2debugger.Message.Type)
- }
-
- public enum DataType
- implements com.google.protobuf.Internal.EnumLite {
- ReferencedImage(0, 0),
- NonreferencedImage(1, 1),
- ;
-
-
- @Override
- public final int getNumber() { return value; }
-
- public static DataType valueOf(int value) {
- switch (value) {
- case 0: return ReferencedImage;
- case 1: return NonreferencedImage;
- default: return null;
- }
- }
-
- public static com.google.protobuf.Internal.EnumLiteMap<DataType>
- internalGetValueMap() {
- return internalValueMap;
- }
- private static com.google.protobuf.Internal.EnumLiteMap<DataType>
- internalValueMap =
- new com.google.protobuf.Internal.EnumLiteMap<DataType>() {
- @Override
- public DataType findValueByNumber(int number) {
- return DataType.valueOf(number)
- ; }
- };
-
- private final int index;
- private final int value;
- private DataType(int index, int value) {
- this.index = index;
- this.value = value;
- }
-
- // @@protoc_insertion_point(enum_scope:com.android.glesv2debugger.Message.DataType)
- }
-
- public enum Prop
- implements com.google.protobuf.Internal.EnumLite {
- CaptureDraw(0, 0),
- TimeMode(1, 1),
- ExpectResponse(2, 2),
- CaptureSwap(3, 3),
- GLConstant(4, 4),
- ;
-
-
- @Override
- public final int getNumber() { return value; }
-
- public static Prop valueOf(int value) {
- switch (value) {
- case 0: return CaptureDraw;
- case 1: return TimeMode;
- case 2: return ExpectResponse;
- case 3: return CaptureSwap;
- case 4: return GLConstant;
- default: return null;
- }
- }
-
- public static com.google.protobuf.Internal.EnumLiteMap<Prop>
- internalGetValueMap() {
- return internalValueMap;
- }
- private static com.google.protobuf.Internal.EnumLiteMap<Prop>
- internalValueMap =
- new com.google.protobuf.Internal.EnumLiteMap<Prop>() {
- @Override
- public Prop findValueByNumber(int number) {
- return Prop.valueOf(number)
- ; }
- };
-
- private final int index;
- private final int value;
- private Prop(int index, int value) {
- this.index = index;
- this.value = value;
- }
-
- // @@protoc_insertion_point(enum_scope:com.android.glesv2debugger.Message.Prop)
- }
-
- // required int32 context_id = 1;
- public static final int CONTEXT_ID_FIELD_NUMBER = 1;
- private boolean hasContextId;
- private int contextId_ = 0;
- public boolean hasContextId() { return hasContextId; }
- public int getContextId() { return contextId_; }
-
- // required .com.android.glesv2debugger.Message.Function function = 2 [default = NEG];
- public static final int FUNCTION_FIELD_NUMBER = 2;
- private boolean hasFunction;
- private com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Function function_;
- public boolean hasFunction() { return hasFunction; }
- public com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Function getFunction() { return function_; }
-
- // required .com.android.glesv2debugger.Message.Type type = 3;
- public static final int TYPE_FIELD_NUMBER = 3;
- private boolean hasType;
- private com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Type type_;
- public boolean hasType() { return hasType; }
- public com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Type getType() { return type_; }
-
- // required bool expect_response = 4;
- public static final int EXPECT_RESPONSE_FIELD_NUMBER = 4;
- private boolean hasExpectResponse;
- private boolean expectResponse_ = false;
- public boolean hasExpectResponse() { return hasExpectResponse; }
- public boolean getExpectResponse() { return expectResponse_; }
-
- // optional int32 ret = 5;
- public static final int RET_FIELD_NUMBER = 5;
- private boolean hasRet;
- private int ret_ = 0;
- public boolean hasRet() { return hasRet; }
- public int getRet() { return ret_; }
-
- // optional int32 arg0 = 6;
- public static final int ARG0_FIELD_NUMBER = 6;
- private boolean hasArg0;
- private int arg0_ = 0;
- public boolean hasArg0() { return hasArg0; }
- public int getArg0() { return arg0_; }
-
- // optional int32 arg1 = 7;
- public static final int ARG1_FIELD_NUMBER = 7;
- private boolean hasArg1;
- private int arg1_ = 0;
- public boolean hasArg1() { return hasArg1; }
- public int getArg1() { return arg1_; }
-
- // optional int32 arg2 = 8;
- public static final int ARG2_FIELD_NUMBER = 8;
- private boolean hasArg2;
- private int arg2_ = 0;
- public boolean hasArg2() { return hasArg2; }
- public int getArg2() { return arg2_; }
-
- // optional int32 arg3 = 9;
- public static final int ARG3_FIELD_NUMBER = 9;
- private boolean hasArg3;
- private int arg3_ = 0;
- public boolean hasArg3() { return hasArg3; }
- public int getArg3() { return arg3_; }
-
- // optional int32 arg4 = 16;
- public static final int ARG4_FIELD_NUMBER = 16;
- private boolean hasArg4;
- private int arg4_ = 0;
- public boolean hasArg4() { return hasArg4; }
- public int getArg4() { return arg4_; }
-
- // optional int32 arg5 = 17;
- public static final int ARG5_FIELD_NUMBER = 17;
- private boolean hasArg5;
- private int arg5_ = 0;
- public boolean hasArg5() { return hasArg5; }
- public int getArg5() { return arg5_; }
-
- // optional int32 arg6 = 18;
- public static final int ARG6_FIELD_NUMBER = 18;
- private boolean hasArg6;
- private int arg6_ = 0;
- public boolean hasArg6() { return hasArg6; }
- public int getArg6() { return arg6_; }
-
- // optional int32 arg7 = 19;
- public static final int ARG7_FIELD_NUMBER = 19;
- private boolean hasArg7;
- private int arg7_ = 0;
- public boolean hasArg7() { return hasArg7; }
- public int getArg7() { return arg7_; }
-
- // optional int32 arg8 = 20;
- public static final int ARG8_FIELD_NUMBER = 20;
- private boolean hasArg8;
- private int arg8_ = 0;
- public boolean hasArg8() { return hasArg8; }
- public int getArg8() { return arg8_; }
-
- // optional bytes data = 10;
- public static final int DATA_FIELD_NUMBER = 10;
- private boolean hasData;
- private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY;
- public boolean hasData() { return hasData; }
- public com.google.protobuf.ByteString getData() { return data_; }
-
- // optional .com.android.glesv2debugger.Message.DataType data_type = 23;
- public static final int DATA_TYPE_FIELD_NUMBER = 23;
- private boolean hasDataType;
- private com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.DataType dataType_;
- public boolean hasDataType() { return hasDataType; }
- public com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.DataType getDataType() { return dataType_; }
-
- // optional int32 pixel_format = 24;
- public static final int PIXEL_FORMAT_FIELD_NUMBER = 24;
- private boolean hasPixelFormat;
- private int pixelFormat_ = 0;
- public boolean hasPixelFormat() { return hasPixelFormat; }
- public int getPixelFormat() { return pixelFormat_; }
-
- // optional int32 pixel_type = 25;
- public static final int PIXEL_TYPE_FIELD_NUMBER = 25;
- private boolean hasPixelType;
- private int pixelType_ = 0;
- public boolean hasPixelType() { return hasPixelType; }
- public int getPixelType() { return pixelType_; }
-
- // optional int32 image_width = 26;
- public static final int IMAGE_WIDTH_FIELD_NUMBER = 26;
- private boolean hasImageWidth;
- private int imageWidth_ = 0;
- public boolean hasImageWidth() { return hasImageWidth; }
- public int getImageWidth() { return imageWidth_; }
-
- // optional int32 image_height = 27;
- public static final int IMAGE_HEIGHT_FIELD_NUMBER = 27;
- private boolean hasImageHeight;
- private int imageHeight_ = 0;
- public boolean hasImageHeight() { return hasImageHeight; }
- public int getImageHeight() { return imageHeight_; }
-
- // optional float time = 11;
- public static final int TIME_FIELD_NUMBER = 11;
- private boolean hasTime;
- private float time_ = 0F;
- public boolean hasTime() { return hasTime; }
- public float getTime() { return time_; }
-
- // optional .com.android.glesv2debugger.Message.Prop prop = 21;
- public static final int PROP_FIELD_NUMBER = 21;
- private boolean hasProp;
- private com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Prop prop_;
- public boolean hasProp() { return hasProp; }
- public com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Prop getProp() { return prop_; }
-
- // optional float clock = 22;
- public static final int CLOCK_FIELD_NUMBER = 22;
- private boolean hasClock;
- private float clock_ = 0F;
- public boolean hasClock() { return hasClock; }
- public float getClock() { return clock_; }
-
- private void initFields() {
- function_ = com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Function.NEG;
- type_ = com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Type.BeforeCall;
- dataType_ = com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.DataType.ReferencedImage;
- prop_ = com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Prop.CaptureDraw;
- }
- @Override
- public final boolean isInitialized() {
- if (!hasContextId) return false;
- if (!hasFunction) return false;
- if (!hasType) return false;
- if (!hasExpectResponse) return false;
- return true;
- }
-
- @Override
- public void writeTo(com.google.protobuf.CodedOutputStream output)
- throws java.io.IOException {
- getSerializedSize();
- if (hasContextId()) {
- output.writeInt32(1, getContextId());
- }
- if (hasFunction()) {
- output.writeEnum(2, getFunction().getNumber());
- }
- if (hasType()) {
- output.writeEnum(3, getType().getNumber());
- }
- if (hasExpectResponse()) {
- output.writeBool(4, getExpectResponse());
- }
- if (hasRet()) {
- output.writeInt32(5, getRet());
- }
- if (hasArg0()) {
- output.writeInt32(6, getArg0());
- }
- if (hasArg1()) {
- output.writeInt32(7, getArg1());
- }
- if (hasArg2()) {
- output.writeInt32(8, getArg2());
- }
- if (hasArg3()) {
- output.writeInt32(9, getArg3());
- }
- if (hasData()) {
- output.writeBytes(10, getData());
- }
- if (hasTime()) {
- output.writeFloat(11, getTime());
- }
- if (hasArg4()) {
- output.writeInt32(16, getArg4());
- }
- if (hasArg5()) {
- output.writeInt32(17, getArg5());
- }
- if (hasArg6()) {
- output.writeInt32(18, getArg6());
- }
- if (hasArg7()) {
- output.writeInt32(19, getArg7());
- }
- if (hasArg8()) {
- output.writeInt32(20, getArg8());
- }
- if (hasProp()) {
- output.writeEnum(21, getProp().getNumber());
- }
- if (hasClock()) {
- output.writeFloat(22, getClock());
- }
- if (hasDataType()) {
- output.writeEnum(23, getDataType().getNumber());
- }
- if (hasPixelFormat()) {
- output.writeInt32(24, getPixelFormat());
- }
- if (hasPixelType()) {
- output.writeInt32(25, getPixelType());
- }
- if (hasImageWidth()) {
- output.writeInt32(26, getImageWidth());
- }
- if (hasImageHeight()) {
- output.writeInt32(27, getImageHeight());
- }
- }
-
- private int memoizedSerializedSize = -1;
- @Override
- public int getSerializedSize() {
- int size = memoizedSerializedSize;
- if (size != -1) return size;
-
- size = 0;
- if (hasContextId()) {
- size += com.google.protobuf.CodedOutputStream
- .computeInt32Size(1, getContextId());
- }
- if (hasFunction()) {
- size += com.google.protobuf.CodedOutputStream
- .computeEnumSize(2, getFunction().getNumber());
- }
- if (hasType()) {
- size += com.google.protobuf.CodedOutputStream
- .computeEnumSize(3, getType().getNumber());
- }
- if (hasExpectResponse()) {
- size += com.google.protobuf.CodedOutputStream
- .computeBoolSize(4, getExpectResponse());
- }
- if (hasRet()) {
- size += com.google.protobuf.CodedOutputStream
- .computeInt32Size(5, getRet());
- }
- if (hasArg0()) {
- size += com.google.protobuf.CodedOutputStream
- .computeInt32Size(6, getArg0());
- }
- if (hasArg1()) {
- size += com.google.protobuf.CodedOutputStream
- .computeInt32Size(7, getArg1());
- }
- if (hasArg2()) {
- size += com.google.protobuf.CodedOutputStream
- .computeInt32Size(8, getArg2());
- }
- if (hasArg3()) {
- size += com.google.protobuf.CodedOutputStream
- .computeInt32Size(9, getArg3());
- }
- if (hasData()) {
- size += com.google.protobuf.CodedOutputStream
- .computeBytesSize(10, getData());
- }
- if (hasTime()) {
- size += com.google.protobuf.CodedOutputStream
- .computeFloatSize(11, getTime());
- }
- if (hasArg4()) {
- size += com.google.protobuf.CodedOutputStream
- .computeInt32Size(16, getArg4());
- }
- if (hasArg5()) {
- size += com.google.protobuf.CodedOutputStream
- .computeInt32Size(17, getArg5());
- }
- if (hasArg6()) {
- size += com.google.protobuf.CodedOutputStream
- .computeInt32Size(18, getArg6());
- }
- if (hasArg7()) {
- size += com.google.protobuf.CodedOutputStream
- .computeInt32Size(19, getArg7());
- }
- if (hasArg8()) {
- size += com.google.protobuf.CodedOutputStream
- .computeInt32Size(20, getArg8());
- }
- if (hasProp()) {
- size += com.google.protobuf.CodedOutputStream
- .computeEnumSize(21, getProp().getNumber());
- }
- if (hasClock()) {
- size += com.google.protobuf.CodedOutputStream
- .computeFloatSize(22, getClock());
- }
- if (hasDataType()) {
- size += com.google.protobuf.CodedOutputStream
- .computeEnumSize(23, getDataType().getNumber());
- }
- if (hasPixelFormat()) {
- size += com.google.protobuf.CodedOutputStream
- .computeInt32Size(24, getPixelFormat());
- }
- if (hasPixelType()) {
- size += com.google.protobuf.CodedOutputStream
- .computeInt32Size(25, getPixelType());
- }
- if (hasImageWidth()) {
- size += com.google.protobuf.CodedOutputStream
- .computeInt32Size(26, getImageWidth());
- }
- if (hasImageHeight()) {
- size += com.google.protobuf.CodedOutputStream
- .computeInt32Size(27, getImageHeight());
- }
- memoizedSerializedSize = size;
- return size;
- }
-
- public static com.android.ide.eclipse.gldebugger.DebuggerMessage.Message parseFrom(
- com.google.protobuf.ByteString data)
- throws com.google.protobuf.InvalidProtocolBufferException {
- return newBuilder().mergeFrom(data).buildParsed();
- }
- public static com.android.ide.eclipse.gldebugger.DebuggerMessage.Message parseFrom(
- com.google.protobuf.ByteString data,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws com.google.protobuf.InvalidProtocolBufferException {
- return newBuilder().mergeFrom(data, extensionRegistry)
- .buildParsed();
- }
- public static com.android.ide.eclipse.gldebugger.DebuggerMessage.Message parseFrom(byte[] data)
- throws com.google.protobuf.InvalidProtocolBufferException {
- return newBuilder().mergeFrom(data).buildParsed();
- }
- public static com.android.ide.eclipse.gldebugger.DebuggerMessage.Message parseFrom(
- byte[] data,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws com.google.protobuf.InvalidProtocolBufferException {
- return newBuilder().mergeFrom(data, extensionRegistry)
- .buildParsed();
- }
- public static com.android.ide.eclipse.gldebugger.DebuggerMessage.Message parseFrom(java.io.InputStream input)
- throws java.io.IOException {
- return newBuilder().mergeFrom(input).buildParsed();
- }
- public static com.android.ide.eclipse.gldebugger.DebuggerMessage.Message parseFrom(
- java.io.InputStream input,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws java.io.IOException {
- return newBuilder().mergeFrom(input, extensionRegistry)
- .buildParsed();
- }
- public static com.android.ide.eclipse.gldebugger.DebuggerMessage.Message parseDelimitedFrom(java.io.InputStream input)
- throws java.io.IOException {
- Builder builder = newBuilder();
- if (builder.mergeDelimitedFrom(input)) {
- return builder.buildParsed();
- } else {
- return null;
- }
- }
- public static com.android.ide.eclipse.gldebugger.DebuggerMessage.Message parseDelimitedFrom(
- java.io.InputStream input,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws java.io.IOException {
- Builder builder = newBuilder();
- if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
- return builder.buildParsed();
- } else {
- return null;
- }
- }
- public static com.android.ide.eclipse.gldebugger.DebuggerMessage.Message parseFrom(
- com.google.protobuf.CodedInputStream input)
- throws java.io.IOException {
- return newBuilder().mergeFrom(input).buildParsed();
- }
- public static com.android.ide.eclipse.gldebugger.DebuggerMessage.Message parseFrom(
- com.google.protobuf.CodedInputStream input,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws java.io.IOException {
- return newBuilder().mergeFrom(input, extensionRegistry)
- .buildParsed();
- }
-
- public static Builder newBuilder() { return Builder.create(); }
- @Override
- public Builder newBuilderForType() { return newBuilder(); }
- public static Builder newBuilder(com.android.ide.eclipse.gldebugger.DebuggerMessage.Message prototype) {
- return newBuilder().mergeFrom(prototype);
- }
- @Override
- public Builder toBuilder() { return newBuilder(this); }
-
- public static final class Builder extends
- com.google.protobuf.GeneratedMessageLite.Builder<
- com.android.ide.eclipse.gldebugger.DebuggerMessage.Message, Builder> {
- private com.android.ide.eclipse.gldebugger.DebuggerMessage.Message result;
-
- // Construct using com.android.glesv2debugger.DebuggerMessage.Message.newBuilder()
- private Builder() {}
-
- private static Builder create() {
- Builder builder = new Builder();
- builder.result = new com.android.ide.eclipse.gldebugger.DebuggerMessage.Message();
- return builder;
- }
-
- @Override
- protected com.android.ide.eclipse.gldebugger.DebuggerMessage.Message internalGetResult() {
- return result;
- }
-
- @Override
- public Builder clear() {
- if (result == null) {
- throw new IllegalStateException(
- "Cannot call clear() after build().");
- }
- result = new com.android.ide.eclipse.gldebugger.DebuggerMessage.Message();
- return this;
- }
-
- @Override
- public Builder clone() {
- return create().mergeFrom(result);
- }
-
- @Override
- public com.android.ide.eclipse.gldebugger.DebuggerMessage.Message getDefaultInstanceForType() {
- return com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.getDefaultInstance();
- }
-
- @Override
- public boolean isInitialized() {
- return result.isInitialized();
- }
- @Override
- public com.android.ide.eclipse.gldebugger.DebuggerMessage.Message build() {
- if (result != null && !isInitialized()) {
- throw newUninitializedMessageException(result);
- }
- return buildPartial();
- }
-
- private com.android.ide.eclipse.gldebugger.DebuggerMessage.Message buildParsed()
- throws com.google.protobuf.InvalidProtocolBufferException {
- if (!isInitialized()) {
- throw newUninitializedMessageException(
- result).asInvalidProtocolBufferException();
- }
- return buildPartial();
- }
-
- @Override
- public com.android.ide.eclipse.gldebugger.DebuggerMessage.Message buildPartial() {
- if (result == null) {
- throw new IllegalStateException(
- "build() has already been called on this Builder.");
- }
- com.android.ide.eclipse.gldebugger.DebuggerMessage.Message returnMe = result;
- result = null;
- return returnMe;
- }
-
- @Override
- public Builder mergeFrom(com.android.ide.eclipse.gldebugger.DebuggerMessage.Message other) {
- if (other == com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.getDefaultInstance()) return this;
- if (other.hasContextId()) {
- setContextId(other.getContextId());
- }
- if (other.hasFunction()) {
- setFunction(other.getFunction());
- }
- if (other.hasType()) {
- setType(other.getType());
- }
- if (other.hasExpectResponse()) {
- setExpectResponse(other.getExpectResponse());
- }
- if (other.hasRet()) {
- setRet(other.getRet());
- }
- if (other.hasArg0()) {
- setArg0(other.getArg0());
- }
- if (other.hasArg1()) {
- setArg1(other.getArg1());
- }
- if (other.hasArg2()) {
- setArg2(other.getArg2());
- }
- if (other.hasArg3()) {
- setArg3(other.getArg3());
- }
- if (other.hasArg4()) {
- setArg4(other.getArg4());
- }
- if (other.hasArg5()) {
- setArg5(other.getArg5());
- }
- if (other.hasArg6()) {
- setArg6(other.getArg6());
- }
- if (other.hasArg7()) {
- setArg7(other.getArg7());
- }
- if (other.hasArg8()) {
- setArg8(other.getArg8());
- }
- if (other.hasData()) {
- setData(other.getData());
- }
- if (other.hasDataType()) {
- setDataType(other.getDataType());
- }
- if (other.hasPixelFormat()) {
- setPixelFormat(other.getPixelFormat());
- }
- if (other.hasPixelType()) {
- setPixelType(other.getPixelType());
- }
- if (other.hasImageWidth()) {
- setImageWidth(other.getImageWidth());
- }
- if (other.hasImageHeight()) {
- setImageHeight(other.getImageHeight());
- }
- if (other.hasTime()) {
- setTime(other.getTime());
- }
- if (other.hasProp()) {
- setProp(other.getProp());
- }
- if (other.hasClock()) {
- setClock(other.getClock());
- }
- return this;
- }
-
- @Override
- public Builder mergeFrom(
- com.google.protobuf.CodedInputStream input,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws java.io.IOException {
- while (true) {
- int tag = input.readTag();
- switch (tag) {
- case 0:
- return this;
- default: {
- if (!parseUnknownField(input, extensionRegistry, tag)) {
- return this;
- }
- break;
- }
- case 8: {
- setContextId(input.readInt32());
- break;
- }
- case 16: {
- int rawValue = input.readEnum();
- com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Function value = com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Function.valueOf(rawValue);
- if (value != null) {
- setFunction(value);
- }
- break;
- }
- case 24: {
- int rawValue = input.readEnum();
- com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Type value = com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Type.valueOf(rawValue);
- if (value != null) {
- setType(value);
- }
- break;
- }
- case 32: {
- setExpectResponse(input.readBool());
- break;
- }
- case 40: {
- setRet(input.readInt32());
- break;
- }
- case 48: {
- setArg0(input.readInt32());
- break;
- }
- case 56: {
- setArg1(input.readInt32());
- break;
- }
- case 64: {
- setArg2(input.readInt32());
- break;
- }
- case 72: {
- setArg3(input.readInt32());
- break;
- }
- case 82: {
- setData(input.readBytes());
- break;
- }
- case 93: {
- setTime(input.readFloat());
- break;
- }
- case 128: {
- setArg4(input.readInt32());
- break;
- }
- case 136: {
- setArg5(input.readInt32());
- break;
- }
- case 144: {
- setArg6(input.readInt32());
- break;
- }
- case 152: {
- setArg7(input.readInt32());
- break;
- }
- case 160: {
- setArg8(input.readInt32());
- break;
- }
- case 168: {
- int rawValue = input.readEnum();
- com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Prop value = com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Prop.valueOf(rawValue);
- if (value != null) {
- setProp(value);
- }
- break;
- }
- case 181: {
- setClock(input.readFloat());
- break;
- }
- case 184: {
- int rawValue = input.readEnum();
- com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.DataType value = com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.DataType.valueOf(rawValue);
- if (value != null) {
- setDataType(value);
- }
- break;
- }
- case 192: {
- setPixelFormat(input.readInt32());
- break;
- }
- case 200: {
- setPixelType(input.readInt32());
- break;
- }
- case 208: {
- setImageWidth(input.readInt32());
- break;
- }
- case 216: {
- setImageHeight(input.readInt32());
- break;
- }
- }
- }
- }
-
-
- // required int32 context_id = 1;
- public boolean hasContextId() {
- return result.hasContextId();
- }
- public int getContextId() {
- return result.getContextId();
- }
- public Builder setContextId(int value) {
- result.hasContextId = true;
- result.contextId_ = value;
- return this;
- }
- public Builder clearContextId() {
- result.hasContextId = false;
- result.contextId_ = 0;
- return this;
- }
-
- // required .com.android.glesv2debugger.Message.Function function = 2 [default = NEG];
- public boolean hasFunction() {
- return result.hasFunction();
- }
- public com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Function getFunction() {
- return result.getFunction();
- }
- public Builder setFunction(com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Function value) {
- if (value == null) {
- throw new NullPointerException();
- }
- result.hasFunction = true;
- result.function_ = value;
- return this;
- }
- public Builder clearFunction() {
- result.hasFunction = false;
- result.function_ = com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Function.NEG;
- return this;
- }
-
- // required .com.android.glesv2debugger.Message.Type type = 3;
- public boolean hasType() {
- return result.hasType();
- }
- public com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Type getType() {
- return result.getType();
- }
- public Builder setType(com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Type value) {
- if (value == null) {
- throw new NullPointerException();
- }
- result.hasType = true;
- result.type_ = value;
- return this;
- }
- public Builder clearType() {
- result.hasType = false;
- result.type_ = com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Type.BeforeCall;
- return this;
- }
-
- // required bool expect_response = 4;
- public boolean hasExpectResponse() {
- return result.hasExpectResponse();
- }
- public boolean getExpectResponse() {
- return result.getExpectResponse();
- }
- public Builder setExpectResponse(boolean value) {
- result.hasExpectResponse = true;
- result.expectResponse_ = value;
- return this;
- }
- public Builder clearExpectResponse() {
- result.hasExpectResponse = false;
- result.expectResponse_ = false;
- return this;
- }
-
- // optional int32 ret = 5;
- public boolean hasRet() {
- return result.hasRet();
- }
- public int getRet() {
- return result.getRet();
- }
- public Builder setRet(int value) {
- result.hasRet = true;
- result.ret_ = value;
- return this;
- }
- public Builder clearRet() {
- result.hasRet = false;
- result.ret_ = 0;
- return this;
- }
-
- // optional int32 arg0 = 6;
- public boolean hasArg0() {
- return result.hasArg0();
- }
- public int getArg0() {
- return result.getArg0();
- }
- public Builder setArg0(int value) {
- result.hasArg0 = true;
- result.arg0_ = value;
- return this;
- }
- public Builder clearArg0() {
- result.hasArg0 = false;
- result.arg0_ = 0;
- return this;
- }
-
- // optional int32 arg1 = 7;
- public boolean hasArg1() {
- return result.hasArg1();
- }
- public int getArg1() {
- return result.getArg1();
- }
- public Builder setArg1(int value) {
- result.hasArg1 = true;
- result.arg1_ = value;
- return this;
- }
- public Builder clearArg1() {
- result.hasArg1 = false;
- result.arg1_ = 0;
- return this;
- }
-
- // optional int32 arg2 = 8;
- public boolean hasArg2() {
- return result.hasArg2();
- }
- public int getArg2() {
- return result.getArg2();
- }
- public Builder setArg2(int value) {
- result.hasArg2 = true;
- result.arg2_ = value;
- return this;
- }
- public Builder clearArg2() {
- result.hasArg2 = false;
- result.arg2_ = 0;
- return this;
- }
-
- // optional int32 arg3 = 9;
- public boolean hasArg3() {
- return result.hasArg3();
- }
- public int getArg3() {
- return result.getArg3();
- }
- public Builder setArg3(int value) {
- result.hasArg3 = true;
- result.arg3_ = value;
- return this;
- }
- public Builder clearArg3() {
- result.hasArg3 = false;
- result.arg3_ = 0;
- return this;
- }
-
- // optional int32 arg4 = 16;
- public boolean hasArg4() {
- return result.hasArg4();
- }
- public int getArg4() {
- return result.getArg4();
- }
- public Builder setArg4(int value) {
- result.hasArg4 = true;
- result.arg4_ = value;
- return this;
- }
- public Builder clearArg4() {
- result.hasArg4 = false;
- result.arg4_ = 0;
- return this;
- }
-
- // optional int32 arg5 = 17;
- public boolean hasArg5() {
- return result.hasArg5();
- }
- public int getArg5() {
- return result.getArg5();
- }
- public Builder setArg5(int value) {
- result.hasArg5 = true;
- result.arg5_ = value;
- return this;
- }
- public Builder clearArg5() {
- result.hasArg5 = false;
- result.arg5_ = 0;
- return this;
- }
-
- // optional int32 arg6 = 18;
- public boolean hasArg6() {
- return result.hasArg6();
- }
- public int getArg6() {
- return result.getArg6();
- }
- public Builder setArg6(int value) {
- result.hasArg6 = true;
- result.arg6_ = value;
- return this;
- }
- public Builder clearArg6() {
- result.hasArg6 = false;
- result.arg6_ = 0;
- return this;
- }
-
- // optional int32 arg7 = 19;
- public boolean hasArg7() {
- return result.hasArg7();
- }
- public int getArg7() {
- return result.getArg7();
- }
- public Builder setArg7(int value) {
- result.hasArg7 = true;
- result.arg7_ = value;
- return this;
- }
- public Builder clearArg7() {
- result.hasArg7 = false;
- result.arg7_ = 0;
- return this;
- }
-
- // optional int32 arg8 = 20;
- public boolean hasArg8() {
- return result.hasArg8();
- }
- public int getArg8() {
- return result.getArg8();
- }
- public Builder setArg8(int value) {
- result.hasArg8 = true;
- result.arg8_ = value;
- return this;
- }
- public Builder clearArg8() {
- result.hasArg8 = false;
- result.arg8_ = 0;
- return this;
- }
-
- // optional bytes data = 10;
- public boolean hasData() {
- return result.hasData();
- }
- public com.google.protobuf.ByteString getData() {
- return result.getData();
- }
- public Builder setData(com.google.protobuf.ByteString value) {
- if (value == null) {
- throw new NullPointerException();
- }
- result.hasData = true;
- result.data_ = value;
- return this;
- }
- public Builder clearData() {
- result.hasData = false;
- result.data_ = getDefaultInstance().getData();
- return this;
- }
-
- // optional .com.android.glesv2debugger.Message.DataType data_type = 23;
- public boolean hasDataType() {
- return result.hasDataType();
- }
- public com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.DataType getDataType() {
- return result.getDataType();
- }
- public Builder setDataType(com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.DataType value) {
- if (value == null) {
- throw new NullPointerException();
- }
- result.hasDataType = true;
- result.dataType_ = value;
- return this;
- }
- public Builder clearDataType() {
- result.hasDataType = false;
- result.dataType_ = com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.DataType.ReferencedImage;
- return this;
- }
-
- // optional int32 pixel_format = 24;
- public boolean hasPixelFormat() {
- return result.hasPixelFormat();
- }
- public int getPixelFormat() {
- return result.getPixelFormat();
- }
- public Builder setPixelFormat(int value) {
- result.hasPixelFormat = true;
- result.pixelFormat_ = value;
- return this;
- }
- public Builder clearPixelFormat() {
- result.hasPixelFormat = false;
- result.pixelFormat_ = 0;
- return this;
- }
-
- // optional int32 pixel_type = 25;
- public boolean hasPixelType() {
- return result.hasPixelType();
- }
- public int getPixelType() {
- return result.getPixelType();
- }
- public Builder setPixelType(int value) {
- result.hasPixelType = true;
- result.pixelType_ = value;
- return this;
- }
- public Builder clearPixelType() {
- result.hasPixelType = false;
- result.pixelType_ = 0;
- return this;
- }
-
- // optional int32 image_width = 26;
- public boolean hasImageWidth() {
- return result.hasImageWidth();
- }
- public int getImageWidth() {
- return result.getImageWidth();
- }
- public Builder setImageWidth(int value) {
- result.hasImageWidth = true;
- result.imageWidth_ = value;
- return this;
- }
- public Builder clearImageWidth() {
- result.hasImageWidth = false;
- result.imageWidth_ = 0;
- return this;
- }
-
- // optional int32 image_height = 27;
- public boolean hasImageHeight() {
- return result.hasImageHeight();
- }
- public int getImageHeight() {
- return result.getImageHeight();
- }
- public Builder setImageHeight(int value) {
- result.hasImageHeight = true;
- result.imageHeight_ = value;
- return this;
- }
- public Builder clearImageHeight() {
- result.hasImageHeight = false;
- result.imageHeight_ = 0;
- return this;
- }
-
- // optional float time = 11;
- public boolean hasTime() {
- return result.hasTime();
- }
- public float getTime() {
- return result.getTime();
- }
- public Builder setTime(float value) {
- result.hasTime = true;
- result.time_ = value;
- return this;
- }
- public Builder clearTime() {
- result.hasTime = false;
- result.time_ = 0F;
- return this;
- }
-
- // optional .com.android.glesv2debugger.Message.Prop prop = 21;
- public boolean hasProp() {
- return result.hasProp();
- }
- public com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Prop getProp() {
- return result.getProp();
- }
- public Builder setProp(com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Prop value) {
- if (value == null) {
- throw new NullPointerException();
- }
- result.hasProp = true;
- result.prop_ = value;
- return this;
- }
- public Builder clearProp() {
- result.hasProp = false;
- result.prop_ = com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Prop.CaptureDraw;
- return this;
- }
-
- // optional float clock = 22;
- public boolean hasClock() {
- return result.hasClock();
- }
- public float getClock() {
- return result.getClock();
- }
- public Builder setClock(float value) {
- result.hasClock = true;
- result.clock_ = value;
- return this;
- }
- public Builder clearClock() {
- result.hasClock = false;
- result.clock_ = 0F;
- return this;
- }
-
- // @@protoc_insertion_point(builder_scope:com.android.glesv2debugger.Message)
- }
-
- static {
- defaultInstance = new Message(true);
- com.android.ide.eclipse.gldebugger.DebuggerMessage.internalForceInit();
- defaultInstance.initFields();
- }
-
- // @@protoc_insertion_point(class_scope:com.android.glesv2debugger.Message)
- }
-
-
- static {
- }
-
- public static void internalForceInit() {}
-
- // @@protoc_insertion_point(outer_class_scope)
-}
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/GLFramesView.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/GLFramesView.java
deleted file mode 100644
index dd886ee..0000000
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/GLFramesView.java
+++ /dev/null
@@ -1,757 +0,0 @@
-/*
- ** Copyright 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.gldebugger;
-
-import com.android.ide.eclipse.gldebugger.DebuggerMessage.Message;
-import com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Function;
-import com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Prop;
-import com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Type;
-import com.android.sdklib.util.SparseArray;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.dialogs.InputDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Scale;
-import org.eclipse.swt.widgets.ScrollBar;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Spinner;
-import org.eclipse.swt.widgets.TabFolder;
-import org.eclipse.swt.widgets.TabItem;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.part.ViewPart;
-
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.nio.ByteOrder;
-
-public class GLFramesView extends ViewPart implements Runnable {
- public static final ByteOrder TARGET_BYTE_ORDER = ByteOrder.LITTLE_ENDIAN;
-
- private boolean mRunning = false;
- private Thread mThread;
-
- MessageQueue messageQueue;
- SparseArray<DebugContext> debugContexts = new SparseArray<DebugContext>();
-
- TabFolder tabFolder;
- TabItem tabItemText, tabItemImage, tabItemBreakpointOption;
- TabItem tabItemShaderEditor, tabContextViewer;
-
- private ListViewer mViewer; // ListViewer / TableViewer
- private Scale mFrameScale; // scale max cannot overlap min, so max is array size
- private Spinner mFrameNumberspinner;
- private TreeViewer mContextViewer;
- private BreakpointOption mBreakpointOption;
- private ShaderEditor mShaderEditor;
- Canvas canvas;
- private Text mText;
- private Action mActionConnect; // connect / disconnect
-
- private Action mActionAutoScroll;
- private Action mActionFilter;
- Action actionPort;
-
- private Action mActionContext; // for toggling contexts
- DebugContext current = null;
-
- private Point mOrigin = new Point(0, 0); // for smooth scrolling canvas
- private String[] mTextFilters = null;
-
- private static class ViewContentProvider extends LabelProvider implements IStructuredContentProvider {
- private Frame mFrame = null;
-
- @Override
- public void inputChanged(Viewer v, Object oldInput, Object newInput) {
- mFrame = (Frame) newInput;
- }
-
- @Override
- public void dispose() {
- }
-
- @Override
- public Object[] getElements(Object parent) {
- return mFrame.get().toArray();
- }
-
- @Override
- public String getText(Object obj) {
- MessageData msgData = (MessageData) obj;
- return msgData.text;
- }
-
- @Override
- public Image getImage(Object obj) {
- MessageData msgData = (MessageData) obj;
- return msgData.getImage();
- }
- }
-
- private class Filter extends ViewerFilter {
- @Override
- public boolean select(Viewer viewer, Object parentElement,
- Object element) {
- MessageData msgData = (MessageData) element;
- if (null == mTextFilters)
- return true;
- for (int i = 0; i < mTextFilters.length; i++)
- if (msgData.text.contains(mTextFilters[i]))
- return true;
- return false;
- }
- }
-
- private void createLeftPane(Composite parent) {
- Composite composite = new Composite(parent, 0);
-
- GridLayout gridLayout = new GridLayout();
- gridLayout.numColumns = 3;
- composite.setLayout(gridLayout);
- composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-
- // Frame: -------|slider|--------- [ Spinner ]
- Label l = new Label(composite, SWT.NONE);
- l.setText("Frame:");
-
- mFrameScale = new Scale(composite, SWT.BORDER | SWT.HORIZONTAL);
- mFrameScale.setMinimum(0);
- mFrameScale.setMaximum(1);
- mFrameScale.setSelection(0);
- mFrameScale.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- if (current == null) {
- return;
- }
- int selectedFrame = mFrameScale.getSelection();
- mFrameNumberspinner.setSelection(selectedFrame);
- selectFrame(selectedFrame);
- }
- });
-
- GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
- mFrameScale.setLayoutData(gridData);
-
- mFrameNumberspinner = new Spinner(composite, SWT.BORDER);
- mFrameNumberspinner.setMinimum(0);
- mFrameNumberspinner.setMaximum(1);
- mFrameNumberspinner.setSelection(0);
- mFrameNumberspinner.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- if (current == null) {
- return;
- }
- int selectedFrame = mFrameNumberspinner.getSelection();
- mFrameScale.setSelection(selectedFrame);
- selectFrame(selectedFrame);
- }
- });
-
- mViewer = new ListViewer(composite, SWT.DEFAULT);
- mViewer.getList().setFont(new Font(mViewer.getList().getDisplay(),
- "Courier", 10, SWT.BOLD));
- ViewContentProvider contentProvider = new ViewContentProvider();
- mViewer.setContentProvider(contentProvider);
- mViewer.setLabelProvider(contentProvider);
- mViewer.setFilters(new ViewerFilter[] {
- new Filter()
- });
-
- gridData = new GridData(GridData.FILL_BOTH);
- gridData.horizontalSpan = 3;
- mViewer.getControl().setLayoutData(gridData);
- }
-
- private void selectFrame(int frameNumber) {
- if (frameNumber == current.frameCount()) {
- return; // scale maximum cannot overlap minimum
- }
-
- Frame frame = current.getFrame(frameNumber);
- mViewer.setInput(frame);
- }
-
- @Override
- public void createPartControl(Composite parent) {
- createLeftPane(parent);
-
- tabFolder = new TabFolder(parent, SWT.BORDER);
-
- mText = new Text(tabFolder, SWT.NO_BACKGROUND | SWT.READ_ONLY
- | SWT.V_SCROLL | SWT.H_SCROLL);
-
- tabItemText = new TabItem(tabFolder, SWT.NONE);
- tabItemText.setText("Text");
- tabItemText.setControl(mText);
-
- canvas = new Canvas(tabFolder, SWT.NO_BACKGROUND | SWT.NO_REDRAW_RESIZE
- | SWT.V_SCROLL | SWT.H_SCROLL);
- tabItemImage = new TabItem(tabFolder, SWT.NONE);
- tabItemImage.setText("Image");
- tabItemImage.setControl(canvas);
-
- mBreakpointOption = new BreakpointOption(this, tabFolder);
- tabItemBreakpointOption = new TabItem(tabFolder, SWT.NONE);
- tabItemBreakpointOption.setText("Breakpoint Option");
- tabItemBreakpointOption.setControl(mBreakpointOption);
-
- mShaderEditor = new ShaderEditor(this, tabFolder);
- tabItemShaderEditor = new TabItem(tabFolder, SWT.NONE);
- tabItemShaderEditor.setText("Shader Editor");
- tabItemShaderEditor.setControl(mShaderEditor);
-
- mContextViewer = new TreeViewer(tabFolder);
- ContextViewProvider contextViewProvider = new ContextViewProvider(this);
- mContextViewer.addSelectionChangedListener(contextViewProvider);
- mContextViewer.setContentProvider(contextViewProvider);
- mContextViewer.setLabelProvider(contextViewProvider);
- tabContextViewer = new TabItem(tabFolder, SWT.NONE);
- tabContextViewer.setText("Context Viewer");
- tabContextViewer.setControl(mContextViewer.getTree());
-
- final ScrollBar hBar = canvas.getHorizontalBar();
- hBar.addListener(SWT.Selection, new Listener() {
- @Override
- public void handleEvent(Event e) {
- if (null == canvas.getBackgroundImage())
- return;
- Image image = canvas.getBackgroundImage();
- int hSelection = hBar.getSelection();
- int destX = -hSelection - mOrigin.x;
- Rectangle rect = image.getBounds();
- canvas.scroll(destX, 0, 0, 0, rect.width, rect.height, false);
- mOrigin.x = -hSelection;
- }
- });
- final ScrollBar vBar = canvas.getVerticalBar();
- vBar.addListener(SWT.Selection, new Listener() {
- @Override
- public void handleEvent(Event e) {
- if (null == canvas.getBackgroundImage())
- return;
- Image image = canvas.getBackgroundImage();
- int vSelection = vBar.getSelection();
- int destY = -vSelection - mOrigin.y;
- Rectangle rect = image.getBounds();
- canvas.scroll(0, destY, 0, 0, rect.width, rect.height, false);
- mOrigin.y = -vSelection;
- }
- });
- canvas.addListener(SWT.Resize, new Listener() {
- @Override
- public void handleEvent(Event e) {
- if (null == canvas.getBackgroundImage())
- return;
- Image image = canvas.getBackgroundImage();
- Rectangle rect = image.getBounds();
- Rectangle client = canvas.getClientArea();
- hBar.setMaximum(rect.width);
- vBar.setMaximum(rect.height);
- hBar.setThumb(Math.min(rect.width, client.width));
- vBar.setThumb(Math.min(rect.height, client.height));
- int hPage = rect.width - client.width;
- int vPage = rect.height - client.height;
- int hSelection = hBar.getSelection();
- int vSelection = vBar.getSelection();
- if (hSelection >= hPage) {
- if (hPage <= 0)
- hSelection = 0;
- mOrigin.x = -hSelection;
- }
- if (vSelection >= vPage) {
- if (vPage <= 0)
- vSelection = 0;
- mOrigin.y = -vSelection;
- }
- canvas.redraw();
- }
- });
- canvas.addListener(SWT.Paint, new Listener() {
- @Override
- public void handleEvent(Event e) {
- if (null == canvas.getBackgroundImage())
- return;
- Image image = canvas.getBackgroundImage();
- GC gc = e.gc;
- gc.drawImage(image, mOrigin.x, mOrigin.y);
- Rectangle rect = image.getBounds();
- Rectangle client = canvas.getClientArea();
- int marginWidth = client.width - rect.width;
- if (marginWidth > 0) {
- gc.fillRectangle(rect.width, 0, marginWidth, client.height);
- }
- int marginHeight = client.height - rect.height;
- if (marginHeight > 0) {
- gc.fillRectangle(0, rect.height, client.width, marginHeight);
- }
- }
- });
-
- hookContextMenu();
- hookSelectionChanged();
- contributeToActionBars();
-
- messageQueue = new MessageQueue(this, new ProcessMessage[] {
- mBreakpointOption, mShaderEditor
- });
- }
-
- private void hookContextMenu() {
- MenuManager menuMgr = new MenuManager("#PopupMenu");
- menuMgr.setRemoveAllWhenShown(true);
- menuMgr.addMenuListener(new IMenuListener() {
- @Override
- public void menuAboutToShow(IMenuManager manager) {
- GLFramesView.this.fillContextMenu(manager);
- }
- });
- Menu menu = menuMgr.createContextMenu(mViewer.getControl());
- mViewer.getControl().setMenu(menu);
- getSite().registerContextMenu(menuMgr, mViewer);
- }
-
- private void contributeToActionBars() {
- IActionBars bars = getViewSite().getActionBars();
- fillLocalToolBar(bars.getToolBarManager());
- }
-
- private void fillContextMenu(IMenuManager manager) {
- // Other plug-ins can contribute there actions here
- manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
- }
-
- private void fillLocalToolBar(final IToolBarManager manager) {
- mActionConnect = new Action("Connect", Action.AS_PUSH_BUTTON) {
- @Override
- public void run() {
- if (!mRunning)
- changeContext(null); // viewer will switch to newest context
- connectDisconnect();
- }
- };
- manager.add(mActionConnect);
-
- manager.add(new Action("Open File", Action.AS_PUSH_BUTTON) {
- @Override
- public void run() {
- if (!mRunning) {
- changeContext(null); // viewer will switch to newest context
- openFile();
- }
- }
- });
-
- final Shell shell = this.getViewSite().getShell();
- mActionAutoScroll = new Action("Auto Scroll", Action.AS_CHECK_BOX) {
- @Override
- public void run() {
- }
- };
- mActionAutoScroll.setChecked(true);
- manager.add(mActionAutoScroll);
-
- mActionFilter = new Action("*", Action.AS_DROP_DOWN_MENU) {
- @Override
- public void run() {
- InputDialog dialog = new InputDialog(
- shell, "Contains Filter",
- "case sensitive substring or *",
- mActionFilter.getText(), null);
- if (Window.OK == dialog.open()) {
- mActionFilter.setText(dialog.getValue());
- manager.update(true);
- mTextFilters = dialog.getValue().split("\\|");
- if (mTextFilters.length == 1 && mTextFilters[0].equals("*"))
- mTextFilters = null;
- mViewer.refresh();
- }
-
- }
- };
- manager.add(mActionFilter);
-
- manager.add(new Action("CaptureDraw", Action.AS_DROP_DOWN_MENU) {
- @Override
- public void run() {
- int contextId = 0;
- if (current != null)
- contextId = current.contextId;
- InputDialog inputDialog = new InputDialog(shell,
- "Capture glDrawArrays/Elements",
- "Enter number of glDrawArrays/Elements to glReadPixels for "
- + "context 0x" + Integer.toHexString(contextId) +
- "\n(0x0 is any context)", "9001", null);
- if (inputDialog.open() != Window.OK)
- return;
- Message.Builder builder = Message.newBuilder();
- builder.setContextId(contextId);
- builder.setType(Type.Response);
- builder.setExpectResponse(false);
- builder.setFunction(Function.SETPROP);
- builder.setProp(Prop.CaptureDraw);
- builder.setArg0(Integer.parseInt(inputDialog.getValue()));
- messageQueue.addCommand(builder.build());
- }
- });
-
- manager.add(new Action("CaptureSwap", Action.AS_DROP_DOWN_MENU) {
- @Override
- public void run() {
- int contextId = 0;
- if (current != null)
- contextId = current.contextId;
- InputDialog inputDialog = new InputDialog(shell,
- "Capture eglSwapBuffers",
- "Enter number of eglSwapBuffers to glReadPixels for "
- + "context 0x" + Integer.toHexString(contextId) +
- "\n(0x0 is any context)", "9001", null);
- if (inputDialog.open() != Window.OK)
- return;
- Message.Builder builder = Message.newBuilder();
- builder.setContextId(contextId);
- builder.setType(Type.Response);
- builder.setExpectResponse(false);
- builder.setFunction(Function.SETPROP);
- builder.setProp(Prop.CaptureSwap);
- builder.setArg0(Integer.parseInt(inputDialog.getValue()));
- messageQueue.addCommand(builder.build());
- }
- });
-
- manager.add(new Action("SYSTEM_TIME_THREAD", Action.AS_DROP_DOWN_MENU) {
- @Override
- public void run() {
- final String[] timeModes = {
- "SYSTEM_TIME_REALTIME", "SYSTEM_TIME_MONOTONIC", "SYSTEM_TIME_PROCESS",
- "SYSTEM_TIME_THREAD"
- };
- int i = java.util.Arrays.asList(timeModes).indexOf(this.getText());
- i = (i + 1) % timeModes.length;
- Message.Builder builder = Message.newBuilder();
- builder.setContextId(0); // FIXME: proper context id
- builder.setType(Type.Response);
- builder.setExpectResponse(false);
- builder.setFunction(Message.Function.SETPROP);
- builder.setProp(Prop.TimeMode);
- builder.setArg0(i);
- messageQueue.addCommand(builder.build());
- this.setText(timeModes[i]);
- manager.update(true);
- }
- });
-
- mActionContext = new Action("Context: 0x", Action.AS_DROP_DOWN_MENU) {
- @Override
- public void run() {
- if (debugContexts.size() < 2)
- return;
- final String idStr = this.getText().substring(
- "Context: 0x".length());
- if (idStr.length() == 0)
- return;
- final int contextId = Integer.parseInt(idStr, 16);
- int index = debugContexts.indexOfKey(contextId);
- index = (index + 1) % debugContexts.size();
- changeContext(debugContexts.valueAt(index));
- }
- };
- manager.add(mActionContext);
-
- actionPort = new Action("5039", Action.AS_DROP_DOWN_MENU) {
- @Override
- public void run() {
- InputDialog dialog = new InputDialog(shell, "Port", "Debugger port",
- actionPort.getText(), null);
- if (Window.OK == dialog.open()) {
- actionPort.setText(dialog.getValue());
- manager.update(true);
- }
- }
- };
- manager.add(actionPort);
-
- manager.add(new Action("CodeGen Frame", Action.AS_PUSH_BUTTON) {
- @Override
- public void run() {
- if (current != null) {
- new CodeGen().codeGenFrame((Frame) mViewer.getInput());
- // need to reload current frame
- mViewer.setInput(current.getFrame(mFrameScale.getSelection()));
- }
- }
- });
-
- manager.add(new Action("CodeGen Frames", Action.AS_PUSH_BUTTON) {
- @Override
- public void run() {
- if (current != null) {
- new CodeGen().codeGenFrames(current, mFrameScale.getSelection() + 1,
- getSite().getShell());
- // need to reload current frame
- mViewer.setInput(current.getFrame(mFrameScale.getSelection()));
- }
- }
- });
- }
-
- private void openFile() {
- FileDialog dialog = new FileDialog(getSite().getShell(), SWT.OPEN);
- dialog.setText("Open");
- dialog.setFilterExtensions(new String[] {
- "*.gles2dbg"
- });
- String filePath = dialog.open();
- if (filePath == null)
- return;
- FileInputStream file = null;
- try {
- file = new FileInputStream(filePath);
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- return;
- }
- mRunning = true;
- messageQueue.start(TARGET_BYTE_ORDER, file);
- mThread = new Thread(this);
- mThread.start();
- mActionConnect.setText("Disconnect");
- getViewSite().getActionBars().getToolBarManager().update(true);
- }
-
- private void connectDisconnect() {
- if (!mRunning) {
- mRunning = true;
- messageQueue.start(TARGET_BYTE_ORDER, null);
- mThread = new Thread(this);
- mThread.start();
- mActionConnect.setText("Disconnect");
- } else {
- mRunning = false;
- messageQueue.stop();
- mActionConnect.setText("Connect");
- }
- this.getSite().getShell().getDisplay().syncExec(new Runnable() {
- @Override
- public void run() {
- getViewSite().getActionBars().getToolBarManager().update(true);
- }
- });
- }
-
- void messageDataSelected(final MessageData msgData) {
- if (null == msgData)
- return;
- if (mFrameScale.getSelection() == mFrameScale.getMaximum())
- return; // scale max cannot overlap min, so max is array size
- final Frame frame = current.getFrame(mFrameScale.getSelection());
- final Context context = frame.computeContext(msgData);
- mContextViewer.setInput(context);
- if (msgData.getImage() != null) {
- canvas.setBackgroundImage(msgData.getImage());
- tabFolder.setSelection(tabItemImage);
- canvas.redraw();
- } else if (null != msgData.shader) {
- mText.setText(msgData.shader);
- tabFolder.setSelection(tabItemText);
- } else if (null != msgData.attribs) {
- StringBuilder builder = new StringBuilder();
- final int maxAttrib = msgData.msg.getArg7();
- for (int i = 0; i < msgData.attribs[0].length / 4; i++) {
- if (msgData.indices != null) {
- builder.append(msgData.indices[i] & 0xffff);
- builder.append(": ");
- }
- for (int j = 0; j < maxAttrib; j++) {
- for (int k = 0; k < 4; k++)
- builder.append(String.format("%.3g ", msgData.attribs[j][i * 4 + k]));
- if (j < maxAttrib - 1)
- builder.append("|| ");
- }
- builder.append('\n');
- }
- mText.setText(builder.toString());
- tabFolder.setSelection(tabItemText);
- }
- }
-
- private void hookSelectionChanged() {
- mViewer.addSelectionChangedListener(new ISelectionChangedListener() {
- @Override
- public void selectionChanged(SelectionChangedEvent event) {
- StructuredSelection selection = (StructuredSelection) event
- .getSelection();
- if (null == selection)
- return;
- MessageData msgData = (MessageData) selection.getFirstElement();
- messageDataSelected(msgData);
- }
- });
- }
-
- public void showError(final Exception e) {
- mViewer.getControl().getDisplay().syncExec(new Runnable() {
- @Override
- public void run() {
- MessageDialog.openError(mViewer.getControl().getShell(),
- "GL ES 2.0 Debugger Client", e.getMessage());
- }
- });
- }
-
- /**
- * Passing the focus request to the viewer's control.
- */
- @Override
- public void setFocus() {
- mViewer.getControl().setFocus();
- }
-
- @Override
- public void run() {
- int newMessages = 0;
-
- boolean shaderEditorUpdate = false;
- while (mRunning) {
- final Message oriMsg = messageQueue.removeCompleteMessage(0);
- if (oriMsg == null && !messageQueue.isRunning())
- break;
- if (newMessages > 60 || (newMessages > 0 && null == oriMsg)) {
- newMessages = 0;
- if (current != null && current.uiUpdate)
- getSite().getShell().getDisplay().syncExec(new Runnable() {
- @Override
- public void run() {
- if (mFrameScale.getSelection() == current.frameCount() - 1 ||
- mFrameScale.getSelection() == current.frameCount() - 2)
- {
- mViewer.refresh(false);
- if (mActionAutoScroll.isChecked())
- mViewer.getList().setSelection(
- mViewer.getList().getItemCount() - 1);
- }
- setMaxFrameCount(current.frameCount());
- }
- });
- current.uiUpdate = false;
-
- if (shaderEditorUpdate)
- this.getSite().getShell().getDisplay().syncExec(new Runnable() {
- @Override
- public void run() {
- mShaderEditor.updateUI();
- }
- });
- shaderEditorUpdate = false;
- }
- if (null == oriMsg) {
- try {
- Thread.sleep(1);
- continue;
- } catch (InterruptedException e) {
- showError(e);
- }
- }
- DebugContext debugContext = debugContexts.get(oriMsg.getContextId());
- if (debugContext == null) {
- debugContext = new DebugContext(oriMsg.getContextId());
- debugContexts.put(oriMsg.getContextId(), debugContext);
- }
- debugContext.processMessage(oriMsg);
- shaderEditorUpdate |= debugContext.currentContext.serverShader.uiUpdate;
- debugContext.currentContext.serverShader.uiUpdate = false;
- if (current == null && debugContext.frameCount() > 0)
- changeContext(debugContext);
- newMessages++;
- }
- if (mRunning)
- connectDisconnect(); // error occurred, disconnect
- }
-
- private void setMaxFrameCount(int frameCount) {
- mFrameScale.setMaximum(frameCount);
- mFrameNumberspinner.setMaximum(frameCount);
- }
-
- private void setSelectedFrame(int frameNumber) {
- mFrameScale.setSelection(frameNumber);
- mFrameNumberspinner.setSelection(frameNumber);
- }
-
- /** can be called from non-UI thread */
- void changeContext(final DebugContext newContext) {
- getSite().getShell().getDisplay().syncExec(new Runnable() {
- @Override
- public void run() {
- current = newContext;
- if (current != null) {
- setMaxFrameCount(current.frameCount());
-
- int frame = Math.min(mFrameScale.getSelection(), current.frameCount() - 1);
- if (frame < 0) {
- frame = 0;
- }
- setSelectedFrame(frame);
- mViewer.setInput(current.getFrame(frame));
- mActionContext.setText("Context: 0x" + Integer.toHexString(current.contextId));
- } else {
- setMaxFrameCount(1);
- setSelectedFrame(0);
-
- mViewer.setInput(null);
- mActionContext.setText("Context: 0x");
- }
- mShaderEditor.updateUI();
- getViewSite().getActionBars().getToolBarManager().update(true);
- }
- });
- }
-}
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/GLServerShader.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/GLServerShader.java
deleted file mode 100644
index a88613c..0000000
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/GLServerShader.java
+++ /dev/null
@@ -1,259 +0,0 @@
-/*
- ** Copyright 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.gldebugger;
-
-import com.android.ide.eclipse.gldebugger.DebuggerMessage.Message;
-import com.android.sdklib.util.SparseArray;
-
-import java.util.ArrayList;
-
-class GLShader implements Cloneable {
- public final int name;
- GLServerShader context; // the context this was created in
- public final GLEnum type;
- public boolean delete;
- public ArrayList<Integer> programs = new ArrayList<Integer>();
- public String source, originalSource;
-
- GLShader(final int name, final GLServerShader context, final GLEnum type) {
- this.name = name;
- this.context = context;
- this.type = type;
- }
-
- /** deep copy */
- public GLShader clone(final GLServerShader copyContext) {
- try {
- GLShader shader = (GLShader) super.clone();
- shader.programs = (ArrayList<Integer>) programs.clone();
- shader.context = copyContext;
- return shader;
- } catch (CloneNotSupportedException e) {
- e.printStackTrace();
- assert false;
- return null;
- }
- }
-}
-
-class GLProgram implements Cloneable {
- public final int name;
- GLServerShader context; // the context this was created in
- public boolean delete;
- public int vert, frag;
-
- GLProgram(final int name, final GLServerShader context) {
- this.name = name;
- this.context = context;
- }
-
- /** deep copy */
- public GLProgram clone(final GLServerShader copyContext) {
- try {
- GLProgram copy = (GLProgram) super.clone();
- copy.context = copyContext;
- return copy;
- } catch (CloneNotSupportedException e) {
- e.printStackTrace();
- assert false;
- return null;
- }
- }
-}
-
-public class GLServerShader implements Cloneable {
- Context context;
- public SparseArray<GLShader> shaders = new SparseArray<GLShader>();
- public SparseArray<GLProgram> programs = new SparseArray<GLProgram>();
- public GLProgram current = null;
- boolean uiUpdate = false;
-
- GLServerShader(Context context) {
- this.context = context;
- }
-
- /** deep copy */
- public GLServerShader clone(final Context copyContext) {
- try {
- GLServerShader copy = (GLServerShader) super.clone();
- copy.context = copyContext;
-
- copy.shaders = new SparseArray<GLShader>(shaders.size());
- for (int i = 0; i < shaders.size(); i++)
- copy.shaders.append(shaders.keyAt(i), shaders.valueAt(i).clone(copy));
-
- copy.programs = new SparseArray<GLProgram>(programs.size());
- for (int i = 0; i < programs.size(); i++)
- copy.programs.append(programs.keyAt(i), programs.valueAt(i).clone(copy));
-
- if (current != null)
- copy.current = copy.programs.get(current.name);
- return copy;
- } catch (CloneNotSupportedException e) {
- e.printStackTrace();
- assert false;
- return null;
- }
- }
-
- /** returns true if processed */
- public boolean processMessage(final Message msg) {
- boolean oldUiUpdate = uiUpdate;
- uiUpdate = true;
- switch (msg.getFunction()) {
- case glAttachShader:
- glAttachShader(msg);
- return true;
- case glCreateProgram:
- glCreateProgram(msg);
- return true;
- case glCreateShader:
- glCreateShader(msg);
- return true;
- case glDeleteProgram:
- glDeleteProgram(msg);
- return true;
- case glDeleteShader:
- glDeleteShader(msg);
- return true;
- case glDetachShader:
- glDetachShader(msg);
- return true;
- case glShaderSource:
- glShaderSource(msg);
- return true;
- case glUseProgram:
- glUseProgram(msg);
- return true;
- default:
- uiUpdate = oldUiUpdate;
- return false;
- }
- }
-
- GLShader getShader(int name) {
- if (name == 0)
- return null;
- for (Context ctx : context.shares) {
- GLShader shader = ctx.serverShader.shaders.get(name);
- if (shader != null)
- return shader;
- }
- assert false;
- return null;
- }
-
- GLProgram getProgram(int name) {
- if (name == 0)
- return null;
- for (Context ctx : context.shares) {
- GLProgram program = ctx.serverShader.programs.get(name);
- if (program != null)
- return program;
- }
- assert false;
- return null;
- }
-
- // void API_ENTRY(glAttachShader)(GLuint program, GLuint shader)
- void glAttachShader(final Message msg) {
- GLProgram program = getProgram(msg.getArg0());
- assert program != null;
- GLShader shader = getShader(msg.getArg1());
- assert program != null;
- if (GLEnum.GL_VERTEX_SHADER == shader.type)
- program.vert = shader.name;
- else
- program.frag = shader.name;
- shader.programs.add(program.name);
- }
-
- // GLuint API_ENTRY(glCreateProgram)(void)
- void glCreateProgram(final Message msg) {
- programs.put(msg.getRet(), new GLProgram(msg.getRet(), this));
- }
-
- // GLuint API_ENTRY(glCreateShader)(GLenum type)
- void glCreateShader(final Message msg) {
- shaders.put(msg.getRet(),
- new GLShader(msg.getRet(), this, GLEnum.valueOf(msg.getArg0())));
- }
-
- // void API_ENTRY(glDeleteProgram)
- void glDeleteProgram(final Message msg) {
- if (msg.getArg0() == 0)
- return;
- GLProgram program = getProgram(msg.getArg0());
- program.delete = true;
- for (Context ctx : context.shares)
- if (ctx.serverShader.current == program)
- return;
- glDetachShader(program, getShader(program.vert));
- glDetachShader(program, getShader(program.frag));
- programs.remove(program.name);
- }
-
- // void API_ENTRY(glDeleteShader)(GLuint shader)
- void glDeleteShader(final Message msg) {
- if (msg.getArg0() == 0)
- return;
- GLShader shader = getShader(msg.getArg0());
- shader.delete = true;
- if (shader.programs.size() == 0)
- shaders.remove(shader.name);
- }
-
- // void API_ENTRY(glDetachShader)(GLuint program, GLuint shader)
- void glDetachShader(final Message msg) {
- glDetachShader(getProgram(msg.getArg0()), getShader(msg.getArg1()));
- }
-
- void glDetachShader(final GLProgram program, final GLShader shader) {
- if (program == null)
- return;
- if (program.vert == shader.name)
- program.vert = 0;
- else if (program.frag == shader.name)
- program.frag = 0;
- else
- return;
- shader.programs.remove(new Integer(program.name));
- if (shader.delete && shader.programs.size() == 0)
- shaders.remove(shader.name);
- }
-
- // void API_ENTRY(glShaderSource)(GLuint shader, GLsizei count, const
- // GLchar** string, const GLint* length)
- void glShaderSource(final Message msg) {
- if (!msg.hasData())
- return; // TODO: distinguish between generated calls
- GLShader shader = getShader(msg.getArg0());
- shader.source = shader.originalSource = msg.getData().toStringUtf8();
- }
-
- // void API_ENTRY(glUseProgram)(GLuint program)
- void glUseProgram(final Message msg) {
- GLProgram oldCurrent = current;
- current = getProgram(msg.getArg0());
- if (null != oldCurrent && oldCurrent.delete && oldCurrent != current) {
- for (Context ctx : context.shares)
- if (ctx.serverShader.current == oldCurrent)
- return;
- oldCurrent.context.programs.remove(new Integer(oldCurrent.name));
- }
- }
-}
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/GLServerState.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/GLServerState.java
deleted file mode 100644
index f722f50..0000000
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/GLServerState.java
+++ /dev/null
@@ -1,271 +0,0 @@
-/*
- ** Copyright 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.gldebugger;
-
-import com.android.ide.eclipse.gldebugger.DebuggerMessage.Message;
-import com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Function;
-import com.android.sdklib.util.SparseArray;
-import com.android.sdklib.util.SparseIntArray;
-
-class GLStencilState implements Cloneable {
- public int ref, mask;
- public GLEnum func;
- public GLEnum sf, df, dp; // operation
-
- @Override
- public Object clone() {
- try {
- return super.clone();
- } catch (CloneNotSupportedException e) {
- e.printStackTrace();
- return null;
- }
- }
-}
-
-public class GLServerState implements Cloneable {
- final Context context;
- public GLStencilState front = new GLStencilState(), back = new GLStencilState();
- public SparseIntArray enableDisables;
-
- /** integer states set via a GL function and GLEnum; keyed by GLEnum.value */
- public SparseArray<Message> integers;
-
- /** states set only via a GL function; keyed by Function.getNumber() */
- public SparseArray<Message> lastSetter;
-
- GLServerState(final Context context) {
- this.context = context;
- enableDisables = new SparseIntArray();
- enableDisables.put(GLEnum.GL_BLEND.value, 0);
- enableDisables.put(GLEnum.GL_DITHER.value, 1);
- enableDisables.put(GLEnum.GL_DEPTH_TEST.value, 0);
- enableDisables.put(GLEnum.GL_STENCIL_TEST.value, 0);
- enableDisables.put(GLEnum.GL_SCISSOR_TEST.value, 0);
- enableDisables.put(GLEnum.GL_SAMPLE_COVERAGE.value, 0);
- enableDisables.put(GLEnum.GL_SAMPLE_ALPHA_TO_COVERAGE.value, 0);
- enableDisables.put(GLEnum.GL_POLYGON_OFFSET_FILL.value, 0);
- enableDisables.put(GLEnum.GL_CULL_FACE.value, 0);
- // enableDisables.put(GLEnum.GL_TEXTURE_2D.value, 1);
-
- lastSetter = new SparseArray<Message>();
- lastSetter.put(Function.glBlendColor.getNumber(), null);
- // glBlendEquation overwrites glBlendEquationSeparate
- lastSetter.put(Function.glBlendEquationSeparate.getNumber(), null);
- // glBlendFunc overwrites glBlendFuncSeparate
- lastSetter.put(Function.glBlendFuncSeparate.getNumber(), null);
- lastSetter.put(Function.glClearColor.getNumber(), null);
- lastSetter.put(Function.glClearDepthf.getNumber(), null);
- lastSetter.put(Function.glClearStencil.getNumber(), null);
- lastSetter.put(Function.glColorMask.getNumber(), null);
- lastSetter.put(Function.glCullFace.getNumber(), null);
- lastSetter.put(Function.glDepthMask.getNumber(), null);
- lastSetter.put(Function.glDepthFunc.getNumber(), null);
- lastSetter.put(Function.glDepthRangef.getNumber(), null);
- lastSetter.put(Function.glFrontFace.getNumber(), null);
- lastSetter.put(Function.glLineWidth.getNumber(), null);
- lastSetter.put(Function.glPolygonOffset.getNumber(), null);
- lastSetter.put(Function.glSampleCoverage.getNumber(), null);
- lastSetter.put(Function.glScissor.getNumber(), null);
- lastSetter.put(Function.glStencilMaskSeparate.getNumber(), null);
- lastSetter.put(Function.glViewport.getNumber(), null);
-
- integers = new SparseArray<Message>();
- integers.put(GLEnum.GL_PACK_ALIGNMENT.value, null);
- integers.put(GLEnum.GL_UNPACK_ALIGNMENT.value, null);
- }
-
- /** returns true if processed */
- public boolean processMessage(final Message msg) {
- switch (msg.getFunction()) {
- case glBlendColor:
- case glBlendEquation:
- case glBlendEquationSeparate:
- case glBlendFunc:
- case glBlendFuncSeparate:
- case glClearColor:
- case glClearDepthf:
- case glClearStencil:
- case glColorMask:
- case glCullFace:
- case glDepthMask:
- case glDepthFunc:
- case glDepthRangef:
- return setter(msg);
- case glDisable:
- return enableDisable(false, msg);
- case glEnable:
- return enableDisable(true, msg);
- case glFrontFace:
- case glLineWidth:
- return setter(msg);
- case glPixelStorei:
- if (GLEnum.valueOf(msg.getArg0()) == GLEnum.GL_PACK_ALIGNMENT)
- integers.put(msg.getArg0(), msg);
- else if (GLEnum.valueOf(msg.getArg0()) == GLEnum.GL_UNPACK_ALIGNMENT)
- integers.put(msg.getArg0(), msg);
- else
- assert false;
- return true;
- case glPolygonOffset:
- case glSampleCoverage:
- case glScissor:
- return setter(msg);
- case glStencilFunc: {
- Message.Builder builder = msg.toBuilder();
- builder.setArg2(msg.getArg1());
- builder.setArg1(msg.getArg0());
- builder.setArg0(GLEnum.GL_FRONT_AND_BACK.value);
- return glStencilFuncSeparate(builder.build());
- }
- case glStencilFuncSeparate:
- return glStencilFuncSeparate(msg);
- case glStencilMask:
- case glStencilMaskSeparate:
- return setter(msg);
- case glStencilOp: {
- Message.Builder builder = msg.toBuilder();
- builder.setArg3(msg.getArg2());
- builder.setArg2(msg.getArg1());
- builder.setArg1(msg.getArg0());
- builder.setArg0(GLEnum.GL_FRONT_AND_BACK.value);
- return glStencilOpSeparate(builder.build());
- }
- case glStencilOpSeparate:
- return glStencilOpSeparate(msg);
- case glViewport:
- return setter(msg);
- default:
- return false;
- }
- }
-
- boolean setter(final Message msg) {
- switch (msg.getFunction()) {
- case glBlendFunc:
- lastSetter.put(Function.glBlendFuncSeparate.getNumber(), msg);
- break;
- case glBlendEquation:
- lastSetter.put(Function.glBlendEquationSeparate.getNumber(), msg);
- break;
- case glStencilMask:
- lastSetter.put(Function.glStencilMaskSeparate.getNumber(), msg);
- break;
- default:
- lastSetter.put(msg.getFunction().getNumber(), msg);
- break;
- }
- return true;
- }
-
- boolean enableDisable(boolean enable, final Message msg) {
- int index = enableDisables.indexOfKey(msg.getArg0());
- if (index < 0) {
- System.out.print("invalid glDisable/Enable: ");
- System.out.println(MessageFormatter.format(msg, false));
- return true;
- }
- if ((enableDisables.valueAt(index) != 0) == enable)
- return true; // TODO: redundant
- enableDisables.put(msg.getArg0(), enable ? 1 : 0);
- return true;
- }
-
- // void StencilFuncSeparate( enum face, enum func, int ref, uint mask )
- boolean glStencilFuncSeparate(final Message msg) {
- GLEnum ff = front.func, bf = back.func;
- int fr = front.ref, br = back.ref;
- int fm = front.mask, bm = back.mask;
- final GLEnum face = GLEnum.valueOf(msg.getArg0());
- if (face == GLEnum.GL_FRONT || face == GLEnum.GL_FRONT_AND_BACK) {
- ff = GLEnum.valueOf(msg.getArg1());
- fr = msg.getArg2();
- fm = msg.getArg3();
- }
- if (face == GLEnum.GL_BACK || face == GLEnum.GL_FRONT_AND_BACK) {
- bf = GLEnum.valueOf(msg.getArg1());
- br = msg.getArg2();
- bm = msg.getArg3();
- }
- if (ff == front.func && fr == front.ref && fm == front.mask)
- if (bf == back.func && br == back.ref && bm == back.mask)
- return true; // TODO: redundant
- front.func = ff;
- front.ref = fr;
- front.mask = fm;
- back.func = bf;
- back.ref = br;
- back.mask = bm;
- return true;
- }
-
- // void StencilOpSeparate( enum face, enum sfail, enum dpfail, enum dppass )
- boolean glStencilOpSeparate(final Message msg) {
- GLEnum fsf = front.sf, fdf = front.df, fdp = front.dp;
- GLEnum bsf = back.sf, bdf = back.df, bdp = back.dp;
- final GLEnum face = GLEnum.valueOf(msg.getArg0());
- if (face == GLEnum.GL_FRONT || face == GLEnum.GL_FRONT_AND_BACK) {
- fsf = GLEnum.valueOf(msg.getArg1());
- fdf = GLEnum.valueOf(msg.getArg2());
- fdp = GLEnum.valueOf(msg.getArg3());
- }
- if (face == GLEnum.GL_BACK || face == GLEnum.GL_FRONT_AND_BACK) {
- bsf = GLEnum.valueOf(msg.getArg1());
- bdf = GLEnum.valueOf(msg.getArg2());
- bdp = GLEnum.valueOf(msg.getArg3());
- }
- if (fsf == front.sf && fdf == front.df && fdp == front.dp)
- if (bsf == back.sf && bdf == back.df && bdp == back.dp)
- return true; // TODO: redundant
- front.sf = fsf;
- front.df = fdf;
- front.dp = fdp;
- back.sf = bsf;
- back.df = bdf;
- back.dp = bdp;
- return true;
- }
-
- /** deep copy */
- @Override
- public GLServerState clone() {
- try {
- GLServerState newState = (GLServerState) super.clone();
- newState.front = (GLStencilState) front.clone();
- newState.back = (GLStencilState) back.clone();
-
- newState.enableDisables = new SparseIntArray(enableDisables.size());
- for (int i = 0; i < enableDisables.size(); i++)
- newState.enableDisables.append(enableDisables.keyAt(i),
- enableDisables.valueAt(i));
-
- newState.integers = new SparseArray<Message>(integers.size());
- for (int i = 0; i < integers.size(); i++)
- newState.integers.append(integers.keyAt(i), integers.valueAt(i));
-
- newState.lastSetter = new SparseArray<Message>(lastSetter.size());
- for (int i = 0; i < lastSetter.size(); i++)
- newState.lastSetter.append(lastSetter.keyAt(i), lastSetter.valueAt(i));
-
- return newState;
- } catch (CloneNotSupportedException e) {
- e.printStackTrace();
- assert false;
- return null;
- }
- }
-}
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/GLServerTexture.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/GLServerTexture.java
deleted file mode 100644
index 3418a91..0000000
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/GLServerTexture.java
+++ /dev/null
@@ -1,235 +0,0 @@
-/*
- ** Copyright 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.gldebugger;
-
-import com.android.ide.eclipse.gldebugger.DebuggerMessage.Message;
-import com.android.sdklib.util.SparseArray;
-
-import java.nio.ByteBuffer;
-import java.util.ArrayList;
-
-class GLTexture implements Cloneable {
- public final int name;
- public final GLEnum target;
- public ArrayList<Message> contentChanges = new ArrayList<Message>();
- public GLEnum wrapS = GLEnum.GL_REPEAT, wrapT = GLEnum.GL_REPEAT;
- public GLEnum min = GLEnum.GL_NEAREST_MIPMAP_LINEAR;
- public GLEnum mag = GLEnum.GL_LINEAR;
- public GLEnum format;
- public int width, height;
-
- GLTexture(final int name, final GLEnum target) {
- this.name = name;
- this.target = target;
- }
-
- @Override
- public GLTexture clone() {
- try {
- GLTexture copy = (GLTexture) super.clone();
- copy.contentChanges = (ArrayList<Message>) contentChanges.clone();
- return copy;
- } catch (CloneNotSupportedException e) {
- e.printStackTrace();
- assert false;
- return null;
- }
- }
-
- boolean processMessage(final Message msg) {
- switch (msg.getFunction()) {
- case glCompressedTexImage2D:
- case glCopyTexImage2D:
- case glTexImage2D:
- if (msg.getArg1() == 0) { // level 0
- format = GLEnum.valueOf(msg.getArg2());
- width = msg.getArg3();
- height = msg.getArg4();
- }
- //$FALL-THROUGH$
- case glCompressedTexSubImage2D:
- case glCopyTexSubImage2D:
- case glTexSubImage2D:
- case glGenerateMipmap:
- contentChanges.add(msg);
- break;
- default:
- assert false;
- }
- return true;
- }
-
- @Override
- public String toString() {
- return String.format("%s %s %d*%d %d change(s)", target, format, width, height,
- contentChanges.size());
- }
-}
-
-public class GLServerTexture implements Cloneable {
- Context context;
-
- public GLEnum activeTexture = GLEnum.GL_TEXTURE0;
- public int[] tmu2D;
- public int[] tmuCube;
- public SparseArray<GLTexture> textures = new SparseArray<GLTexture>();
- public GLTexture tex2D = null, texCube = null;
-
- GLServerTexture(final Context context, final int MAX_COMBINED_TEXTURE_IMAGE_UNITS) {
- this.context = context;
- textures.append(0, null);
- tmu2D = new int[MAX_COMBINED_TEXTURE_IMAGE_UNITS];
- tmuCube = new int[MAX_COMBINED_TEXTURE_IMAGE_UNITS];
- }
-
- public GLServerTexture clone(final Context copyContext) {
- try {
- GLServerTexture copy = (GLServerTexture) super.clone();
- copy.context = copyContext;
-
- copy.tmu2D = tmu2D.clone();
- copy.tmuCube = tmuCube.clone();
-
- copy.textures = new SparseArray<GLTexture>(textures.size());
- for (int i = 0; i < textures.size(); i++)
- if (textures.valueAt(i) != null)
- copy.textures.append(textures.keyAt(i), textures.valueAt(i).clone());
- else
- copy.textures.append(textures.keyAt(i), null);
-
- if (tex2D != null)
- copy.tex2D = copy.textures.get(tex2D.name);
- if (texCube != null)
- copy.texCube = copy.textures.get(texCube.name);
-
- return copy;
- } catch (CloneNotSupportedException e) {
- e.printStackTrace();
- assert false;
- return null;
- }
- }
-
- public boolean processMessage(final Message msg) {
- switch (msg.getFunction()) {
- case glActiveTexture:
- activeTexture = GLEnum.valueOf(msg.getArg0());
- return true;
- case glBindTexture:
- return bindTexture(msg.getArg0(), msg.getArg1());
- case glCompressedTexImage2D:
- case glCompressedTexSubImage2D:
- case glCopyTexImage2D:
- case glCopyTexSubImage2D:
- case glTexImage2D:
- case glTexSubImage2D:
- switch (GLEnum.valueOf(msg.getArg0())) {
- case GL_TEXTURE_2D:
- if (tex2D != null)
- return tex2D.processMessage(msg);
- return true;
- case GL_TEXTURE_CUBE_MAP_POSITIVE_X:
- case GL_TEXTURE_CUBE_MAP_NEGATIVE_X:
- case GL_TEXTURE_CUBE_MAP_POSITIVE_Y:
- case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y:
- case GL_TEXTURE_CUBE_MAP_POSITIVE_Z:
- case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:
- if (texCube != null)
- return texCube.processMessage(msg);
- return true;
- default:
- return true;
- }
- case glDeleteTextures: {
- final ByteBuffer names = msg.getData().asReadOnlyByteBuffer();
- names.order(GLFramesView.TARGET_BYTE_ORDER);
- for (int i = 0; i < msg.getArg0(); i++) {
- final int name = names.getInt();
- if (tex2D != null && tex2D.name == name)
- bindTexture(GLEnum.GL_TEXTURE_2D.value, 0);
- if (texCube != null && texCube.name == name)
- bindTexture(GLEnum.GL_TEXTURE_CUBE_MAP.value, 0);
- if (name != 0)
- textures.remove(name);
- }
- return true;
- }
- case glGenerateMipmap:
- if (GLEnum.valueOf(msg.getArg0()) == GLEnum.GL_TEXTURE_2D && tex2D != null)
- return tex2D.processMessage(msg);
- else if (GLEnum.valueOf(msg.getArg0()) == GLEnum.GL_TEXTURE_CUBE_MAP
- && texCube != null)
- return texCube.processMessage(msg);
- return true;
- case glTexParameteri:
- return texParameter(msg.getArg0(), msg.getArg1(), msg.getArg2());
- case glTexParameterf:
- return texParameter(msg.getArg0(), msg.getArg1(),
- (int) Float.intBitsToFloat(msg.getArg2()));
- default:
- return false;
- }
- }
-
- boolean bindTexture(final int target, final int name) {
- final int index = activeTexture.value - GLEnum.GL_TEXTURE0.value;
- if (GLEnum.valueOf(target) == GLEnum.GL_TEXTURE_2D) {
- tex2D = textures.get(name);
- if (name != 0 && tex2D == null)
- textures.put(name, tex2D = new GLTexture(name,
- GLEnum.GL_TEXTURE_2D));
- if (index >= 0 && index < tmu2D.length)
- tmu2D[index] = name;
- } else if (GLEnum.valueOf(target) == GLEnum.GL_TEXTURE_CUBE_MAP) {
- texCube = textures.get(name);
- if (name != 0 && texCube == null)
- textures.put(name, texCube = new GLTexture(name,
- GLEnum.GL_TEXTURE_CUBE_MAP));
- if (index >= 0 && index < tmu2D.length)
- tmu2D[index] = name;
- } else
- assert false;
- return true;
- }
-
- boolean texParameter(final int target, final int pname, final int param) {
- GLTexture tex = null;
- if (GLEnum.valueOf(target) == GLEnum.GL_TEXTURE_2D)
- tex = tex2D;
- else if (GLEnum.valueOf(target) == GLEnum.GL_TEXTURE_CUBE_MAP)
- tex = texCube;
- if (tex == null)
- return true;
- final GLEnum p = GLEnum.valueOf(param);
- switch (GLEnum.valueOf(pname)) {
- case GL_TEXTURE_WRAP_S:
- tex.wrapS = p;
- return true;
- case GL_TEXTURE_WRAP_T:
- tex.wrapT = p;
- return true;
- case GL_TEXTURE_MIN_FILTER:
- tex.min = p;
- return true;
- case GL_TEXTURE_MAG_FILTER:
- tex.mag = p;
- return true;
- default:
- return true;
- }
- }
-}
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/GLServerVertex.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/GLServerVertex.java
deleted file mode 100644
index bff0359..0000000
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/GLServerVertex.java
+++ /dev/null
@@ -1,542 +0,0 @@
-/*
- ** Copyright 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.gldebugger;
-
-import com.android.ide.eclipse.gldebugger.DebuggerMessage.Message;
-import com.android.sdklib.util.SparseArray;
-
-import java.nio.ByteBuffer;
-
-class GLBuffer implements Cloneable {
- public final int name;
- public GLEnum usage;
- public GLEnum target;
- /** in SampleView.targetByteOrder */
- public ByteBuffer data;
-
- public GLBuffer(final int name) {
- this.name = name;
- }
-
- /** deep copy */
- @Override
- public GLBuffer clone() {
- try {
- GLBuffer copy = (GLBuffer) super.clone();
- if (data != null) {
- copy.data = ByteBuffer.allocate(data.capacity());
- copy.data.order(GLFramesView.TARGET_BYTE_ORDER);
- data.position(0);
- copy.data.put(data);
- }
- return copy;
- } catch (CloneNotSupportedException e) {
- e.printStackTrace();
- assert false;
- return null;
- }
- }
-}
-
-class GLAttribPointer implements Cloneable {
- public int size; // number of values per vertex
- public GLEnum type; // data type
- public int stride; // bytes
- /**
- * element stride in bytes, used when fetching from buffer; not for fetching
- * from user pointer since server already packed elements
- */
- int elemStride; // in bytes
- /** element size in bytes */
- int elemSize;
- public int ptr; // pointer in debugger server or byte offset into buffer
- public GLBuffer buffer;
- public boolean normalized;
- public boolean enabled;
-
- /** deep copy, re-maps buffer into copyBuffers */
- public GLAttribPointer clone(SparseArray<GLBuffer> copyBuffers) {
- try {
- GLAttribPointer copy = (GLAttribPointer) super.clone();
- if (buffer != null)
- copy.buffer = copyBuffers.get(buffer.name);
- return copy;
- } catch (CloneNotSupportedException e) {
- e.printStackTrace();
- assert false;
- return null;
- }
- }
-}
-
-public class GLServerVertex implements Cloneable {
- public SparseArray<GLBuffer> buffers = new SparseArray<GLBuffer>();
- public GLBuffer attribBuffer, indexBuffer; // current binding
- public GLAttribPointer attribPointers[];
- public float defaultAttribs[][];
-
- public GLServerVertex(final int MAX_VERTEX_ATTRIBS) {
- buffers.append(0, null);
- attribPointers = new GLAttribPointer[MAX_VERTEX_ATTRIBS];
- for (int i = 0; i < attribPointers.length; i++)
- attribPointers[i] = new GLAttribPointer();
- defaultAttribs = new float[MAX_VERTEX_ATTRIBS][4];
- for (int i = 0; i < defaultAttribs.length; i++) {
- defaultAttribs[i][0] = 0;
- defaultAttribs[i][1] = 0;
- defaultAttribs[i][2] = 0;
- defaultAttribs[i][3] = 1;
- }
- }
-
- /** deep copy */
- @Override
- public GLServerVertex clone() {
- try {
- GLServerVertex copy = (GLServerVertex) super.clone();
-
- copy.buffers = new SparseArray<GLBuffer>(buffers.size());
- for (int i = 0; i < buffers.size(); i++)
- if (buffers.valueAt(i) != null)
- copy.buffers.append(buffers.keyAt(i), buffers.valueAt(i).clone());
- else
- copy.buffers.append(buffers.keyAt(i), null);
-
- if (attribBuffer != null)
- copy.attribBuffer = copy.buffers.get(attribBuffer.name);
- if (indexBuffer != null)
- copy.indexBuffer = copy.buffers.get(indexBuffer.name);
-
- copy.attribPointers = new GLAttribPointer[attribPointers.length];
- for (int i = 0; i < attribPointers.length; i++)
- copy.attribPointers[i] = attribPointers[i].clone(copy.buffers);
-
- copy.defaultAttribs = defaultAttribs.clone();
-
- return copy;
- } catch (CloneNotSupportedException e) {
- e.printStackTrace();
- assert false;
- return null;
- }
- }
-
- /** returns true if processed */
- public boolean process(final Message msg) {
- switch (msg.getFunction()) {
- case glBindBuffer:
- glBindBuffer(msg);
- return true;
- case glBufferData:
- glBufferData(msg);
- return true;
- case glBufferSubData:
- glBufferSubData(msg);
- return true;
- case glDeleteBuffers:
- glDeleteBuffers(msg);
- return true;
- case glDrawArrays:
- case glDrawElements:
- return true;
- case glDisableVertexAttribArray:
- glDisableVertexAttribArray(msg);
- return true;
- case glEnableVertexAttribArray:
- glEnableVertexAttribArray(msg);
- return true;
- case glGenBuffers:
- glGenBuffers(msg);
- return true;
- case glVertexAttribPointer:
- glVertexAttribPointer(msg);
- return true;
- case glVertexAttrib1f:
- glVertexAttrib1f(msg);
- return true;
- case glVertexAttrib1fv:
- glVertexAttrib1fv(msg);
- return true;
- case glVertexAttrib2f:
- glVertexAttrib2f(msg);
- return true;
- case glVertexAttrib2fv:
- glVertexAttrib2fv(msg);
- return true;
- case glVertexAttrib3f:
- glVertexAttrib3f(msg);
- return true;
- case glVertexAttrib3fv:
- glVertexAttrib3fv(msg);
- return true;
- case glVertexAttrib4f:
- glVertexAttrib4f(msg);
- return true;
- case glVertexAttrib4fv:
- glVertexAttrib4fv(msg);
- return true;
- default:
- return false;
- }
- }
-
- // void API_ENTRY(glBindBuffer)(GLenum target, GLuint buffer)
- public void glBindBuffer(Message msg) {
- if (GLEnum.valueOf(msg.getArg0()) == GLEnum.GL_ARRAY_BUFFER) {
- attribBuffer = buffers.get(msg.getArg1());
- if (null != attribBuffer)
- attribBuffer.target = GLEnum.GL_ARRAY_BUFFER;
- } else if (GLEnum.valueOf(msg.getArg0()) == GLEnum.GL_ELEMENT_ARRAY_BUFFER) {
- indexBuffer = buffers.get(msg.getArg1());
- if (null != indexBuffer)
- indexBuffer.target = GLEnum.GL_ELEMENT_ARRAY_BUFFER;
- } else
- assert false;
- }
-
- // void API_ENTRY(glBufferData)(GLenum target, GLsizeiptr size, const
- // GLvoid:size:in data, GLenum usage)
- public void glBufferData(Message msg) {
- if (GLEnum.valueOf(msg.getArg0()) == GLEnum.GL_ARRAY_BUFFER) {
- attribBuffer.usage = GLEnum.valueOf(msg.getArg3());
- attribBuffer.data = msg.getData().asReadOnlyByteBuffer();
- attribBuffer.data.order(GLFramesView.TARGET_BYTE_ORDER);
- } else if (GLEnum.valueOf(msg.getArg0()) == GLEnum.GL_ELEMENT_ARRAY_BUFFER) {
- indexBuffer.usage = GLEnum.valueOf(msg.getArg3());
- indexBuffer.data = msg.getData().asReadOnlyByteBuffer();
- indexBuffer.data.order(GLFramesView.TARGET_BYTE_ORDER);
- } else
- assert false;
- }
-
- // void API_ENTRY(glBufferSubData)(GLenum target, GLintptr offset,
- // GLsizeiptr size, const GLvoid:size:in data)
- public void glBufferSubData(Message msg) {
- if (GLEnum.valueOf(msg.getArg0()) == GLEnum.GL_ARRAY_BUFFER) {
- if (attribBuffer.data.isReadOnly()) {
- ByteBuffer buffer = ByteBuffer.allocate(attribBuffer.data.capacity());
- buffer.order(GLFramesView.TARGET_BYTE_ORDER);
- buffer.put(attribBuffer.data);
- attribBuffer.data = buffer;
- }
- attribBuffer.data.position(msg.getArg1());
- attribBuffer.data.put(msg.getData().asReadOnlyByteBuffer());
- } else if (GLEnum.valueOf(msg.getArg0()) == GLEnum.GL_ELEMENT_ARRAY_BUFFER) {
- if (indexBuffer.data.isReadOnly()) {
- ByteBuffer buffer = ByteBuffer.allocate(indexBuffer.data.capacity());
- buffer.order(GLFramesView.TARGET_BYTE_ORDER);
- buffer.put(indexBuffer.data);
- indexBuffer.data = buffer;
- }
- indexBuffer.data.position(msg.getArg1());
- indexBuffer.data.put(msg.getData().asReadOnlyByteBuffer());
- } else
- assert false;
- }
-
- // void glDeleteBuffers(GLsizei n, const GLuint* buffers)
- public void glDeleteBuffers(Message msg) {
- final int n = msg.getArg0();
- final ByteBuffer names = msg.getData().asReadOnlyByteBuffer();
- names.order(GLFramesView.TARGET_BYTE_ORDER);
- for (int i = 0; i < n; i++) {
- final int name = names.getInt();
- final GLBuffer buffer = buffers.get(name);
- for (int j = 0; j < attribPointers.length; j++)
- if (attribPointers[j].buffer == buffer) {
- attribPointers[j].buffer = null;
- attribPointers[j].enabled = false;
- }
- if (attribBuffer == buffer)
- attribBuffer = null;
- if (indexBuffer == buffer)
- indexBuffer = null;
- buffers.remove(name);
- }
- }
-
- // void glDisableVertexAttribArray(GLuint index)
- public void glDisableVertexAttribArray(Message msg) {
- if (msg.getArg0() >= 0 && msg.getArg0() < attribPointers.length)
- attribPointers[msg.getArg0()].enabled = false;
- }
-
- float fetchConvert(final ByteBuffer src, final GLEnum type, final boolean normalized) {
- if (GLEnum.GL_FLOAT == type)
- return Float.intBitsToFloat(src.getInt());
- else if (GLEnum.GL_UNSIGNED_INT == type)
- if (normalized)
- return (src.getInt() & 0xffffffffL) / (2e32f - 1);
- else
- return src.getInt() & 0xffffffffL;
- else if (GLEnum.GL_INT == type)
- if (normalized)
- return (src.getInt() * 2 + 1) / (2e32f - 1);
- else
- return src.getInt();
- else if (GLEnum.GL_UNSIGNED_SHORT == type)
- if (normalized)
- return (src.getShort() & 0xffff) / (2e16f - 1);
- else
- return src.getShort() & 0xffff;
- else if (GLEnum.GL_SHORT == type)
- if (normalized)
- return (src.getShort() * 2 + 1) / (2e16f - 1);
- else
- return src.getShort();
- else if (GLEnum.GL_UNSIGNED_BYTE == type)
- if (normalized)
- return (src.get() & 0xff) / (2e8f - 1);
- else
- return src.get() & 0xff;
- else if (GLEnum.GL_BYTE == type)
- if (normalized)
- return (src.get() * 2 + 1) / (2e8f - 1);
- else
- return src.get();
- else if (GLEnum.GL_FIXED == type)
- if (normalized)
- return (src.getInt() * 2 + 1) / (2e32f - 1);
- else
- return src.getInt() / (2e16f);
- else
- assert false;
- return 0;
- }
-
- static int typeSize(final GLEnum type) {
- switch (type) {
- case GL_FLOAT:
- case GL_UNSIGNED_INT:
- case GL_INT:
- case GL_FIXED:
- return 4;
- case GL_UNSIGNED_SHORT:
- case GL_SHORT:
- return 2;
- case GL_UNSIGNED_BYTE:
- case GL_BYTE:
- return 1;
- default:
- assert false;
- return 0;
- }
- }
-
- void fetch(final int maxAttrib, final int index, final int dstIdx, final ByteBuffer nonVBO,
- final float[][] fetchedAttribs) {
- for (int i = 0; i < maxAttrib; i++) {
- final GLAttribPointer attrib = attribPointers[i];
- int size = 0;
- if (attrib.enabled) {
- size = attrib.size;
- if (null != attrib.buffer) {
- final ByteBuffer src = attrib.buffer.data;
- src.position(attrib.ptr + index * attrib.elemStride);
- for (int j = 0; j < size; j++)
- fetchedAttribs[i][dstIdx * 4 + j] = fetchConvert(src, attrib.type,
- attrib.normalized);
- } else
- for (int j = 0; j < size; j++)
- fetchedAttribs[i][dstIdx * 4 + j] = fetchConvert(nonVBO, attrib.type,
- attrib.normalized);
- }
- if (size < 1)
- fetchedAttribs[i][dstIdx * 4 + 0] = defaultAttribs[i][0];
- if (size < 2)
- fetchedAttribs[i][dstIdx * 4 + 1] = defaultAttribs[i][1];
- if (size < 3)
- fetchedAttribs[i][dstIdx * 4 + 2] = defaultAttribs[i][2];
- if (size < 4)
- fetchedAttribs[i][dstIdx * 4 + 3] = defaultAttribs[i][3];
- }
- }
-
- /**
- * fetches and converts vertex data from buffers, defaults and user pointers
- * into MessageData; mainly for display use
- */
- public void glDrawArrays(MessageData msgData) {
- final Message msg = msgData.msg;
- if (!msg.hasArg7())
- return;
- final int maxAttrib = msg.getArg7();
- final int first = msg.getArg1(), count = msg.getArg2();
- msgData.attribs = new float[maxAttrib][count * 4];
- ByteBuffer arrays = null;
- if (msg.hasData()) // server sends user pointer attribs
- {
- arrays = msg.getData().asReadOnlyByteBuffer();
- arrays.order(GLFramesView.TARGET_BYTE_ORDER);
- }
- for (int i = 0; i < count; i++)
- fetch(maxAttrib, first + i, i, arrays, msgData.attribs);
- assert null == arrays || arrays.remaining() == 0;
- }
-
- // void glDrawElements(GLenum mode, GLsizei count, GLenum type, const
- // GLvoid* indices)
- /**
- * fetches and converts vertex data from buffers, defaults and user pointers
- * and indices from buffer/pointer into MessageData; mainly for display use
- */
- public void glDrawElements(MessageData msgData) {
- final Message msg = msgData.msg;
- if (!msg.hasArg7())
- return;
- final int maxAttrib = msg.getArg7();
- final int count = msg.getArg1();
- final GLEnum type = GLEnum.valueOf(msg.getArg2());
- msgData.attribs = new float[maxAttrib][count * 4];
- msgData.indices = new short[count];
- ByteBuffer arrays = null, index = null;
- if (msg.hasData()) // server sends user pointer attribs
- {
- arrays = msg.getData().asReadOnlyByteBuffer();
- arrays.order(GLFramesView.TARGET_BYTE_ORDER);
- }
- if (null == indexBuffer)
- index = arrays; // server also interleaves user pointer indices
- else {
- index = indexBuffer.data;
- index.position(msg.getArg3());
- }
- if (GLEnum.GL_UNSIGNED_SHORT == type) {
- for (int i = 0; i < count; i++) {
- msgData.indices[i] = index.getShort();
- fetch(maxAttrib, msgData.indices[i] & 0xffff, i, arrays, msgData.attribs);
- }
- } else if (GLEnum.GL_UNSIGNED_BYTE == type) {
- for (int i = 0; i < count; i++) {
- msgData.indices[i] = (short) (index.get() & 0xff);
- fetch(maxAttrib, msgData.indices[i], i, arrays, msgData.attribs);
- }
- } else
- assert false;
- assert null == arrays || arrays.remaining() == 0;
- }
-
- // void glEnableVertexAttribArray(GLuint index)
- public void glEnableVertexAttribArray(Message msg) {
- if (msg.getArg0() >= 0 && msg.getArg0() < attribPointers.length)
- attribPointers[msg.getArg0()].enabled = true;
- }
-
- // void API_ENTRY(glGenBuffers)(GLsizei n, GLuint:n:out buffers)
- public void glGenBuffers(Message msg) {
- final int n = msg.getArg0();
- final ByteBuffer buffer = msg.getData().asReadOnlyByteBuffer();
- buffer.order(GLFramesView.TARGET_BYTE_ORDER);
- for (int i = 0; i < n; i++) {
- final int name = buffer.getInt();
- final int index = buffers.indexOfKey(name);
- if (index < 0)
- buffers.append(name, new GLBuffer(name));
- }
- }
-
- // void glVertexAttribPointer(GLuint index, GLint size, GLenum type,
- // GLboolean normalized, GLsizei stride, const GLvoid* ptr)
- public void glVertexAttribPointer(Message msg) {
- GLAttribPointer attrib = attribPointers[msg.getArg0()];
- attrib.size = msg.getArg1();
- attrib.type = GLEnum.valueOf(msg.getArg2());
- attrib.normalized = msg.getArg3() != 0;
- attrib.stride = msg.getArg4();
- attrib.elemSize = attrib.size * typeSize(attrib.type);
- if (attrib.stride == 0)
- attrib.elemStride = attrib.elemSize;
- else
- attrib.elemStride = attrib.stride;
- attrib.ptr = msg.getArg5();
- attrib.buffer = attribBuffer;
- }
-
- // void glVertexAttrib1f(GLuint indx, GLfloat x)
- public void glVertexAttrib1f(Message msg) {
- glVertexAttrib4f(msg.getArg0(), Float.intBitsToFloat(msg.getArg1()),
- 0, 0, 1);
- }
-
- // void glVertexAttrib1fv(GLuint indx, const GLfloat* values)
- public void glVertexAttrib1fv(Message msg) {
- final ByteBuffer values = msg.getData().asReadOnlyByteBuffer();
- values.order(GLFramesView.TARGET_BYTE_ORDER);
- glVertexAttrib4f(msg.getArg0(),
- Float.intBitsToFloat(values.getInt()),
- 0, 0, 1);
- }
-
- // void glVertexAttrib2f(GLuint indx, GLfloat x, GLfloat y)
- public void glVertexAttrib2f(Message msg) {
- glVertexAttrib4f(msg.getArg0(), Float.intBitsToFloat(msg.getArg1()),
- Float.intBitsToFloat(msg.getArg2()), 0, 1);
- }
-
- // void glVertexAttrib2fv(GLuint indx, const GLfloat* values)
- public void glVertexAttrib2fv(Message msg) {
- final ByteBuffer values = msg.getData().asReadOnlyByteBuffer();
- values.order(GLFramesView.TARGET_BYTE_ORDER);
- glVertexAttrib4f(msg.getArg0(),
- Float.intBitsToFloat(values.getInt()),
- Float.intBitsToFloat(values.getInt()), 0, 1);
- }
-
- // void glVertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z)
- public void glVertexAttrib3f(Message msg) {
- glVertexAttrib4f(msg.getArg0(), Float.intBitsToFloat(msg.getArg1()),
- Float.intBitsToFloat(msg.getArg2()),
- Float.intBitsToFloat(msg.getArg3()), 1);
- }
-
- // void glVertexAttrib3fv(GLuint indx, const GLfloat* values)
- public void glVertexAttrib3fv(Message msg) {
- final ByteBuffer values = msg.getData().asReadOnlyByteBuffer();
- values.order(GLFramesView.TARGET_BYTE_ORDER);
- glVertexAttrib4f(msg.getArg0(),
- Float.intBitsToFloat(values.getInt()),
- Float.intBitsToFloat(values.getInt()),
- Float.intBitsToFloat(values.getInt()), 1);
- }
-
- public void glVertexAttrib4f(Message msg) {
- glVertexAttrib4f(msg.getArg0(), Float.intBitsToFloat(msg.getArg1()),
- Float.intBitsToFloat(msg.getArg2()),
- Float.intBitsToFloat(msg.getArg3()),
- Float.intBitsToFloat(msg.getArg4()));
- }
-
- void glVertexAttrib4f(int indx, float x, float y, float z, float w) {
- if (indx < 0 || indx >= defaultAttribs.length)
- return;
- defaultAttribs[indx][0] = x;
- defaultAttribs[indx][1] = y;
- defaultAttribs[indx][2] = z;
- defaultAttribs[indx][3] = w;
- }
-
- // void glVertexAttrib4fv(GLuint indx, const GLfloat* values)
- public void glVertexAttrib4fv(Message msg) {
- final ByteBuffer values = msg.getData().asReadOnlyByteBuffer();
- values.order(GLFramesView.TARGET_BYTE_ORDER);
- glVertexAttrib4f(msg.getArg0(),
- Float.intBitsToFloat(values.getInt()),
- Float.intBitsToFloat(values.getInt()),
- Float.intBitsToFloat(values.getInt()),
- Float.intBitsToFloat(values.getInt()));
- }
-}
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/MessageData.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/MessageData.java
deleted file mode 100644
index c2f0038..0000000
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/MessageData.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- ** Copyright 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.gldebugger;
-
-import com.android.ide.eclipse.gldebugger.DebuggerMessage.Message;
-import com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Function;
-import com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Type;
-
-import org.eclipse.swt.graphics.Device;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.widgets.Display;
-
-public class MessageData {
- public final Message msg;
- private Image image = null; // texture
- public String shader = null; // shader source
- public String text;
- public String[] columns = new String[3];
-
- float[][] attribs = null;
- short[] indices;
-
- public MessageData(final Device device, final Message msg, final Context context) {
- this.msg = msg;
- StringBuilder builder = new StringBuilder();
- final Function function = msg.getFunction();
- if (function != Message.Function.ACK && msg.getType() != Type.BeforeCall)
- assert msg.hasTime();
- builder.append(columns[0] = function.name());
- while (builder.length() < 30)
- builder.append(' ');
- columns[1] = String.format("%.3f", msg.getTime());
- if (msg.hasClock())
- columns[1] += String.format(":%.3f", msg.getClock());
- builder.append(columns[1]);
-
- builder.append(" ");
- builder.append(String.format("0x%08X", msg.getContextId()));
- builder.append(" ");
- columns[2] = "";
- if (msg.getType() == Type.BeforeCall) // incomplete call, client SKIPPED
- columns[2] = "[BeforeCall(AfterCall missing)] ";
- else if (msg.getType() == Type.AfterGeneratedCall)
- columns[2] = "[AfterGeneratedCall] ";
- else
- assert msg.getType() == Type.CompleteCall;
- columns[2] += MessageFormatter.format(msg, false);
- builder.append(columns[2]);
- switch (function) {
- case glDrawArrays:
- if (!msg.hasArg7())
- break;
- context.serverVertex.glDrawArrays(this);
- break;
- case glDrawElements:
- if (!msg.hasArg7())
- break;
- context.serverVertex.glDrawElements(this);
- break;
- case glShaderSource:
- shader = msg.getData().toStringUtf8();
- break;
-
- }
- text = builder.toString();
- }
-
- public Image getImage() {
- if (image != null)
- return image;
- ImageData imageData = null;
- switch (msg.getFunction()) {
- case glTexImage2D:
- if (!msg.hasData())
- return null;
- imageData = MessageProcessor.receiveImage(msg.getArg3(), msg
- .getArg4(), msg.getArg6(), msg.getArg7(), msg.getData());
- return image = new Image(Display.getCurrent(), imageData);
- case glTexSubImage2D:
- assert msg.hasData();
- imageData = MessageProcessor.receiveImage(msg.getArg4(), msg
- .getArg5(), msg.getArg6(), msg.getArg7(), msg.getData());
- return image = new Image(Display.getCurrent(), imageData);
- case glCopyTexImage2D:
- imageData = MessageProcessor.receiveImage(msg.getArg5(), msg.getArg6(),
- msg.getPixelFormat(), msg.getPixelType(), msg.getData());
- imageData = imageData.scaledTo(imageData.width, -imageData.height);
- return image = new Image(Display.getCurrent(), imageData);
- case glCopyTexSubImage2D:
- imageData = MessageProcessor.receiveImage(msg.getArg6(), msg.getArg7(),
- msg.getPixelFormat(), msg.getPixelType(), msg.getData());
- imageData = imageData.scaledTo(imageData.width, -imageData.height);
- return image = new Image(Display.getCurrent(), imageData);
- case glReadPixels:
- if (!msg.hasData())
- return null;
- imageData = MessageProcessor.receiveImage(msg.getArg2(), msg.getArg3(),
- msg.getArg4(), msg.getArg5(), msg.getData());
- imageData = imageData.scaledTo(imageData.width, -imageData.height);
- return image = new Image(Display.getCurrent(), imageData);
- case eglSwapBuffers:
- if (!msg.hasData())
- return null;
- imageData = MessageProcessor.receiveImage(msg.getImageWidth(),
- msg.getImageHeight(), msg.getPixelFormat(), msg.getPixelType(),
- msg.getData());
- imageData = imageData.scaledTo(imageData.width, -imageData.height);
- return image = new Image(Display.getCurrent(), imageData);
- default:
- return null;
- }
- }
-}
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/MessageFormatter.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/MessageFormatter.java
deleted file mode 100644
index 14c7a5a..0000000
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/MessageFormatter.java
+++ /dev/null
@@ -1,1488 +0,0 @@
-/*
- ** Copyright 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.
- */
-
-// auto generated by generate_MessageFormatter_java.py"
-
-package com.android.ide.eclipse.gldebugger;
-
-import java.nio.ByteBuffer;
-
-public class MessageFormatter {
-
- static String formatFloats(int count, final ByteBuffer data) {
- if (data.remaining() == 0)
- return "{}";
- data.order(GLFramesView.TARGET_BYTE_ORDER);
- String ret = "{";
- for (int i = 0; i < count; i++) {
- ret += Float.intBitsToFloat(data.getInt());
- if (i < count - 1)
- ret += ", ";
- }
- return ret + "}";
- }
-
- static String formatInts(int count, final ByteBuffer data) {
- if (data.remaining() == 0)
- return "{}";
- data.order(GLFramesView.TARGET_BYTE_ORDER);
- String ret = "{";
- for (int i = 0; i < count; i++) {
- ret += data.getInt();
- if (i < count - 1)
- ret += ", ";
- }
- return ret + "}";
- }
-
- static String formatUInts(int count, final ByteBuffer data) {
- if (data.remaining() == 0)
- return "{}";
- data.order(GLFramesView.TARGET_BYTE_ORDER);
- String ret = "{";
- for (int i = 0; i < count; i++) {
- long bits = data.getInt() & 0xffffffff;
- ret += bits;
- if (i < count - 1)
- ret += ", ";
- }
- return ret + "}";
- }
-
- static String formatMatrix(int columns, int count, final ByteBuffer data) {
- if (data.remaining() == 0)
- return "{}";
- data.order(GLFramesView.TARGET_BYTE_ORDER);
- String ret = "{";
- for (int i = 0; i < count; i++) {
- ret += Float.intBitsToFloat(data.getInt());
- if (i < count - 1)
- ret += ", ";
- if (i % columns == columns - 1)
- ret += "\n ";
- }
- return ret + "}";
- }
-
- public static String format(final DebuggerMessage.Message msg,
- final boolean code) {
- String str;
- switch (msg.getFunction()) {
- case glActiveTexture:
- str = String.format("%s(%s%s)",
- (code ? "glActiveTexture" : "void")
- , (code ? "/*texture*/ " : "texture=")
- , GLEnum.valueOf(msg.getArg0()));
- break;
- case glAttachShader:
- str = String.format("%s(%s%s, %s%s)",
- (code ? "glAttachShader" : "void")
- , (code ? "/*program*/ " : "program=")
- , (code ? "program_" : "") + msg.getArg0()
- , (code ? "/*shader*/ " : "shader=")
- , (code ? "shader_" : "") + msg.getArg1());
- break;
- case glBindAttribLocation:
- str = String.format("%s(%s%s, %s%s, %s%s)",
- (code ? "glBindAttribLocation" : "void")
- , (code ? "/*program*/ " : "program=")
- , (code ? "program_" : "") + msg.getArg0()
- , (code ? "/*index*/ " : "index=")
- , msg.getArg1()
- , (code ? "/*name*/ " : "name=")
- , (code ? "\"" : "") + msg.getData().toStringUtf8() + (code ? "\"" : ""));
- break;
- case glBindBuffer:
- str = String.format("%s(%s%s, %s%s)",
- (code ? "glBindBuffer" : "void")
- , (code ? "/*target*/ " : "target=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*buffer*/ " : "buffer=")
- , (code ? "buffer_" : "") + msg.getArg1());
- break;
- case glBindFramebuffer:
- str = String.format("%s(%s%s, %s%s)",
- (code ? "glBindFramebuffer" : "void")
- , (code ? "/*target*/ " : "target=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*framebuffer*/ " : "framebuffer=")
- , (code ? "framebuffer_" : "") + msg.getArg1());
- break;
- case glBindRenderbuffer:
- str = String.format("%s(%s%s, %s%s)",
- (code ? "glBindRenderbuffer" : "void")
- , (code ? "/*target*/ " : "target=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*renderbuffer*/ " : "renderbuffer=")
- , (code ? "renderbuffer_" : "") + msg.getArg1());
- break;
- case glBindTexture:
- str = String.format("%s(%s%s, %s%s)",
- (code ? "glBindTexture" : "void")
- , (code ? "/*target*/ " : "target=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*texture*/ " : "texture=")
- , (code ? "texture_" : "") + msg.getArg1());
- break;
- case glBlendColor:
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s)",
- (code ? "glBlendColor" : "void")
- , (code ? "/*red*/ " : "red=")
- , Float.intBitsToFloat(msg.getArg0())
- , (code ? "/*green*/ " : "green=")
- , Float.intBitsToFloat(msg.getArg1())
- , (code ? "/*blue*/ " : "blue=")
- , Float.intBitsToFloat(msg.getArg2())
- , (code ? "/*alpha*/ " : "alpha=")
- , Float.intBitsToFloat(msg.getArg3()));
- break;
- case glBlendEquation:
- str = String.format("%s(%s%s)",
- (code ? "glBlendEquation" : "void")
- , (code ? "/*mode*/ " : "mode=")
- , GLEnum.valueOf(msg.getArg0()));
- break;
- case glBlendEquationSeparate:
- str = String.format("%s(%s%s, %s%s)",
- (code ? "glBlendEquationSeparate" : "void")
- , (code ? "/*modeRGB*/ " : "modeRGB=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*modeAlpha*/ " : "modeAlpha=")
- , GLEnum.valueOf(msg.getArg1()));
- break;
- case glBlendFunc:
- str = String.format("%s(%s%s, %s%s)",
- (code ? "glBlendFunc" : "void")
- , (code ? "/*sfactor*/ " : "sfactor=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*dfactor*/ " : "dfactor=")
- , GLEnum.valueOf(msg.getArg1()));
- break;
- case glBlendFuncSeparate:
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s)",
- (code ? "glBlendFuncSeparate" : "void")
- , (code ? "/*srcRGB*/ " : "srcRGB=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*dstRGB*/ " : "dstRGB=")
- , GLEnum.valueOf(msg.getArg1())
- , (code ? "/*srcAlpha*/ " : "srcAlpha=")
- , GLEnum.valueOf(msg.getArg2())
- , (code ? "/*dstAlpha*/ " : "dstAlpha=")
- , GLEnum.valueOf(msg.getArg3()));
- break;
- case glBufferData:
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s)",
- (code ? "glBufferData" : "void")
- , (code ? "/*target*/ " : "target=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*size*/ " : "size=")
- , msg.getArg1()
- , (code ? "/*data*/ " : "data=")
- , (code ? "arg2" : "0x" + Integer.toHexString(msg.getArg2()))
- , (code ? "/*usage*/ " : "usage=")
- , GLEnum.valueOf(msg.getArg3()));
- break;
- case glBufferSubData:
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s)",
- (code ? "glBufferSubData" : "void")
- , (code ? "/*target*/ " : "target=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*offset*/ " : "offset=")
- , msg.getArg1()
- , (code ? "/*size*/ " : "size=")
- , msg.getArg2()
- , (code ? "/*data*/ " : "data=")
- , (code ? "arg3" : "0x" + Integer.toHexString(msg.getArg3())));
- break;
- case glCheckFramebufferStatus:
- str = String.format("%s(%s%s)",
- (code ? "glCheckFramebufferStatus" : GLEnum.valueOf(msg.getRet()))
- , (code ? "/*target*/ " : "target=")
- , GLEnum.valueOf(msg.getArg0()));
- break;
- case glClear:
- str = String.format("%s(%s%s)",
- (code ? "glClear" : "void")
- , (code ? "/*mask*/ " : "mask=")
- , msg.getArg0());
- break;
- case glClearColor:
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s)",
- (code ? "glClearColor" : "void")
- , (code ? "/*red*/ " : "red=")
- , Float.intBitsToFloat(msg.getArg0())
- , (code ? "/*green*/ " : "green=")
- , Float.intBitsToFloat(msg.getArg1())
- , (code ? "/*blue*/ " : "blue=")
- , Float.intBitsToFloat(msg.getArg2())
- , (code ? "/*alpha*/ " : "alpha=")
- , Float.intBitsToFloat(msg.getArg3()));
- break;
- case glClearDepthf:
- str = String.format("%s(%s%s)",
- (code ? "glClearDepthf" : "void")
- , (code ? "/*depth*/ " : "depth=")
- , Float.intBitsToFloat(msg.getArg0()));
- break;
- case glClearStencil:
- str = String.format("%s(%s%s)",
- (code ? "glClearStencil" : "void")
- , (code ? "/*s*/ " : "s=")
- , msg.getArg0());
- break;
- case glColorMask:
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s)",
- (code ? "glColorMask" : "void")
- , (code ? "/*red*/ " : "red=")
- , msg.getArg0()
- , (code ? "/*green*/ " : "green=")
- , msg.getArg1()
- , (code ? "/*blue*/ " : "blue=")
- , msg.getArg2()
- , (code ? "/*alpha*/ " : "alpha=")
- , msg.getArg3());
- break;
- case glCompileShader:
- str = String.format("%s(%s%s)",
- (code ? "glCompileShader" : "void")
- , (code ? "/*shader*/ " : "shader=")
- , (code ? "shader_" : "") + msg.getArg0());
- break;
- case glCompressedTexImage2D:
- // FIXME: this function uses pointers, debugger may send data in msg.data
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s, %s%s, %s%s, %s%s, %s%s)",
- (code ? "glCompressedTexImage2D" : "void")
- , (code ? "/*target*/ " : "target=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*level*/ " : "level=")
- , msg.getArg1()
- , (code ? "/*internalformat*/ " : "internalformat=")
- , GLEnum.valueOf(msg.getArg2())
- , (code ? "/*width*/ " : "width=")
- , msg.getArg3()
- , (code ? "/*height*/ " : "height=")
- , msg.getArg4()
- , (code ? "/*border*/ " : "border=")
- , msg.getArg5()
- , (code ? "/*imageSize*/ " : "imageSize=")
- , msg.getArg6()
- , (code ? "/*data*/ " : "data=")
- , (code ? "arg7" : "0x" + Integer.toHexString(msg.getArg7())));
- break;
- case glCompressedTexSubImage2D:
- // FIXME: this function uses pointers, debugger may send data in msg.data
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s, %s%s, %s%s, %s%s, %s%s, %s%s)",
- (code ? "glCompressedTexSubImage2D" : "void")
- , (code ? "/*target*/ " : "target=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*level*/ " : "level=")
- , msg.getArg1()
- , (code ? "/*xoffset*/ " : "xoffset=")
- , msg.getArg2()
- , (code ? "/*yoffset*/ " : "yoffset=")
- , msg.getArg3()
- , (code ? "/*width*/ " : "width=")
- , msg.getArg4()
- , (code ? "/*height*/ " : "height=")
- , msg.getArg5()
- , (code ? "/*format*/ " : "format=")
- , GLEnum.valueOf(msg.getArg6())
- , (code ? "/*imageSize*/ " : "imageSize=")
- , msg.getArg7()
- , (code ? "/*data*/ " : "data=")
- , (code ? "arg8" : "0x" + Integer.toHexString(msg.getArg8())));
- break;
- case glCopyTexImage2D:
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s, %s%s, %s%s, %s%s, %s%s)",
- (code ? "glCopyTexImage2D" : "void")
- , (code ? "/*target*/ " : "target=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*level*/ " : "level=")
- , msg.getArg1()
- , (code ? "/*internalformat*/ " : "internalformat=")
- , GLEnum.valueOf(msg.getArg2())
- , (code ? "/*x*/ " : "x=")
- , msg.getArg3()
- , (code ? "/*y*/ " : "y=")
- , msg.getArg4()
- , (code ? "/*width*/ " : "width=")
- , msg.getArg5()
- , (code ? "/*height*/ " : "height=")
- , msg.getArg6()
- , (code ? "/*border*/ " : "border=")
- , msg.getArg7());
- break;
- case glCopyTexSubImage2D:
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s, %s%s, %s%s, %s%s, %s%s)",
- (code ? "glCopyTexSubImage2D" : "void")
- , (code ? "/*target*/ " : "target=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*level*/ " : "level=")
- , msg.getArg1()
- , (code ? "/*xoffset*/ " : "xoffset=")
- , msg.getArg2()
- , (code ? "/*yoffset*/ " : "yoffset=")
- , msg.getArg3()
- , (code ? "/*x*/ " : "x=")
- , msg.getArg4()
- , (code ? "/*y*/ " : "y=")
- , msg.getArg5()
- , (code ? "/*width*/ " : "width=")
- , msg.getArg6()
- , (code ? "/*height*/ " : "height=")
- , msg.getArg7());
- break;
- case glCreateProgram:
- str = String.format("%s()",
- (code ? "glCreateProgram" : msg.getRet())
-);
- break;
- case glCreateShader:
- str = String.format("%s(%s%s)",
- (code ? "glCreateShader" : msg.getRet())
- , (code ? "/*type*/ " : "type=")
- , GLEnum.valueOf(msg.getArg0()));
- break;
- case glCullFace:
- str = String.format("%s(%s%s)",
- (code ? "glCullFace" : "void")
- , (code ? "/*mode*/ " : "mode=")
- , GLEnum.valueOf(msg.getArg0()));
- break;
- case glDeleteBuffers:
- str = String.format("%s(%s%s, %s%s)",
- (code ? "glDeleteBuffers" : "void")
- , (code ? "/*n*/ " : "n=")
- , msg.getArg0()
- , (code ? "/*buffers*/ " : "buffers=")
- , (code ? "(GLuint [])" : "") + formatUInts(1 * msg.getArg0(), msg.getData().asReadOnlyByteBuffer()));
- break;
- case glDeleteFramebuffers:
- str = String.format("%s(%s%s, %s%s)",
- (code ? "glDeleteFramebuffers" : "void")
- , (code ? "/*n*/ " : "n=")
- , msg.getArg0()
- , (code ? "/*framebuffers*/ " : "framebuffers=")
- , (code ? "(GLuint [])" : "") + formatUInts(1 * msg.getArg0(), msg.getData().asReadOnlyByteBuffer()));
- break;
- case glDeleteProgram:
- str = String.format("%s(%s%s)",
- (code ? "glDeleteProgram" : "void")
- , (code ? "/*program*/ " : "program=")
- , (code ? "program_" : "") + msg.getArg0());
- break;
- case glDeleteRenderbuffers:
- str = String.format("%s(%s%s, %s%s)",
- (code ? "glDeleteRenderbuffers" : "void")
- , (code ? "/*n*/ " : "n=")
- , msg.getArg0()
- , (code ? "/*renderbuffers*/ " : "renderbuffers=")
- , (code ? "(GLuint [])" : "") + formatUInts(1 * msg.getArg0(), msg.getData().asReadOnlyByteBuffer()));
- break;
- case glDeleteShader:
- str = String.format("%s(%s%s)",
- (code ? "glDeleteShader" : "void")
- , (code ? "/*shader*/ " : "shader=")
- , (code ? "shader_" : "") + msg.getArg0());
- break;
- case glDeleteTextures:
- str = String.format("%s(%s%s, %s%s)",
- (code ? "glDeleteTextures" : "void")
- , (code ? "/*n*/ " : "n=")
- , msg.getArg0()
- , (code ? "/*textures*/ " : "textures=")
- , (code ? "(GLuint [])" : "") + formatUInts(1 * msg.getArg0(), msg.getData().asReadOnlyByteBuffer()));
- break;
- case glDepthFunc:
- str = String.format("%s(%s%s)",
- (code ? "glDepthFunc" : "void")
- , (code ? "/*func*/ " : "func=")
- , GLEnum.valueOf(msg.getArg0()));
- break;
- case glDepthMask:
- str = String.format("%s(%s%s)",
- (code ? "glDepthMask" : "void")
- , (code ? "/*flag*/ " : "flag=")
- , msg.getArg0());
- break;
- case glDepthRangef:
- str = String.format("%s(%s%s, %s%s)",
- (code ? "glDepthRangef" : "void")
- , (code ? "/*zNear*/ " : "zNear=")
- , Float.intBitsToFloat(msg.getArg0())
- , (code ? "/*zFar*/ " : "zFar=")
- , Float.intBitsToFloat(msg.getArg1()));
- break;
- case glDetachShader:
- str = String.format("%s(%s%s, %s%s)",
- (code ? "glDetachShader" : "void")
- , (code ? "/*program*/ " : "program=")
- , (code ? "program_" : "") + msg.getArg0()
- , (code ? "/*shader*/ " : "shader=")
- , (code ? "shader_" : "") + msg.getArg1());
- break;
- case glDisable:
- str = String.format("%s(%s%s)",
- (code ? "glDisable" : "void")
- , (code ? "/*cap*/ " : "cap=")
- , GLEnum.valueOf(msg.getArg0()));
- break;
- case glDisableVertexAttribArray:
- str = String.format("%s(%s%s)",
- (code ? "glDisableVertexAttribArray" : "void")
- , (code ? "/*index*/ " : "index=")
- , msg.getArg0());
- break;
- case glDrawArrays:
- str = String.format("%s(%s%s, %s%s, %s%s)",
- (code ? "glDrawArrays" : "void")
- , (code ? "/*mode*/ " : "mode=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*first*/ " : "first=")
- , msg.getArg1()
- , (code ? "/*count*/ " : "count=")
- , msg.getArg2());
- break;
- case glDrawElements:
- // FIXME: this function uses pointers, debugger may send data in msg.data
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s)",
- (code ? "glDrawElements" : "void")
- , (code ? "/*mode*/ " : "mode=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*count*/ " : "count=")
- , msg.getArg1()
- , (code ? "/*type*/ " : "type=")
- , GLEnum.valueOf(msg.getArg2())
- , (code ? "/*indices*/ " : "indices=")
- , (code ? "arg3" : "0x" + Integer.toHexString(msg.getArg3())));
- break;
- case glEnable:
- str = String.format("%s(%s%s)",
- (code ? "glEnable" : "void")
- , (code ? "/*cap*/ " : "cap=")
- , GLEnum.valueOf(msg.getArg0()));
- break;
- case glEnableVertexAttribArray:
- str = String.format("%s(%s%s)",
- (code ? "glEnableVertexAttribArray" : "void")
- , (code ? "/*index*/ " : "index=")
- , msg.getArg0());
- break;
- case glFinish:
- str = String.format("%s()",
- (code ? "glFinish" : "void")
-);
- break;
- case glFlush:
- str = String.format("%s()",
- (code ? "glFlush" : "void")
-);
- break;
- case glFramebufferRenderbuffer:
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s)",
- (code ? "glFramebufferRenderbuffer" : "void")
- , (code ? "/*target*/ " : "target=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*attachment*/ " : "attachment=")
- , GLEnum.valueOf(msg.getArg1())
- , (code ? "/*renderbuffertarget*/ " : "renderbuffertarget=")
- , GLEnum.valueOf(msg.getArg2())
- , (code ? "/*renderbuffer*/ " : "renderbuffer=")
- , (code ? "renderbuffer_" : "") + msg.getArg3());
- break;
- case glFramebufferTexture2D:
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s, %s%s)",
- (code ? "glFramebufferTexture2D" : "void")
- , (code ? "/*target*/ " : "target=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*attachment*/ " : "attachment=")
- , GLEnum.valueOf(msg.getArg1())
- , (code ? "/*textarget*/ " : "textarget=")
- , GLEnum.valueOf(msg.getArg2())
- , (code ? "/*texture*/ " : "texture=")
- , (code ? "texture_" : "") + msg.getArg3()
- , (code ? "/*level*/ " : "level=")
- , msg.getArg4());
- break;
- case glFrontFace:
- str = String.format("%s(%s%s)",
- (code ? "glFrontFace" : "void")
- , (code ? "/*mode*/ " : "mode=")
- , GLEnum.valueOf(msg.getArg0()));
- break;
- case glGenBuffers:
- str = String.format("%s(%s%s, %s%s)",
- (code ? "glGenBuffers" : "void")
- , (code ? "/*n*/ " : "n=")
- , msg.getArg0()
- , (code ? "/*buffers*/ " : "buffers=")
- , (code ? "(GLuint [])" : "") + formatUInts(1 * msg.getArg0(), msg.getData().asReadOnlyByteBuffer()));
- break;
- case glGenerateMipmap:
- str = String.format("%s(%s%s)",
- (code ? "glGenerateMipmap" : "void")
- , (code ? "/*target*/ " : "target=")
- , GLEnum.valueOf(msg.getArg0()));
- break;
- case glGenFramebuffers:
- str = String.format("%s(%s%s, %s%s)",
- (code ? "glGenFramebuffers" : "void")
- , (code ? "/*n*/ " : "n=")
- , msg.getArg0()
- , (code ? "/*framebuffers*/ " : "framebuffers=")
- , (code ? "(GLuint [])" : "") + formatUInts(1 * msg.getArg0(), msg.getData().asReadOnlyByteBuffer()));
- break;
- case glGenRenderbuffers:
- str = String.format("%s(%s%s, %s%s)",
- (code ? "glGenRenderbuffers" : "void")
- , (code ? "/*n*/ " : "n=")
- , msg.getArg0()
- , (code ? "/*renderbuffers*/ " : "renderbuffers=")
- , (code ? "(GLuint [])" : "") + formatUInts(1 * msg.getArg0(), msg.getData().asReadOnlyByteBuffer()));
- break;
- case glGenTextures:
- str = String.format("%s(%s%s, %s%s)",
- (code ? "glGenTextures" : "void")
- , (code ? "/*n*/ " : "n=")
- , msg.getArg0()
- , (code ? "/*textures*/ " : "textures=")
- , (code ? "(GLuint [])" : "") + formatUInts(1 * msg.getArg0(), msg.getData().asReadOnlyByteBuffer()));
- break;
- case glGetActiveAttrib:
- // FIXME: this function uses pointers, debugger may send data in msg.data
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s, %s%s, %s%s, %s%s)",
- (code ? "glGetActiveAttrib" : "void")
- , (code ? "/*program*/ " : "program=")
- , (code ? "program_" : "") + msg.getArg0()
- , (code ? "/*index*/ " : "index=")
- , msg.getArg1()
- , (code ? "/*bufsize*/ " : "bufsize=")
- , msg.getArg2()
- , (code ? "/*length*/ " : "length=")
- , (code ? "arg3" : "0x" + Integer.toHexString(msg.getArg3()))
- , (code ? "/*size*/ " : "size=")
- , (code ? "arg4" : "0x" + Integer.toHexString(msg.getArg4()))
- , (code ? "/*type*/ " : "type=")
- , (code ? "arg5" : "0x" + Integer.toHexString(msg.getArg5()))
- , (code ? "/*name*/ " : "name=")
- , (code ? "\"" : "") + msg.getData().toStringUtf8() + (code ? "\"" : ""));
- break;
- case glGetActiveUniform:
- // FIXME: this function uses pointers, debugger may send data in msg.data
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s, %s%s, %s%s, %s%s)",
- (code ? "glGetActiveUniform" : "void")
- , (code ? "/*program*/ " : "program=")
- , (code ? "program_" : "") + msg.getArg0()
- , (code ? "/*index*/ " : "index=")
- , msg.getArg1()
- , (code ? "/*bufsize*/ " : "bufsize=")
- , msg.getArg2()
- , (code ? "/*length*/ " : "length=")
- , (code ? "arg3" : "0x" + Integer.toHexString(msg.getArg3()))
- , (code ? "/*size*/ " : "size=")
- , (code ? "arg4" : "0x" + Integer.toHexString(msg.getArg4()))
- , (code ? "/*type*/ " : "type=")
- , (code ? "arg5" : "0x" + Integer.toHexString(msg.getArg5()))
- , (code ? "/*name*/ " : "name=")
- , (code ? "\"" : "") + msg.getData().toStringUtf8() + (code ? "\"" : ""));
- break;
- case glGetAttachedShaders:
- // FIXME: this function uses pointers, debugger may send data in msg.data
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s)",
- (code ? "glGetAttachedShaders" : "void")
- , (code ? "/*program*/ " : "program=")
- , (code ? "program_" : "") + msg.getArg0()
- , (code ? "/*maxcount*/ " : "maxcount=")
- , msg.getArg1()
- , (code ? "/*count*/ " : "count=")
- , (code ? "arg2" : "0x" + Integer.toHexString(msg.getArg2()))
- , (code ? "/*shaders*/ " : "shaders=")
- , (code ? "arg3" : "0x" + Integer.toHexString(msg.getArg3())));
- break;
- case glGetAttribLocation:
- str = String.format("%s(%s%s, %s%s)",
- (code ? "glGetAttribLocation" : msg.getRet())
- , (code ? "/*program*/ " : "program=")
- , (code ? "program_" : "") + msg.getArg0()
- , (code ? "/*name*/ " : "name=")
- , (code ? "\"" : "") + msg.getData().toStringUtf8() + (code ? "\"" : ""));
- break;
- case glGetBooleanv:
- // FIXME: this function uses pointers, debugger may send data in msg.data
- str = String.format("%s(%s%s, %s%s)",
- (code ? "glGetBooleanv" : "void")
- , (code ? "/*pname*/ " : "pname=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*params*/ " : "params=")
- , (code ? "arg1" : "0x" + Integer.toHexString(msg.getArg1())));
- break;
- case glGetBufferParameteriv:
- // FIXME: this function uses pointers, debugger may send data in msg.data
- str = String.format("%s(%s%s, %s%s, %s%s)",
- (code ? "glGetBufferParameteriv" : "void")
- , (code ? "/*target*/ " : "target=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*pname*/ " : "pname=")
- , GLEnum.valueOf(msg.getArg1())
- , (code ? "/*params*/ " : "params=")
- , (code ? "arg2" : "0x" + Integer.toHexString(msg.getArg2())));
- break;
- case glGetError:
- str = String.format("%s()",
- (code ? "glGetError" : GLEnum.valueOf(msg.getRet()))
-);
- break;
- case glGetFloatv:
- // FIXME: this function uses pointers, debugger may send data in msg.data
- str = String.format("%s(%s%s, %s%s)",
- (code ? "glGetFloatv" : "void")
- , (code ? "/*pname*/ " : "pname=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*params*/ " : "params=")
- , (code ? "arg1" : "0x" + Integer.toHexString(msg.getArg1())));
- break;
- case glGetFramebufferAttachmentParameteriv:
- // FIXME: this function uses pointers, debugger may send data in msg.data
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s)",
- (code ? "glGetFramebufferAttachmentParameteriv" : "void")
- , (code ? "/*target*/ " : "target=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*attachment*/ " : "attachment=")
- , GLEnum.valueOf(msg.getArg1())
- , (code ? "/*pname*/ " : "pname=")
- , GLEnum.valueOf(msg.getArg2())
- , (code ? "/*params*/ " : "params=")
- , (code ? "arg3" : "0x" + Integer.toHexString(msg.getArg3())));
- break;
- case glGetIntegerv:
- // FIXME: this function uses pointers, debugger may send data in msg.data
- str = String.format("%s(%s%s, %s%s)",
- (code ? "glGetIntegerv" : "void")
- , (code ? "/*pname*/ " : "pname=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*params*/ " : "params=")
- , (code ? "arg1" : "0x" + Integer.toHexString(msg.getArg1())));
- break;
- case glGetProgramiv:
- str = String.format("%s(%s%s, %s%s, %s%s)",
- (code ? "glGetProgramiv" : "void")
- , (code ? "/*program*/ " : "program=")
- , (code ? "program_" : "") + msg.getArg0()
- , (code ? "/*pname*/ " : "pname=")
- , GLEnum.valueOf(msg.getArg1())
- , (code ? "/*params*/ " : "params=")
- , (code ? "(GLint [])" : "") + formatInts(1, msg.getData().asReadOnlyByteBuffer()));
- break;
- case glGetProgramInfoLog:
- // FIXME: this function uses pointers, debugger may send data in msg.data
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s)",
- (code ? "glGetProgramInfoLog" : "void")
- , (code ? "/*program*/ " : "program=")
- , (code ? "program_" : "") + msg.getArg0()
- , (code ? "/*bufsize*/ " : "bufsize=")
- , msg.getArg1()
- , (code ? "/*length*/ " : "length=")
- , (code ? "arg2" : "0x" + Integer.toHexString(msg.getArg2()))
- , (code ? "/*infolog*/ " : "infolog=")
- , (code ? "\"" : "") + msg.getData().toStringUtf8() + (code ? "\"" : ""));
- break;
- case glGetRenderbufferParameteriv:
- // FIXME: this function uses pointers, debugger may send data in msg.data
- str = String.format("%s(%s%s, %s%s, %s%s)",
- (code ? "glGetRenderbufferParameteriv" : "void")
- , (code ? "/*target*/ " : "target=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*pname*/ " : "pname=")
- , GLEnum.valueOf(msg.getArg1())
- , (code ? "/*params*/ " : "params=")
- , (code ? "arg2" : "0x" + Integer.toHexString(msg.getArg2())));
- break;
- case glGetShaderiv:
- str = String.format("%s(%s%s, %s%s, %s%s)",
- (code ? "glGetShaderiv" : "void")
- , (code ? "/*shader*/ " : "shader=")
- , (code ? "shader_" : "") + msg.getArg0()
- , (code ? "/*pname*/ " : "pname=")
- , GLEnum.valueOf(msg.getArg1())
- , (code ? "/*params*/ " : "params=")
- , (code ? "(GLint [])" : "") + formatInts(1, msg.getData().asReadOnlyByteBuffer()));
- break;
- case glGetShaderInfoLog:
- // FIXME: this function uses pointers, debugger may send data in msg.data
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s)",
- (code ? "glGetShaderInfoLog" : "void")
- , (code ? "/*shader*/ " : "shader=")
- , (code ? "shader_" : "") + msg.getArg0()
- , (code ? "/*bufsize*/ " : "bufsize=")
- , msg.getArg1()
- , (code ? "/*length*/ " : "length=")
- , (code ? "arg2" : "0x" + Integer.toHexString(msg.getArg2()))
- , (code ? "/*infolog*/ " : "infolog=")
- , (code ? "\"" : "") + msg.getData().toStringUtf8() + (code ? "\"" : ""));
- break;
- case glGetShaderPrecisionFormat:
- // FIXME: this function uses pointers, debugger may send data in msg.data
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s)",
- (code ? "glGetShaderPrecisionFormat" : "void")
- , (code ? "/*shadertype*/ " : "shadertype=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*precisiontype*/ " : "precisiontype=")
- , GLEnum.valueOf(msg.getArg1())
- , (code ? "/*range*/ " : "range=")
- , (code ? "arg2" : "0x" + Integer.toHexString(msg.getArg2()))
- , (code ? "/*precision*/ " : "precision=")
- , (code ? "arg3" : "0x" + Integer.toHexString(msg.getArg3())));
- break;
- case glGetShaderSource:
- // FIXME: this function uses pointers, debugger may send data in msg.data
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s)",
- (code ? "glGetShaderSource" : "void")
- , (code ? "/*shader*/ " : "shader=")
- , (code ? "shader_" : "") + msg.getArg0()
- , (code ? "/*bufsize*/ " : "bufsize=")
- , msg.getArg1()
- , (code ? "/*length*/ " : "length=")
- , (code ? "arg2" : "0x" + Integer.toHexString(msg.getArg2()))
- , (code ? "/*source*/ " : "source=")
- , (code ? "\"" : "") + msg.getData().toStringUtf8() + (code ? "\"" : ""));
- break;
- case glGetString:
- // FIXME: this function uses pointers, debugger may send data in msg.data
- str = String.format("%s(%s%s)",
- (code ? "glGetString" : "0x" + Integer.toHexString(msg.getRet()))
- , (code ? "/*name*/ " : "name=")
- , GLEnum.valueOf(msg.getArg0()));
- break;
- case glGetTexParameterfv:
- // FIXME: this function uses pointers, debugger may send data in msg.data
- str = String.format("%s(%s%s, %s%s, %s%s)",
- (code ? "glGetTexParameterfv" : "void")
- , (code ? "/*target*/ " : "target=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*pname*/ " : "pname=")
- , GLEnum.valueOf(msg.getArg1())
- , (code ? "/*params*/ " : "params=")
- , (code ? "arg2" : "0x" + Integer.toHexString(msg.getArg2())));
- break;
- case glGetTexParameteriv:
- // FIXME: this function uses pointers, debugger may send data in msg.data
- str = String.format("%s(%s%s, %s%s, %s%s)",
- (code ? "glGetTexParameteriv" : "void")
- , (code ? "/*target*/ " : "target=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*pname*/ " : "pname=")
- , GLEnum.valueOf(msg.getArg1())
- , (code ? "/*params*/ " : "params=")
- , (code ? "arg2" : "0x" + Integer.toHexString(msg.getArg2())));
- break;
- case glGetUniformfv:
- // FIXME: this function uses pointers, debugger may send data in msg.data
- str = String.format("%s(%s%s, %s%s, %s%s)",
- (code ? "glGetUniformfv" : "void")
- , (code ? "/*program*/ " : "program=")
- , (code ? "program_" : "") + msg.getArg0()
- , (code ? "/*location*/ " : "location=")
- , msg.getArg1()
- , (code ? "/*params*/ " : "params=")
- , (code ? "arg2" : "0x" + Integer.toHexString(msg.getArg2())));
- break;
- case glGetUniformiv:
- // FIXME: this function uses pointers, debugger may send data in msg.data
- str = String.format("%s(%s%s, %s%s, %s%s)",
- (code ? "glGetUniformiv" : "void")
- , (code ? "/*program*/ " : "program=")
- , (code ? "program_" : "") + msg.getArg0()
- , (code ? "/*location*/ " : "location=")
- , msg.getArg1()
- , (code ? "/*params*/ " : "params=")
- , (code ? "arg2" : "0x" + Integer.toHexString(msg.getArg2())));
- break;
- case glGetUniformLocation:
- str = String.format("%s(%s%s, %s%s)",
- (code ? "glGetUniformLocation" : msg.getRet())
- , (code ? "/*program*/ " : "program=")
- , (code ? "program_" : "") + msg.getArg0()
- , (code ? "/*name*/ " : "name=")
- , (code ? "\"" : "") + msg.getData().toStringUtf8() + (code ? "\"" : ""));
- break;
- case glGetVertexAttribfv:
- // FIXME: this function uses pointers, debugger may send data in msg.data
- str = String.format("%s(%s%s, %s%s, %s%s)",
- (code ? "glGetVertexAttribfv" : "void")
- , (code ? "/*index*/ " : "index=")
- , msg.getArg0()
- , (code ? "/*pname*/ " : "pname=")
- , GLEnum.valueOf(msg.getArg1())
- , (code ? "/*params*/ " : "params=")
- , (code ? "arg2" : "0x" + Integer.toHexString(msg.getArg2())));
- break;
- case glGetVertexAttribiv:
- // FIXME: this function uses pointers, debugger may send data in msg.data
- str = String.format("%s(%s%s, %s%s, %s%s)",
- (code ? "glGetVertexAttribiv" : "void")
- , (code ? "/*index*/ " : "index=")
- , msg.getArg0()
- , (code ? "/*pname*/ " : "pname=")
- , GLEnum.valueOf(msg.getArg1())
- , (code ? "/*params*/ " : "params=")
- , (code ? "arg2" : "0x" + Integer.toHexString(msg.getArg2())));
- break;
- case glGetVertexAttribPointerv:
- // FIXME: this function uses pointers, debugger may send data in msg.data
- str = String.format("%s(%s%s, %s%s, %s%s)",
- (code ? "glGetVertexAttribPointerv" : "void")
- , (code ? "/*index*/ " : "index=")
- , msg.getArg0()
- , (code ? "/*pname*/ " : "pname=")
- , GLEnum.valueOf(msg.getArg1())
- , (code ? "/*pointer*/ " : "pointer=")
- , (code ? "arg2" : "0x" + Integer.toHexString(msg.getArg2())));
- break;
- case glHint:
- str = String.format("%s(%s%s, %s%s)",
- (code ? "glHint" : "void")
- , (code ? "/*target*/ " : "target=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*mode*/ " : "mode=")
- , GLEnum.valueOf(msg.getArg1()));
- break;
- case glIsBuffer:
- str = String.format("%s(%s%s)",
- (code ? "glIsBuffer" : msg.getRet())
- , (code ? "/*buffer*/ " : "buffer=")
- , (code ? "buffer_" : "") + msg.getArg0());
- break;
- case glIsEnabled:
- str = String.format("%s(%s%s)",
- (code ? "glIsEnabled" : msg.getRet())
- , (code ? "/*cap*/ " : "cap=")
- , GLEnum.valueOf(msg.getArg0()));
- break;
- case glIsFramebuffer:
- str = String.format("%s(%s%s)",
- (code ? "glIsFramebuffer" : msg.getRet())
- , (code ? "/*framebuffer*/ " : "framebuffer=")
- , (code ? "framebuffer_" : "") + msg.getArg0());
- break;
- case glIsProgram:
- str = String.format("%s(%s%s)",
- (code ? "glIsProgram" : msg.getRet())
- , (code ? "/*program*/ " : "program=")
- , (code ? "program_" : "") + msg.getArg0());
- break;
- case glIsRenderbuffer:
- str = String.format("%s(%s%s)",
- (code ? "glIsRenderbuffer" : msg.getRet())
- , (code ? "/*renderbuffer*/ " : "renderbuffer=")
- , (code ? "renderbuffer_" : "") + msg.getArg0());
- break;
- case glIsShader:
- str = String.format("%s(%s%s)",
- (code ? "glIsShader" : msg.getRet())
- , (code ? "/*shader*/ " : "shader=")
- , (code ? "shader_" : "") + msg.getArg0());
- break;
- case glIsTexture:
- str = String.format("%s(%s%s)",
- (code ? "glIsTexture" : msg.getRet())
- , (code ? "/*texture*/ " : "texture=")
- , (code ? "texture_" : "") + msg.getArg0());
- break;
- case glLineWidth:
- str = String.format("%s(%s%s)",
- (code ? "glLineWidth" : "void")
- , (code ? "/*width*/ " : "width=")
- , Float.intBitsToFloat(msg.getArg0()));
- break;
- case glLinkProgram:
- str = String.format("%s(%s%s)",
- (code ? "glLinkProgram" : "void")
- , (code ? "/*program*/ " : "program=")
- , (code ? "program_" : "") + msg.getArg0());
- break;
- case glPixelStorei:
- str = String.format("%s(%s%s, %s%s)",
- (code ? "glPixelStorei" : "void")
- , (code ? "/*pname*/ " : "pname=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*param*/ " : "param=")
- , msg.getArg1());
- break;
- case glPolygonOffset:
- str = String.format("%s(%s%s, %s%s)",
- (code ? "glPolygonOffset" : "void")
- , (code ? "/*factor*/ " : "factor=")
- , Float.intBitsToFloat(msg.getArg0())
- , (code ? "/*units*/ " : "units=")
- , Float.intBitsToFloat(msg.getArg1()));
- break;
- case glReadPixels:
- // FIXME: this function uses pointers, debugger may send data in msg.data
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s, %s%s, %s%s, %s%s)",
- (code ? "glReadPixels" : "void")
- , (code ? "/*x*/ " : "x=")
- , msg.getArg0()
- , (code ? "/*y*/ " : "y=")
- , msg.getArg1()
- , (code ? "/*width*/ " : "width=")
- , msg.getArg2()
- , (code ? "/*height*/ " : "height=")
- , msg.getArg3()
- , (code ? "/*format*/ " : "format=")
- , GLEnum.valueOf(msg.getArg4())
- , (code ? "/*type*/ " : "type=")
- , GLEnum.valueOf(msg.getArg5())
- , (code ? "/*pixels*/ " : "pixels=")
- , (code ? "arg6" : "0x" + Integer.toHexString(msg.getArg6())));
- break;
- case glReleaseShaderCompiler:
- str = String.format("%s()",
- (code ? "glReleaseShaderCompiler" : "void")
-);
- break;
- case glRenderbufferStorage:
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s)",
- (code ? "glRenderbufferStorage" : "void")
- , (code ? "/*target*/ " : "target=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*internalformat*/ " : "internalformat=")
- , GLEnum.valueOf(msg.getArg1())
- , (code ? "/*width*/ " : "width=")
- , msg.getArg2()
- , (code ? "/*height*/ " : "height=")
- , msg.getArg3());
- break;
- case glSampleCoverage:
- str = String.format("%s(%s%s, %s%s)",
- (code ? "glSampleCoverage" : "void")
- , (code ? "/*value*/ " : "value=")
- , Float.intBitsToFloat(msg.getArg0())
- , (code ? "/*invert*/ " : "invert=")
- , msg.getArg1());
- break;
- case glScissor:
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s)",
- (code ? "glScissor" : "void")
- , (code ? "/*x*/ " : "x=")
- , msg.getArg0()
- , (code ? "/*y*/ " : "y=")
- , msg.getArg1()
- , (code ? "/*width*/ " : "width=")
- , msg.getArg2()
- , (code ? "/*height*/ " : "height=")
- , msg.getArg3());
- break;
- case glShaderBinary:
- // FIXME: this function uses pointers, debugger may send data in msg.data
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s, %s%s)",
- (code ? "glShaderBinary" : "void")
- , (code ? "/*n*/ " : "n=")
- , msg.getArg0()
- , (code ? "/*shaders*/ " : "shaders=")
- , (code ? "arg1" : "0x" + Integer.toHexString(msg.getArg1()))
- , (code ? "/*binaryformat*/ " : "binaryformat=")
- , GLEnum.valueOf(msg.getArg2())
- , (code ? "/*binary*/ " : "binary=")
- , (code ? "arg3" : "0x" + Integer.toHexString(msg.getArg3()))
- , (code ? "/*length*/ " : "length=")
- , msg.getArg4());
- break;
- case glShaderSource:
- // FIXME: this function uses pointers, debugger may send data in msg.data
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s)",
- (code ? "glShaderSource" : "void")
- , (code ? "/*shader*/ " : "shader=")
- , (code ? "shader_" : "") + msg.getArg0()
- , (code ? "/*count*/ " : "count=")
- , msg.getArg1()
- , (code ? "/*string*/ " : "string=")
- , (code ? "arg2" : "0x" + Integer.toHexString(msg.getArg2()))
- , (code ? "/*length*/ " : "length=")
- , (code ? "arg3" : "0x" + Integer.toHexString(msg.getArg3())));
- break;
- case glStencilFunc:
- str = String.format("%s(%s%s, %s%s, %s%s)",
- (code ? "glStencilFunc" : "void")
- , (code ? "/*func*/ " : "func=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*ref*/ " : "ref=")
- , msg.getArg1()
- , (code ? "/*mask*/ " : "mask=")
- , msg.getArg2());
- break;
- case glStencilFuncSeparate:
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s)",
- (code ? "glStencilFuncSeparate" : "void")
- , (code ? "/*face*/ " : "face=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*func*/ " : "func=")
- , GLEnum.valueOf(msg.getArg1())
- , (code ? "/*ref*/ " : "ref=")
- , msg.getArg2()
- , (code ? "/*mask*/ " : "mask=")
- , msg.getArg3());
- break;
- case glStencilMask:
- str = String.format("%s(%s%s)",
- (code ? "glStencilMask" : "void")
- , (code ? "/*mask*/ " : "mask=")
- , msg.getArg0());
- break;
- case glStencilMaskSeparate:
- str = String.format("%s(%s%s, %s%s)",
- (code ? "glStencilMaskSeparate" : "void")
- , (code ? "/*face*/ " : "face=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*mask*/ " : "mask=")
- , msg.getArg1());
- break;
- case glStencilOp:
- str = String.format("%s(%s%s, %s%s, %s%s)",
- (code ? "glStencilOp" : "void")
- , (code ? "/*fail*/ " : "fail=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*zfail*/ " : "zfail=")
- , GLEnum.valueOf(msg.getArg1())
- , (code ? "/*zpass*/ " : "zpass=")
- , GLEnum.valueOf(msg.getArg2()));
- break;
- case glStencilOpSeparate:
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s)",
- (code ? "glStencilOpSeparate" : "void")
- , (code ? "/*face*/ " : "face=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*fail*/ " : "fail=")
- , GLEnum.valueOf(msg.getArg1())
- , (code ? "/*zfail*/ " : "zfail=")
- , GLEnum.valueOf(msg.getArg2())
- , (code ? "/*zpass*/ " : "zpass=")
- , GLEnum.valueOf(msg.getArg3()));
- break;
- case glTexImage2D:
- // FIXME: this function uses pointers, debugger may send data in msg.data
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s, %s%s, %s%s, %s%s, %s%s, %s%s)",
- (code ? "glTexImage2D" : "void")
- , (code ? "/*target*/ " : "target=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*level*/ " : "level=")
- , msg.getArg1()
- , (code ? "/*internalformat*/ " : "internalformat=")
- , msg.getArg2()
- , (code ? "/*width*/ " : "width=")
- , msg.getArg3()
- , (code ? "/*height*/ " : "height=")
- , msg.getArg4()
- , (code ? "/*border*/ " : "border=")
- , msg.getArg5()
- , (code ? "/*format*/ " : "format=")
- , GLEnum.valueOf(msg.getArg6())
- , (code ? "/*type*/ " : "type=")
- , GLEnum.valueOf(msg.getArg7())
- , (code ? "/*pixels*/ " : "pixels=")
- , (code ? "arg8" : "0x" + Integer.toHexString(msg.getArg8())));
- break;
- case glTexParameterf:
- str = String.format("%s(%s%s, %s%s, %s%s)",
- (code ? "glTexParameterf" : "void")
- , (code ? "/*target*/ " : "target=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*pname*/ " : "pname=")
- , GLEnum.valueOf(msg.getArg1())
- , (code ? "/*param*/ " : "param=")
- , Float.intBitsToFloat(msg.getArg2()));
- break;
- case glTexParameterfv:
- // FIXME: this function uses pointers, debugger may send data in msg.data
- str = String.format("%s(%s%s, %s%s, %s%s)",
- (code ? "glTexParameterfv" : "void")
- , (code ? "/*target*/ " : "target=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*pname*/ " : "pname=")
- , GLEnum.valueOf(msg.getArg1())
- , (code ? "/*params*/ " : "params=")
- , (code ? "arg2" : "0x" + Integer.toHexString(msg.getArg2())));
- break;
- case glTexParameteri:
- str = String.format("%s(%s%s, %s%s, %s%s)",
- (code ? "glTexParameteri" : "void")
- , (code ? "/*target*/ " : "target=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*pname*/ " : "pname=")
- , GLEnum.valueOf(msg.getArg1())
- , (code ? "/*param*/ " : "param=")
- , msg.getArg2());
- break;
- case glTexParameteriv:
- // FIXME: this function uses pointers, debugger may send data in msg.data
- str = String.format("%s(%s%s, %s%s, %s%s)",
- (code ? "glTexParameteriv" : "void")
- , (code ? "/*target*/ " : "target=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*pname*/ " : "pname=")
- , GLEnum.valueOf(msg.getArg1())
- , (code ? "/*params*/ " : "params=")
- , (code ? "arg2" : "0x" + Integer.toHexString(msg.getArg2())));
- break;
- case glTexSubImage2D:
- // FIXME: this function uses pointers, debugger may send data in msg.data
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s, %s%s, %s%s, %s%s, %s%s, %s%s)",
- (code ? "glTexSubImage2D" : "void")
- , (code ? "/*target*/ " : "target=")
- , GLEnum.valueOf(msg.getArg0())
- , (code ? "/*level*/ " : "level=")
- , msg.getArg1()
- , (code ? "/*xoffset*/ " : "xoffset=")
- , msg.getArg2()
- , (code ? "/*yoffset*/ " : "yoffset=")
- , msg.getArg3()
- , (code ? "/*width*/ " : "width=")
- , msg.getArg4()
- , (code ? "/*height*/ " : "height=")
- , msg.getArg5()
- , (code ? "/*format*/ " : "format=")
- , GLEnum.valueOf(msg.getArg6())
- , (code ? "/*type*/ " : "type=")
- , GLEnum.valueOf(msg.getArg7())
- , (code ? "/*pixels*/ " : "pixels=")
- , (code ? "arg8" : "0x" + Integer.toHexString(msg.getArg8())));
- break;
- case glUniform1f:
- str = String.format("%s(%s%s, %s%s)",
- (code ? "glUniform1f" : "void")
- , (code ? "/*location*/ " : "location=")
- , msg.getArg0()
- , (code ? "/*x*/ " : "x=")
- , Float.intBitsToFloat(msg.getArg1()));
- break;
- case glUniform1fv:
- str = String.format("%s(%s%s, %s%s, %s%s)",
- (code ? "glUniform1fv" : "void")
- , (code ? "/*location*/ " : "location=")
- , msg.getArg0()
- , (code ? "/*count*/ " : "count=")
- , msg.getArg1()
- , (code ? "/*v*/ " : "v=")
- , (code ? "(GLfloat [])" : "") + formatFloats(1 * msg.getArg1(), msg.getData().asReadOnlyByteBuffer()));
- break;
- case glUniform1i:
- str = String.format("%s(%s%s, %s%s)",
- (code ? "glUniform1i" : "void")
- , (code ? "/*location*/ " : "location=")
- , msg.getArg0()
- , (code ? "/*x*/ " : "x=")
- , msg.getArg1());
- break;
- case glUniform1iv:
- str = String.format("%s(%s%s, %s%s, %s%s)",
- (code ? "glUniform1iv" : "void")
- , (code ? "/*location*/ " : "location=")
- , msg.getArg0()
- , (code ? "/*count*/ " : "count=")
- , msg.getArg1()
- , (code ? "/*v*/ " : "v=")
- , (code ? "(GLint [])" : "") + formatInts(1 * msg.getArg1(), msg.getData().asReadOnlyByteBuffer()));
- break;
- case glUniform2f:
- str = String.format("%s(%s%s, %s%s, %s%s)",
- (code ? "glUniform2f" : "void")
- , (code ? "/*location*/ " : "location=")
- , msg.getArg0()
- , (code ? "/*x*/ " : "x=")
- , Float.intBitsToFloat(msg.getArg1())
- , (code ? "/*y*/ " : "y=")
- , Float.intBitsToFloat(msg.getArg2()));
- break;
- case glUniform2fv:
- str = String.format("%s(%s%s, %s%s, %s%s)",
- (code ? "glUniform2fv" : "void")
- , (code ? "/*location*/ " : "location=")
- , msg.getArg0()
- , (code ? "/*count*/ " : "count=")
- , msg.getArg1()
- , (code ? "/*v*/ " : "v=")
- , (code ? "(GLfloat [])" : "") + formatFloats(2 * msg.getArg1(), msg.getData().asReadOnlyByteBuffer()));
- break;
- case glUniform2i:
- str = String.format("%s(%s%s, %s%s, %s%s)",
- (code ? "glUniform2i" : "void")
- , (code ? "/*location*/ " : "location=")
- , msg.getArg0()
- , (code ? "/*x*/ " : "x=")
- , msg.getArg1()
- , (code ? "/*y*/ " : "y=")
- , msg.getArg2());
- break;
- case glUniform2iv:
- str = String.format("%s(%s%s, %s%s, %s%s)",
- (code ? "glUniform2iv" : "void")
- , (code ? "/*location*/ " : "location=")
- , msg.getArg0()
- , (code ? "/*count*/ " : "count=")
- , msg.getArg1()
- , (code ? "/*v*/ " : "v=")
- , (code ? "(GLint [])" : "") + formatInts(2 * msg.getArg1(), msg.getData().asReadOnlyByteBuffer()));
- break;
- case glUniform3f:
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s)",
- (code ? "glUniform3f" : "void")
- , (code ? "/*location*/ " : "location=")
- , msg.getArg0()
- , (code ? "/*x*/ " : "x=")
- , Float.intBitsToFloat(msg.getArg1())
- , (code ? "/*y*/ " : "y=")
- , Float.intBitsToFloat(msg.getArg2())
- , (code ? "/*z*/ " : "z=")
- , Float.intBitsToFloat(msg.getArg3()));
- break;
- case glUniform3fv:
- str = String.format("%s(%s%s, %s%s, %s%s)",
- (code ? "glUniform3fv" : "void")
- , (code ? "/*location*/ " : "location=")
- , msg.getArg0()
- , (code ? "/*count*/ " : "count=")
- , msg.getArg1()
- , (code ? "/*v*/ " : "v=")
- , (code ? "(GLfloat [])" : "") + formatFloats(3 * msg.getArg1(), msg.getData().asReadOnlyByteBuffer()));
- break;
- case glUniform3i:
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s)",
- (code ? "glUniform3i" : "void")
- , (code ? "/*location*/ " : "location=")
- , msg.getArg0()
- , (code ? "/*x*/ " : "x=")
- , msg.getArg1()
- , (code ? "/*y*/ " : "y=")
- , msg.getArg2()
- , (code ? "/*z*/ " : "z=")
- , msg.getArg3());
- break;
- case glUniform3iv:
- str = String.format("%s(%s%s, %s%s, %s%s)",
- (code ? "glUniform3iv" : "void")
- , (code ? "/*location*/ " : "location=")
- , msg.getArg0()
- , (code ? "/*count*/ " : "count=")
- , msg.getArg1()
- , (code ? "/*v*/ " : "v=")
- , (code ? "(GLint [])" : "") + formatInts(3 * msg.getArg1(), msg.getData().asReadOnlyByteBuffer()));
- break;
- case glUniform4f:
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s, %s%s)",
- (code ? "glUniform4f" : "void")
- , (code ? "/*location*/ " : "location=")
- , msg.getArg0()
- , (code ? "/*x*/ " : "x=")
- , Float.intBitsToFloat(msg.getArg1())
- , (code ? "/*y*/ " : "y=")
- , Float.intBitsToFloat(msg.getArg2())
- , (code ? "/*z*/ " : "z=")
- , Float.intBitsToFloat(msg.getArg3())
- , (code ? "/*w*/ " : "w=")
- , Float.intBitsToFloat(msg.getArg4()));
- break;
- case glUniform4fv:
- str = String.format("%s(%s%s, %s%s, %s%s)",
- (code ? "glUniform4fv" : "void")
- , (code ? "/*location*/ " : "location=")
- , msg.getArg0()
- , (code ? "/*count*/ " : "count=")
- , msg.getArg1()
- , (code ? "/*v*/ " : "v=")
- , (code ? "(GLfloat [])" : "") + formatFloats(4 * msg.getArg1(), msg.getData().asReadOnlyByteBuffer()));
- break;
- case glUniform4i:
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s, %s%s)",
- (code ? "glUniform4i" : "void")
- , (code ? "/*location*/ " : "location=")
- , msg.getArg0()
- , (code ? "/*x*/ " : "x=")
- , msg.getArg1()
- , (code ? "/*y*/ " : "y=")
- , msg.getArg2()
- , (code ? "/*z*/ " : "z=")
- , msg.getArg3()
- , (code ? "/*w*/ " : "w=")
- , msg.getArg4());
- break;
- case glUniform4iv:
- str = String.format("%s(%s%s, %s%s, %s%s)",
- (code ? "glUniform4iv" : "void")
- , (code ? "/*location*/ " : "location=")
- , msg.getArg0()
- , (code ? "/*count*/ " : "count=")
- , msg.getArg1()
- , (code ? "/*v*/ " : "v=")
- , (code ? "(GLint [])" : "") + formatInts(4 * msg.getArg1(), msg.getData().asReadOnlyByteBuffer()));
- break;
- case glUniformMatrix2fv:
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s)",
- (code ? "glUniformMatrix2fv" : "void")
- , (code ? "/*location*/ " : "location=")
- , msg.getArg0()
- , (code ? "/*count*/ " : "count=")
- , msg.getArg1()
- , (code ? "/*transpose*/ " : "transpose=")
- , msg.getArg2()
- , (code ? "/*value*/ " : "value=")
- , (code ? "(GLfloat [])" : "") + formatMatrix(2, 4 * msg.getArg1(), msg.getData().asReadOnlyByteBuffer()));
- break;
- case glUniformMatrix3fv:
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s)",
- (code ? "glUniformMatrix3fv" : "void")
- , (code ? "/*location*/ " : "location=")
- , msg.getArg0()
- , (code ? "/*count*/ " : "count=")
- , msg.getArg1()
- , (code ? "/*transpose*/ " : "transpose=")
- , msg.getArg2()
- , (code ? "/*value*/ " : "value=")
- , (code ? "(GLfloat [])" : "") + formatMatrix(3, 9 * msg.getArg1(), msg.getData().asReadOnlyByteBuffer()));
- break;
- case glUniformMatrix4fv:
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s)",
- (code ? "glUniformMatrix4fv" : "void")
- , (code ? "/*location*/ " : "location=")
- , msg.getArg0()
- , (code ? "/*count*/ " : "count=")
- , msg.getArg1()
- , (code ? "/*transpose*/ " : "transpose=")
- , msg.getArg2()
- , (code ? "/*value*/ " : "value=")
- , (code ? "(GLfloat [])" : "") + formatMatrix(4, 16 * msg.getArg1(), msg.getData().asReadOnlyByteBuffer()));
- break;
- case glUseProgram:
- str = String.format("%s(%s%s)",
- (code ? "glUseProgram" : "void")
- , (code ? "/*program*/ " : "program=")
- , (code ? "program_" : "") + msg.getArg0());
- break;
- case glValidateProgram:
- str = String.format("%s(%s%s)",
- (code ? "glValidateProgram" : "void")
- , (code ? "/*program*/ " : "program=")
- , (code ? "program_" : "") + msg.getArg0());
- break;
- case glVertexAttrib1f:
- str = String.format("%s(%s%s, %s%s)",
- (code ? "glVertexAttrib1f" : "void")
- , (code ? "/*indx*/ " : "indx=")
- , msg.getArg0()
- , (code ? "/*x*/ " : "x=")
- , Float.intBitsToFloat(msg.getArg1()));
- break;
- case glVertexAttrib1fv:
- str = String.format("%s(%s%s, %s%s)",
- (code ? "glVertexAttrib1fv" : "void")
- , (code ? "/*indx*/ " : "indx=")
- , msg.getArg0()
- , (code ? "/*values*/ " : "values=")
- , (code ? "(GLfloat [])" : "") + formatFloats(1, msg.getData().asReadOnlyByteBuffer()));
- break;
- case glVertexAttrib2f:
- str = String.format("%s(%s%s, %s%s, %s%s)",
- (code ? "glVertexAttrib2f" : "void")
- , (code ? "/*indx*/ " : "indx=")
- , msg.getArg0()
- , (code ? "/*x*/ " : "x=")
- , Float.intBitsToFloat(msg.getArg1())
- , (code ? "/*y*/ " : "y=")
- , Float.intBitsToFloat(msg.getArg2()));
- break;
- case glVertexAttrib2fv:
- str = String.format("%s(%s%s, %s%s)",
- (code ? "glVertexAttrib2fv" : "void")
- , (code ? "/*indx*/ " : "indx=")
- , msg.getArg0()
- , (code ? "/*values*/ " : "values=")
- , (code ? "(GLfloat [])" : "") + formatFloats(2, msg.getData().asReadOnlyByteBuffer()));
- break;
- case glVertexAttrib3f:
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s)",
- (code ? "glVertexAttrib3f" : "void")
- , (code ? "/*indx*/ " : "indx=")
- , msg.getArg0()
- , (code ? "/*x*/ " : "x=")
- , Float.intBitsToFloat(msg.getArg1())
- , (code ? "/*y*/ " : "y=")
- , Float.intBitsToFloat(msg.getArg2())
- , (code ? "/*z*/ " : "z=")
- , Float.intBitsToFloat(msg.getArg3()));
- break;
- case glVertexAttrib3fv:
- str = String.format("%s(%s%s, %s%s)",
- (code ? "glVertexAttrib3fv" : "void")
- , (code ? "/*indx*/ " : "indx=")
- , msg.getArg0()
- , (code ? "/*values*/ " : "values=")
- , (code ? "(GLfloat [])" : "") + formatFloats(3, msg.getData().asReadOnlyByteBuffer()));
- break;
- case glVertexAttrib4f:
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s, %s%s)",
- (code ? "glVertexAttrib4f" : "void")
- , (code ? "/*indx*/ " : "indx=")
- , msg.getArg0()
- , (code ? "/*x*/ " : "x=")
- , Float.intBitsToFloat(msg.getArg1())
- , (code ? "/*y*/ " : "y=")
- , Float.intBitsToFloat(msg.getArg2())
- , (code ? "/*z*/ " : "z=")
- , Float.intBitsToFloat(msg.getArg3())
- , (code ? "/*w*/ " : "w=")
- , Float.intBitsToFloat(msg.getArg4()));
- break;
- case glVertexAttrib4fv:
- str = String.format("%s(%s%s, %s%s)",
- (code ? "glVertexAttrib4fv" : "void")
- , (code ? "/*indx*/ " : "indx=")
- , msg.getArg0()
- , (code ? "/*values*/ " : "values=")
- , (code ? "(GLfloat [])" : "") + formatFloats(4, msg.getData().asReadOnlyByteBuffer()));
- break;
- case glVertexAttribPointer:
- // FIXME: this function uses pointers, debugger may send data in msg.data
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s, %s%s, %s%s)",
- (code ? "glVertexAttribPointer" : "void")
- , (code ? "/*indx*/ " : "indx=")
- , msg.getArg0()
- , (code ? "/*size*/ " : "size=")
- , msg.getArg1()
- , (code ? "/*type*/ " : "type=")
- , GLEnum.valueOf(msg.getArg2())
- , (code ? "/*normalized*/ " : "normalized=")
- , msg.getArg3()
- , (code ? "/*stride*/ " : "stride=")
- , msg.getArg4()
- , (code ? "/*ptr*/ " : "ptr=")
- , (code ? "arg5" : "0x" + Integer.toHexString(msg.getArg5())));
- break;
- case glViewport:
- str = String.format("%s(%s%s, %s%s, %s%s, %s%s)",
- (code ? "glViewport" : "void")
- , (code ? "/*x*/ " : "x=")
- , msg.getArg0()
- , (code ? "/*y*/ " : "y=")
- , msg.getArg1()
- , (code ? "/*width*/ " : "width=")
- , msg.getArg2()
- , (code ? "/*height*/ " : "height=")
- , msg.getArg3());
- break;
- default:
- str = msg.toString();
- }
- return str;
- }
-}
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/MessageParser.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/MessageParser.java
deleted file mode 100644
index a78503a..0000000
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/MessageParser.java
+++ /dev/null
@@ -1,747 +0,0 @@
-/*
- ** Copyright 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.
- */
-
-// auto generated by generate_MessageParser_java.py,
-// which also prints skeleton code for MessageParserEx.java
-
-package com.android.ide.eclipse.gldebugger;
-
-import com.android.ide.eclipse.gldebugger.DebuggerMessage.Message;
-import com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Function;
-import com.google.protobuf.ByteString;
-
-import java.nio.ByteBuffer;
-
-public abstract class MessageParser {
-
- String args;
-
- String[] getList()
- {
- String arg = args;
- args = args.substring(args.lastIndexOf('}') + 1);
- final int comma = args.indexOf(',');
- if (comma >= 0)
- args = args.substring(comma + 1).trim();
- else
- args = null;
-
- final int comment = arg.indexOf('=');
- if (comment >= 0)
- arg = arg.substring(comment + 1);
- arg = arg.trim();
- assert arg.charAt(0) == '{';
- arg = arg.substring(1, arg.lastIndexOf('}')).trim();
- return arg.split("\\s*,\\s*");
- }
-
- ByteString parseFloats(int count) {
- ByteBuffer buffer = ByteBuffer.allocate(count * 4);
- buffer.order(GLFramesView.TARGET_BYTE_ORDER);
- String [] arg = getList();
- for (int i = 0; i < count; i++)
- buffer.putFloat(Float.parseFloat(arg[i].trim()));
- buffer.rewind();
- return ByteString.copyFrom(buffer);
- }
-
- ByteString parseInts(int count) {
- ByteBuffer buffer = ByteBuffer.allocate(count * 4);
- buffer.order(GLFramesView.TARGET_BYTE_ORDER);
- String [] arg = getList();
- for (int i = 0; i < count; i++)
- buffer.putInt(Integer.parseInt(arg[i].trim()));
- buffer.rewind();
- return ByteString.copyFrom(buffer);
- }
-
- ByteString parseUInts(int count) {
- ByteBuffer buffer = ByteBuffer.allocate(count * 4);
- buffer.order(GLFramesView.TARGET_BYTE_ORDER);
- String [] arg = getList();
- for (int i = 0; i < count; i++)
- buffer.putInt((int)(Long.parseLong(arg[i].trim()) & 0xffffffff));
- buffer.rewind();
- return ByteString.copyFrom(buffer);
- }
-
- ByteString parseMatrix(int columns, int count) {
- return parseFloats(columns * columns * count);
- }
-
- ByteString parseString() {
- // TODO: escape sequence and proper string literal
- String arg = args.substring(args.indexOf('"') + 1, args.lastIndexOf('"'));
- args = args.substring(args.lastIndexOf('"'));
- int comma = args.indexOf(',');
- if (comma >= 0)
- args = args.substring(comma + 1).trim();
- else
- args = null;
- return ByteString.copyFromUtf8(arg);
- }
-
- String getArgument()
- {
- final int comma = args.indexOf(',');
- String arg = null;
- if (comma >= 0)
- {
- arg = args.substring(0, comma);
- args = args.substring(comma + 1);
- }
- else
- {
- arg = args;
- args = null;
- }
- final int comment = arg.indexOf('=');
- if (comment >= 0)
- arg = arg.substring(comment + 1);
- return arg.trim();
- }
-
- int parseArgument()
- {
- String arg = getArgument();
- if (arg.startsWith("GL_"))
- return GLEnum.valueOf(arg).value;
- else if (arg.toLowerCase().startsWith("0x"))
- return Integer.parseInt(arg.substring(2), 16);
- else
- return Integer.parseInt(arg);
- }
-
- int parseFloat()
- {
- String arg = getArgument();
- return Float.floatToRawIntBits(Float.parseFloat(arg));
- }
-
- public void parse(final Message.Builder builder, String string) {
- int lparen = string.indexOf("("), rparen = string.lastIndexOf(")");
- String s = string.substring(0, lparen).trim();
- args = string.substring(lparen + 1, rparen);
- String[] t = s.split(" ");
- Function function = Function.valueOf(t[t.length - 1]);
- builder.setFunction(function);
- switch (function) {
- case glActiveTexture:
- builder.setArg0(parseArgument()); // GLenum texture
- break;
- case glAttachShader:
- builder.setArg0(parseArgument()); // GLuint program
- builder.setArg1(parseArgument()); // GLuint shader
- break;
- case glBindAttribLocation:
- builder.setArg0(parseArgument()); // GLuint program
- builder.setArg1(parseArgument()); // GLuint index
- builder.setData(parseString()); // GLchar name
- break;
- case glBindBuffer:
- builder.setArg0(parseArgument()); // GLenum target
- builder.setArg1(parseArgument()); // GLuint buffer
- break;
- case glBindFramebuffer:
- builder.setArg0(parseArgument()); // GLenum target
- builder.setArg1(parseArgument()); // GLuint framebuffer
- break;
- case glBindRenderbuffer:
- builder.setArg0(parseArgument()); // GLenum target
- builder.setArg1(parseArgument()); // GLuint renderbuffer
- break;
- case glBindTexture:
- builder.setArg0(parseArgument()); // GLenum target
- builder.setArg1(parseArgument()); // GLuint texture
- break;
- case glBlendColor:
- builder.setArg0(parseFloat()); // GLclampf red
- builder.setArg1(parseFloat()); // GLclampf green
- builder.setArg2(parseFloat()); // GLclampf blue
- builder.setArg3(parseFloat()); // GLclampf alpha
- break;
- case glBlendEquation:
- builder.setArg0(parseArgument()); // GLenum mode
- break;
- case glBlendEquationSeparate:
- builder.setArg0(parseArgument()); // GLenum modeRGB
- builder.setArg1(parseArgument()); // GLenum modeAlpha
- break;
- case glBlendFunc:
- builder.setArg0(parseArgument()); // GLenum sfactor
- builder.setArg1(parseArgument()); // GLenum dfactor
- break;
- case glBlendFuncSeparate:
- builder.setArg0(parseArgument()); // GLenum srcRGB
- builder.setArg1(parseArgument()); // GLenum dstRGB
- builder.setArg2(parseArgument()); // GLenum srcAlpha
- builder.setArg3(parseArgument()); // GLenum dstAlpha
- break;
- case glBufferData:
- parse_glBufferData(builder);
- break;
- case glBufferSubData:
- parse_glBufferSubData(builder);
- break;
- case glCheckFramebufferStatus:
- builder.setArg0(parseArgument()); // GLenum target
- break;
- case glClear:
- builder.setArg0(parseArgument()); // GLbitfield mask
- break;
- case glClearColor:
- builder.setArg0(parseFloat()); // GLclampf red
- builder.setArg1(parseFloat()); // GLclampf green
- builder.setArg2(parseFloat()); // GLclampf blue
- builder.setArg3(parseFloat()); // GLclampf alpha
- break;
- case glClearDepthf:
- builder.setArg0(parseFloat()); // GLclampf depth
- break;
- case glClearStencil:
- builder.setArg0(parseArgument()); // GLint s
- break;
- case glColorMask:
- builder.setArg0(parseArgument()); // GLboolean red
- builder.setArg1(parseArgument()); // GLboolean green
- builder.setArg2(parseArgument()); // GLboolean blue
- builder.setArg3(parseArgument()); // GLboolean alpha
- break;
- case glCompileShader:
- builder.setArg0(parseArgument()); // GLuint shader
- break;
- case glCompressedTexImage2D:
- parse_glCompressedTexImage2D(builder);
- break;
- case glCompressedTexSubImage2D:
- parse_glCompressedTexSubImage2D(builder);
- break;
- case glCopyTexImage2D:
- builder.setArg0(parseArgument()); // GLenum target
- builder.setArg1(parseArgument()); // GLint level
- builder.setArg2(parseArgument()); // GLenum internalformat
- builder.setArg3(parseArgument()); // GLint x
- builder.setArg4(parseArgument()); // GLint y
- builder.setArg5(parseArgument()); // GLsizei width
- builder.setArg6(parseArgument()); // GLsizei height
- builder.setArg7(parseArgument()); // GLint border
- break;
- case glCopyTexSubImage2D:
- builder.setArg0(parseArgument()); // GLenum target
- builder.setArg1(parseArgument()); // GLint level
- builder.setArg2(parseArgument()); // GLint xoffset
- builder.setArg3(parseArgument()); // GLint yoffset
- builder.setArg4(parseArgument()); // GLint x
- builder.setArg5(parseArgument()); // GLint y
- builder.setArg6(parseArgument()); // GLsizei width
- builder.setArg7(parseArgument()); // GLsizei height
- break;
- case glCreateProgram:
- break;
- case glCreateShader:
- builder.setArg0(parseArgument()); // GLenum type
- break;
- case glCullFace:
- builder.setArg0(parseArgument()); // GLenum mode
- break;
- case glDeleteBuffers:
- builder.setArg0(parseArgument()); // GLsizei n
- builder.setData(parseUInts(1 * builder.getArg0())); // GLuint buffers
- break;
- case glDeleteFramebuffers:
- builder.setArg0(parseArgument()); // GLsizei n
- builder.setData(parseUInts(1 * builder.getArg0())); // GLuint framebuffers
- break;
- case glDeleteProgram:
- builder.setArg0(parseArgument()); // GLuint program
- break;
- case glDeleteRenderbuffers:
- builder.setArg0(parseArgument()); // GLsizei n
- builder.setData(parseUInts(1 * builder.getArg0())); // GLuint renderbuffers
- break;
- case glDeleteShader:
- builder.setArg0(parseArgument()); // GLuint shader
- break;
- case glDeleteTextures:
- builder.setArg0(parseArgument()); // GLsizei n
- builder.setData(parseUInts(1 * builder.getArg0())); // GLuint textures
- break;
- case glDepthFunc:
- builder.setArg0(parseArgument()); // GLenum func
- break;
- case glDepthMask:
- builder.setArg0(parseArgument()); // GLboolean flag
- break;
- case glDepthRangef:
- builder.setArg0(parseFloat()); // GLclampf zNear
- builder.setArg1(parseFloat()); // GLclampf zFar
- break;
- case glDetachShader:
- builder.setArg0(parseArgument()); // GLuint program
- builder.setArg1(parseArgument()); // GLuint shader
- break;
- case glDisable:
- builder.setArg0(parseArgument()); // GLenum cap
- break;
- case glDisableVertexAttribArray:
- builder.setArg0(parseArgument()); // GLuint index
- break;
- case glDrawArrays:
- builder.setArg0(parseArgument()); // GLenum mode
- builder.setArg1(parseArgument()); // GLint first
- builder.setArg2(parseArgument()); // GLsizei count
- break;
- case glDrawElements:
- parse_glDrawElements(builder);
- break;
- case glEnable:
- builder.setArg0(parseArgument()); // GLenum cap
- break;
- case glEnableVertexAttribArray:
- builder.setArg0(parseArgument()); // GLuint index
- break;
- case glFinish:
- break;
- case glFlush:
- break;
- case glFramebufferRenderbuffer:
- builder.setArg0(parseArgument()); // GLenum target
- builder.setArg1(parseArgument()); // GLenum attachment
- builder.setArg2(parseArgument()); // GLenum renderbuffertarget
- builder.setArg3(parseArgument()); // GLuint renderbuffer
- break;
- case glFramebufferTexture2D:
- builder.setArg0(parseArgument()); // GLenum target
- builder.setArg1(parseArgument()); // GLenum attachment
- builder.setArg2(parseArgument()); // GLenum textarget
- builder.setArg3(parseArgument()); // GLuint texture
- builder.setArg4(parseArgument()); // GLint level
- break;
- case glFrontFace:
- builder.setArg0(parseArgument()); // GLenum mode
- break;
- case glGenBuffers:
- builder.setArg0(parseArgument()); // GLsizei n
- builder.setData(parseUInts(1 * builder.getArg0())); // GLuint buffers
- break;
- case glGenerateMipmap:
- builder.setArg0(parseArgument()); // GLenum target
- break;
- case glGenFramebuffers:
- builder.setArg0(parseArgument()); // GLsizei n
- builder.setData(parseUInts(1 * builder.getArg0())); // GLuint framebuffers
- break;
- case glGenRenderbuffers:
- builder.setArg0(parseArgument()); // GLsizei n
- builder.setData(parseUInts(1 * builder.getArg0())); // GLuint renderbuffers
- break;
- case glGenTextures:
- builder.setArg0(parseArgument()); // GLsizei n
- builder.setData(parseUInts(1 * builder.getArg0())); // GLuint textures
- break;
- case glGetActiveAttrib:
- parse_glGetActiveAttrib(builder);
- break;
- case glGetActiveUniform:
- parse_glGetActiveUniform(builder);
- break;
- case glGetAttachedShaders:
- parse_glGetAttachedShaders(builder);
- break;
- case glGetAttribLocation:
- builder.setArg0(parseArgument()); // GLuint program
- builder.setData(parseString()); // GLchar name
- break;
- case glGetBooleanv:
- parse_glGetBooleanv(builder);
- break;
- case glGetBufferParameteriv:
- parse_glGetBufferParameteriv(builder);
- break;
- case glGetError:
- break;
- case glGetFloatv:
- parse_glGetFloatv(builder);
- break;
- case glGetFramebufferAttachmentParameteriv:
- parse_glGetFramebufferAttachmentParameteriv(builder);
- break;
- case glGetIntegerv:
- parse_glGetIntegerv(builder);
- break;
- case glGetProgramiv:
- builder.setArg0(parseArgument()); // GLuint program
- builder.setArg1(parseArgument()); // GLenum pname
- builder.setData(parseInts(1)); // GLint params
- break;
- case glGetProgramInfoLog:
- parse_glGetProgramInfoLog(builder);
- break;
- case glGetRenderbufferParameteriv:
- parse_glGetRenderbufferParameteriv(builder);
- break;
- case glGetShaderiv:
- builder.setArg0(parseArgument()); // GLuint shader
- builder.setArg1(parseArgument()); // GLenum pname
- builder.setData(parseInts(1)); // GLint params
- break;
- case glGetShaderInfoLog:
- parse_glGetShaderInfoLog(builder);
- break;
- case glGetShaderPrecisionFormat:
- parse_glGetShaderPrecisionFormat(builder);
- break;
- case glGetShaderSource:
- parse_glGetShaderSource(builder);
- break;
- case glGetString:
- builder.setArg0(parseArgument()); // GLenum name
- break;
- case glGetTexParameterfv:
- parse_glGetTexParameterfv(builder);
- break;
- case glGetTexParameteriv:
- parse_glGetTexParameteriv(builder);
- break;
- case glGetUniformfv:
- parse_glGetUniformfv(builder);
- break;
- case glGetUniformiv:
- parse_glGetUniformiv(builder);
- break;
- case glGetUniformLocation:
- builder.setArg0(parseArgument()); // GLuint program
- builder.setData(parseString()); // GLchar name
- break;
- case glGetVertexAttribfv:
- parse_glGetVertexAttribfv(builder);
- break;
- case glGetVertexAttribiv:
- parse_glGetVertexAttribiv(builder);
- break;
- case glGetVertexAttribPointerv:
- parse_glGetVertexAttribPointerv(builder);
- break;
- case glHint:
- builder.setArg0(parseArgument()); // GLenum target
- builder.setArg1(parseArgument()); // GLenum mode
- break;
- case glIsBuffer:
- builder.setArg0(parseArgument()); // GLuint buffer
- break;
- case glIsEnabled:
- builder.setArg0(parseArgument()); // GLenum cap
- break;
- case glIsFramebuffer:
- builder.setArg0(parseArgument()); // GLuint framebuffer
- break;
- case glIsProgram:
- builder.setArg0(parseArgument()); // GLuint program
- break;
- case glIsRenderbuffer:
- builder.setArg0(parseArgument()); // GLuint renderbuffer
- break;
- case glIsShader:
- builder.setArg0(parseArgument()); // GLuint shader
- break;
- case glIsTexture:
- builder.setArg0(parseArgument()); // GLuint texture
- break;
- case glLineWidth:
- builder.setArg0(parseFloat()); // GLfloat width
- break;
- case glLinkProgram:
- builder.setArg0(parseArgument()); // GLuint program
- break;
- case glPixelStorei:
- builder.setArg0(parseArgument()); // GLenum pname
- builder.setArg1(parseArgument()); // GLint param
- break;
- case glPolygonOffset:
- builder.setArg0(parseFloat()); // GLfloat factor
- builder.setArg1(parseFloat()); // GLfloat units
- break;
- case glReadPixels:
- parse_glReadPixels(builder);
- break;
- case glReleaseShaderCompiler:
- break;
- case glRenderbufferStorage:
- builder.setArg0(parseArgument()); // GLenum target
- builder.setArg1(parseArgument()); // GLenum internalformat
- builder.setArg2(parseArgument()); // GLsizei width
- builder.setArg3(parseArgument()); // GLsizei height
- break;
- case glSampleCoverage:
- builder.setArg0(parseFloat()); // GLclampf value
- builder.setArg1(parseArgument()); // GLboolean invert
- break;
- case glScissor:
- builder.setArg0(parseArgument()); // GLint x
- builder.setArg1(parseArgument()); // GLint y
- builder.setArg2(parseArgument()); // GLsizei width
- builder.setArg3(parseArgument()); // GLsizei height
- break;
- case glShaderBinary:
- parse_glShaderBinary(builder);
- break;
- case glShaderSource:
- parse_glShaderSource(builder);
- break;
- case glStencilFunc:
- builder.setArg0(parseArgument()); // GLenum func
- builder.setArg1(parseArgument()); // GLint ref
- builder.setArg2(parseArgument()); // GLuint mask
- break;
- case glStencilFuncSeparate:
- builder.setArg0(parseArgument()); // GLenum face
- builder.setArg1(parseArgument()); // GLenum func
- builder.setArg2(parseArgument()); // GLint ref
- builder.setArg3(parseArgument()); // GLuint mask
- break;
- case glStencilMask:
- builder.setArg0(parseArgument()); // GLuint mask
- break;
- case glStencilMaskSeparate:
- builder.setArg0(parseArgument()); // GLenum face
- builder.setArg1(parseArgument()); // GLuint mask
- break;
- case glStencilOp:
- builder.setArg0(parseArgument()); // GLenum fail
- builder.setArg1(parseArgument()); // GLenum zfail
- builder.setArg2(parseArgument()); // GLenum zpass
- break;
- case glStencilOpSeparate:
- builder.setArg0(parseArgument()); // GLenum face
- builder.setArg1(parseArgument()); // GLenum fail
- builder.setArg2(parseArgument()); // GLenum zfail
- builder.setArg3(parseArgument()); // GLenum zpass
- break;
- case glTexImage2D:
- parse_glTexImage2D(builder);
- break;
- case glTexParameterf:
- builder.setArg0(parseArgument()); // GLenum target
- builder.setArg1(parseArgument()); // GLenum pname
- builder.setArg2(parseFloat()); // GLfloat param
- break;
- case glTexParameterfv:
- parse_glTexParameterfv(builder);
- break;
- case glTexParameteri:
- builder.setArg0(parseArgument()); // GLenum target
- builder.setArg1(parseArgument()); // GLenum pname
- builder.setArg2(parseArgument()); // GLint param
- break;
- case glTexParameteriv:
- parse_glTexParameteriv(builder);
- break;
- case glTexSubImage2D:
- parse_glTexSubImage2D(builder);
- break;
- case glUniform1f:
- builder.setArg0(parseArgument()); // GLint location
- builder.setArg1(parseFloat()); // GLfloat x
- break;
- case glUniform1fv:
- builder.setArg0(parseArgument()); // GLint location
- builder.setArg1(parseArgument()); // GLsizei count
- builder.setData(parseFloats(1 * builder.getArg1())); // GLfloat v
- break;
- case glUniform1i:
- builder.setArg0(parseArgument()); // GLint location
- builder.setArg1(parseArgument()); // GLint x
- break;
- case glUniform1iv:
- builder.setArg0(parseArgument()); // GLint location
- builder.setArg1(parseArgument()); // GLsizei count
- builder.setData(parseInts(1 * builder.getArg1())); // GLint v
- break;
- case glUniform2f:
- builder.setArg0(parseArgument()); // GLint location
- builder.setArg1(parseFloat()); // GLfloat x
- builder.setArg2(parseFloat()); // GLfloat y
- break;
- case glUniform2fv:
- builder.setArg0(parseArgument()); // GLint location
- builder.setArg1(parseArgument()); // GLsizei count
- builder.setData(parseFloats(2 * builder.getArg1())); // GLfloat v
- break;
- case glUniform2i:
- builder.setArg0(parseArgument()); // GLint location
- builder.setArg1(parseArgument()); // GLint x
- builder.setArg2(parseArgument()); // GLint y
- break;
- case glUniform2iv:
- builder.setArg0(parseArgument()); // GLint location
- builder.setArg1(parseArgument()); // GLsizei count
- builder.setData(parseInts(2 * builder.getArg1())); // GLint v
- break;
- case glUniform3f:
- builder.setArg0(parseArgument()); // GLint location
- builder.setArg1(parseFloat()); // GLfloat x
- builder.setArg2(parseFloat()); // GLfloat y
- builder.setArg3(parseFloat()); // GLfloat z
- break;
- case glUniform3fv:
- builder.setArg0(parseArgument()); // GLint location
- builder.setArg1(parseArgument()); // GLsizei count
- builder.setData(parseFloats(3 * builder.getArg1())); // GLfloat v
- break;
- case glUniform3i:
- builder.setArg0(parseArgument()); // GLint location
- builder.setArg1(parseArgument()); // GLint x
- builder.setArg2(parseArgument()); // GLint y
- builder.setArg3(parseArgument()); // GLint z
- break;
- case glUniform3iv:
- builder.setArg0(parseArgument()); // GLint location
- builder.setArg1(parseArgument()); // GLsizei count
- builder.setData(parseInts(3 * builder.getArg1())); // GLint v
- break;
- case glUniform4f:
- builder.setArg0(parseArgument()); // GLint location
- builder.setArg1(parseFloat()); // GLfloat x
- builder.setArg2(parseFloat()); // GLfloat y
- builder.setArg3(parseFloat()); // GLfloat z
- builder.setArg4(parseFloat()); // GLfloat w
- break;
- case glUniform4fv:
- builder.setArg0(parseArgument()); // GLint location
- builder.setArg1(parseArgument()); // GLsizei count
- builder.setData(parseFloats(4 * builder.getArg1())); // GLfloat v
- break;
- case glUniform4i:
- builder.setArg0(parseArgument()); // GLint location
- builder.setArg1(parseArgument()); // GLint x
- builder.setArg2(parseArgument()); // GLint y
- builder.setArg3(parseArgument()); // GLint z
- builder.setArg4(parseArgument()); // GLint w
- break;
- case glUniform4iv:
- builder.setArg0(parseArgument()); // GLint location
- builder.setArg1(parseArgument()); // GLsizei count
- builder.setData(parseInts(4 * builder.getArg1())); // GLint v
- break;
- case glUniformMatrix2fv:
- builder.setArg0(parseArgument()); // GLint location
- builder.setArg1(parseArgument()); // GLsizei count
- builder.setArg2(parseArgument()); // GLboolean transpose
- builder.setData(parseMatrix(2, builder.getArg1())); // GLfloat value
- break;
- case glUniformMatrix3fv:
- builder.setArg0(parseArgument()); // GLint location
- builder.setArg1(parseArgument()); // GLsizei count
- builder.setArg2(parseArgument()); // GLboolean transpose
- builder.setData(parseMatrix(3, builder.getArg1())); // GLfloat value
- break;
- case glUniformMatrix4fv:
- builder.setArg0(parseArgument()); // GLint location
- builder.setArg1(parseArgument()); // GLsizei count
- builder.setArg2(parseArgument()); // GLboolean transpose
- builder.setData(parseMatrix(4, builder.getArg1())); // GLfloat value
- break;
- case glUseProgram:
- builder.setArg0(parseArgument()); // GLuint program
- break;
- case glValidateProgram:
- builder.setArg0(parseArgument()); // GLuint program
- break;
- case glVertexAttrib1f:
- builder.setArg0(parseArgument()); // GLuint indx
- builder.setArg1(parseFloat()); // GLfloat x
- break;
- case glVertexAttrib1fv:
- builder.setArg0(parseArgument()); // GLuint indx
- builder.setData(parseFloats(1)); // GLfloat values
- break;
- case glVertexAttrib2f:
- builder.setArg0(parseArgument()); // GLuint indx
- builder.setArg1(parseFloat()); // GLfloat x
- builder.setArg2(parseFloat()); // GLfloat y
- break;
- case glVertexAttrib2fv:
- builder.setArg0(parseArgument()); // GLuint indx
- builder.setData(parseFloats(2)); // GLfloat values
- break;
- case glVertexAttrib3f:
- builder.setArg0(parseArgument()); // GLuint indx
- builder.setArg1(parseFloat()); // GLfloat x
- builder.setArg2(parseFloat()); // GLfloat y
- builder.setArg3(parseFloat()); // GLfloat z
- break;
- case glVertexAttrib3fv:
- builder.setArg0(parseArgument()); // GLuint indx
- builder.setData(parseFloats(3)); // GLfloat values
- break;
- case glVertexAttrib4f:
- builder.setArg0(parseArgument()); // GLuint indx
- builder.setArg1(parseFloat()); // GLfloat x
- builder.setArg2(parseFloat()); // GLfloat y
- builder.setArg3(parseFloat()); // GLfloat z
- builder.setArg4(parseFloat()); // GLfloat w
- break;
- case glVertexAttrib4fv:
- builder.setArg0(parseArgument()); // GLuint indx
- builder.setData(parseFloats(4)); // GLfloat values
- break;
- case glVertexAttribPointer:
- parse_glVertexAttribPointer(builder);
- break;
- case glViewport:
- builder.setArg0(parseArgument()); // GLint x
- builder.setArg1(parseArgument()); // GLint y
- builder.setArg2(parseArgument()); // GLsizei width
- builder.setArg3(parseArgument()); // GLsizei height
- break;
- default:
- assert false;
- }
- }
- abstract void parse_glBufferData(Message.Builder builder);
- abstract void parse_glBufferSubData(Message.Builder builder);
- abstract void parse_glCompressedTexImage2D(Message.Builder builder);
- abstract void parse_glCompressedTexSubImage2D(Message.Builder builder);
- abstract void parse_glDrawElements(Message.Builder builder);
- abstract void parse_glGetActiveAttrib(Message.Builder builder);
- abstract void parse_glGetActiveUniform(Message.Builder builder);
- abstract void parse_glGetAttachedShaders(Message.Builder builder);
- abstract void parse_glGetBooleanv(Message.Builder builder);
- abstract void parse_glGetBufferParameteriv(Message.Builder builder);
- abstract void parse_glGetFloatv(Message.Builder builder);
- abstract void parse_glGetFramebufferAttachmentParameteriv(Message.Builder builder);
- abstract void parse_glGetIntegerv(Message.Builder builder);
- abstract void parse_glGetProgramInfoLog(Message.Builder builder);
- abstract void parse_glGetRenderbufferParameteriv(Message.Builder builder);
- abstract void parse_glGetShaderInfoLog(Message.Builder builder);
- abstract void parse_glGetShaderPrecisionFormat(Message.Builder builder);
- abstract void parse_glGetShaderSource(Message.Builder builder);
- abstract void parse_glGetTexParameterfv(Message.Builder builder);
- abstract void parse_glGetTexParameteriv(Message.Builder builder);
- abstract void parse_glGetUniformfv(Message.Builder builder);
- abstract void parse_glGetUniformiv(Message.Builder builder);
- abstract void parse_glGetVertexAttribfv(Message.Builder builder);
- abstract void parse_glGetVertexAttribiv(Message.Builder builder);
- abstract void parse_glGetVertexAttribPointerv(Message.Builder builder);
- abstract void parse_glReadPixels(Message.Builder builder);
- abstract void parse_glShaderBinary(Message.Builder builder);
- abstract void parse_glShaderSource(Message.Builder builder);
- abstract void parse_glTexImage2D(Message.Builder builder);
- abstract void parse_glTexParameterfv(Message.Builder builder);
- abstract void parse_glTexParameteriv(Message.Builder builder);
- abstract void parse_glTexSubImage2D(Message.Builder builder);
- abstract void parse_glVertexAttribPointer(Message.Builder builder);
-}
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/MessageParserEx.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/MessageParserEx.java
deleted file mode 100644
index 6fd8cf6..0000000
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/MessageParserEx.java
+++ /dev/null
@@ -1,306 +0,0 @@
-/*
- ** Copyright 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.
- */
-
-// skeleton from stdout of generate_MessageParser_java.py
-
-package com.android.ide.eclipse.gldebugger;
-
-import com.android.ide.eclipse.gldebugger.DebuggerMessage.Message;
-
-public class MessageParserEx extends MessageParser {
-
- @Override
- void parse_glBufferData(Message.Builder builder) {
- builder.setArg0(parseArgument()); // GLenum target
- builder.setArg1(parseArgument()); // GLsizeiptr size
- // TODO // GLvoid data
- builder.setArg3(parseArgument()); // GLenum usage
- }
-
- @Override
- void parse_glBufferSubData(Message.Builder builder) {
- builder.setArg0(parseArgument()); // GLenum target
- builder.setArg1(parseArgument()); // GLintptr offset
- builder.setArg2(parseArgument()); // GLsizeiptr size
- // TODO // GLvoid data
- }
-
- @Override
- void parse_glCompressedTexImage2D(Message.Builder builder) {
- builder.setArg0(parseArgument()); // GLenum target
- builder.setArg1(parseArgument()); // GLint level
- builder.setArg2(parseArgument()); // GLenum internalformat
- builder.setArg3(parseArgument()); // GLsizei width
- builder.setArg4(parseArgument()); // GLsizei height
- builder.setArg5(parseArgument()); // GLint border
- builder.setArg6(parseArgument()); // GLsizei imageSize
- // TODO: GLvoid* data
- }
-
- @Override
- void parse_glCompressedTexSubImage2D(Message.Builder builder) {
- builder.setArg0(parseArgument()); // GLenum target
- builder.setArg1(parseArgument()); // GLint level
- builder.setArg2(parseArgument()); // GLint xoffset
- builder.setArg3(parseArgument()); // GLint yoffset
- builder.setArg4(parseArgument()); // GLsizei width
- builder.setArg5(parseArgument()); // GLsizei height
- builder.setArg6(parseArgument()); // GLenum format
- builder.setArg7(parseArgument()); // GLsizei imageSize
- // TODO: GLvoid* data
- }
-
- @Override
- void parse_glDrawElements(Message.Builder builder) {
- builder.setArg0(parseArgument()); // GLenum mode
- builder.setArg1(parseArgument()); // GLsizei count
- builder.setArg2(parseArgument()); // GLenum type
- // TODO: GLvoid* indices
- }
-
- @Override
- void parse_glGetActiveAttrib(Message.Builder builder) {
- builder.setArg0(parseArgument()); // GLuint program
- builder.setArg1(parseArgument()); // GLuint index
- builder.setArg2(parseArgument()); // GLsizei bufsize
- // TODO: GLsizei* length
- // TODO: GLint* size
- // TODO: GLenum* type
- builder.setData(parseString()); // GLchar name
- }
-
- @Override
- void parse_glGetActiveUniform(Message.Builder builder) {
- builder.setArg0(parseArgument()); // GLuint program
- builder.setArg1(parseArgument()); // GLuint index
- builder.setArg2(parseArgument()); // GLsizei bufsize
- // TODO: GLsizei* length
- // TODO: GLint* size
- // TODO: GLenum* type
- builder.setData(parseString()); // GLchar name
- }
-
- @Override
- void parse_glGetAttachedShaders(Message.Builder builder) {
- builder.setArg0(parseArgument()); // GLuint program
- builder.setArg1(parseArgument()); // GLsizei maxcount
- // TODO: GLsizei* count
- // TODO: GLuint* shaders
- }
-
- @Override
- void parse_glGetBooleanv(Message.Builder builder) {
- builder.setArg0(parseArgument()); // GLenum pname
- // TODO: GLboolean* params
- }
-
- @Override
- void parse_glGetBufferParameteriv(Message.Builder builder) {
- builder.setArg0(parseArgument()); // GLenum target
- builder.setArg1(parseArgument()); // GLenum pname
- // TODO: GLint* params
- }
-
- @Override
- void parse_glGetFloatv(Message.Builder builder) {
- builder.setArg0(parseArgument()); // GLenum pname
- // TODO: GLfloat* params
- }
-
- @Override
- void parse_glGetFramebufferAttachmentParameteriv(Message.Builder builder) {
- builder.setArg0(parseArgument()); // GLenum target
- builder.setArg1(parseArgument()); // GLenum attachment
- builder.setArg2(parseArgument()); // GLenum pname
- // TODO: GLint* params
- }
-
- @Override
- void parse_glGetIntegerv(Message.Builder builder) {
- builder.setArg0(parseArgument()); // GLenum pname
- // TODO: GLint* params
- }
-
- @Override
- void parse_glGetProgramInfoLog(Message.Builder builder) {
- builder.setArg0(parseArgument()); // GLuint program
- builder.setArg1(parseArgument()); // GLsizei bufsize
- // TODO: GLsizei* length
- builder.setData(parseString()); // GLchar infolog
- }
-
- @Override
- void parse_glGetRenderbufferParameteriv(Message.Builder builder) {
- builder.setArg0(parseArgument()); // GLenum target
- builder.setArg1(parseArgument()); // GLenum pname
- // TODO: GLint* params
- }
-
- @Override
- void parse_glGetShaderInfoLog(Message.Builder builder) {
- builder.setArg0(parseArgument()); // GLuint shader
- builder.setArg1(parseArgument()); // GLsizei bufsize
- // TODO: GLsizei* length
- builder.setData(parseString()); // GLchar infolog
- }
-
- @Override
- void parse_glGetShaderPrecisionFormat(Message.Builder builder) {
- builder.setArg0(parseArgument()); // GLenum shadertype
- builder.setArg1(parseArgument()); // GLenum precisiontype
- // TODO: GLint* range
- // TODO: GLint* precision
- }
-
- @Override
- void parse_glGetShaderSource(Message.Builder builder) {
- builder.setArg0(parseArgument()); // GLuint shader
- builder.setArg1(parseArgument()); // GLsizei bufsize
- // TODO: GLsizei* length
- builder.setData(parseString()); // GLchar source
- }
-
- @Override
- void parse_glGetTexParameterfv(Message.Builder builder) {
- builder.setArg0(parseArgument()); // GLenum target
- builder.setArg1(parseArgument()); // GLenum pname
- // TODO: GLfloat* params
- }
-
- @Override
- void parse_glGetTexParameteriv(Message.Builder builder) {
- builder.setArg0(parseArgument()); // GLenum target
- builder.setArg1(parseArgument()); // GLenum pname
- // TODO: GLint* params
- }
-
- @Override
- void parse_glGetUniformfv(Message.Builder builder) {
- builder.setArg0(parseArgument()); // GLuint program
- builder.setArg1(parseArgument()); // GLint location
- // TODO: GLfloat* params
- }
-
- @Override
- void parse_glGetUniformiv(Message.Builder builder) {
- builder.setArg0(parseArgument()); // GLuint program
- builder.setArg1(parseArgument()); // GLint location
- // TODO: GLint* params
- }
-
- @Override
- void parse_glGetVertexAttribfv(Message.Builder builder) {
- builder.setArg0(parseArgument()); // GLuint index
- builder.setArg1(parseArgument()); // GLenum pname
- // TODO: GLfloat* params
- }
-
- @Override
- void parse_glGetVertexAttribiv(Message.Builder builder) {
- builder.setArg0(parseArgument()); // GLuint index
- builder.setArg1(parseArgument()); // GLenum pname
- // TODO: GLint* params
- }
-
- @Override
- void parse_glGetVertexAttribPointerv(Message.Builder builder) {
- builder.setArg0(parseArgument()); // GLuint index
- builder.setArg1(parseArgument()); // GLenum pname
- // TODO: GLvoid** pointer
- }
-
- @Override
- void parse_glReadPixels(Message.Builder builder) {
- builder.setArg0(parseArgument()); // GLint x
- builder.setArg1(parseArgument()); // GLint y
- builder.setArg2(parseArgument()); // GLsizei width
- builder.setArg3(parseArgument()); // GLsizei height
- builder.setArg4(parseArgument()); // GLenum format
- builder.setArg5(parseArgument()); // GLenum type
- // TODO: GLvoid* pixels
- }
-
- @Override
- void parse_glShaderBinary(Message.Builder builder) {
- builder.setArg0(parseArgument()); // GLsizei n
- // TODO: GLuint* shaders
- builder.setArg2(parseArgument()); // GLenum binaryformat
- // TODO: GLvoid* binary
- builder.setArg4(parseArgument()); // GLsizei length
- }
-
- @Override
- void parse_glShaderSource(Message.Builder builder) {
- builder.setArg0(parseArgument()); // GLuint shader
- builder.setArg1(parseArgument()); // GLsizei count
- assert 1 == builder.getArg1();
- builder.setData(parseString()); // GLchar** string
- builder.setArg3(parseArgument());// not used, always 1 null terminated
- // string; GLint* length
- }
-
- @Override
- void parse_glTexImage2D(Message.Builder builder) {
- builder.setArg0(parseArgument()); // GLenum target
- builder.setArg1(parseArgument()); // GLint level
- builder.setArg2(parseArgument()); // GLint internalformat
- builder.setArg3(parseArgument()); // GLsizei width
- builder.setArg4(parseArgument()); // GLsizei height
- builder.setArg5(parseArgument()); // GLint border
- builder.setArg6(parseArgument()); // GLenum format
- builder.setArg7(parseArgument()); // GLenum type
- // TODO: GLvoid* pixels
- }
-
- @Override
- void parse_glTexParameterfv(Message.Builder builder) {
- builder.setArg0(parseArgument()); // GLenum target
- builder.setArg1(parseArgument()); // GLenum pname
- // TODO: GLfloat* params
- }
-
- @Override
- void parse_glTexParameteriv(Message.Builder builder) {
- builder.setArg0(parseArgument()); // GLenum target
- builder.setArg1(parseArgument()); // GLenum pname
- // TODO: GLint* params
- }
-
- @Override
- void parse_glTexSubImage2D(Message.Builder builder) {
- builder.setArg0(parseArgument()); // GLenum target
- builder.setArg1(parseArgument()); // GLint level
- builder.setArg2(parseArgument()); // GLint xoffset
- builder.setArg3(parseArgument()); // GLint yoffset
- builder.setArg4(parseArgument()); // GLsizei width
- builder.setArg5(parseArgument()); // GLsizei height
- builder.setArg6(parseArgument()); // GLenum format
- builder.setArg7(parseArgument()); // GLenum type
- // TODO: GLvoid* pixels
- }
-
- @Override
- void parse_glVertexAttribPointer(Message.Builder builder) {
- builder.setArg0(parseArgument()); // GLuint indx
- builder.setArg1(parseArgument()); // GLint size
- builder.setArg2(parseArgument()); // GLenum type
- builder.setArg3(parseArgument()); // GLboolean normalized
- builder.setArg4(parseArgument()); // GLsizei stride
- // TODO: GLvoid* ptr
- }
-
- public final static MessageParserEx instance = new MessageParserEx();
-}
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/MessageProcessor.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/MessageProcessor.java
deleted file mode 100644
index 22196d9..0000000
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/MessageProcessor.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- ** Copyright 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.gldebugger;
-
-import com.google.protobuf.ByteString;
-
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.graphics.PaletteData;
-
-import java.nio.ByteBuffer;
-import java.util.Arrays;
-
-public class MessageProcessor {
- static void showError(final String message) {
- // need to call SWT from UI thread
- MessageDialog.openError(null, "MessageProcessor", message);
- }
-
- /**
- * data layout: uint32 total decompressed length, (chunks: uint32 chunk
- * decompressed size, uint32 chunk compressed size, chunk data)+. 0 chunk
- * compressed size means chunk is not compressed
- */
- public static byte[] lzfDecompressChunks(final ByteString data) {
- ByteBuffer in = data.asReadOnlyByteBuffer();
- in.order(GLFramesView.TARGET_BYTE_ORDER);
- ByteBuffer out = ByteBuffer.allocate(in.getInt());
- byte[] inChunk = new byte[0];
- byte[] outChunk = new byte[0];
- while (in.remaining() > 0) {
- int decompressed = in.getInt();
- int compressed = in.getInt();
- if (decompressed > outChunk.length)
- outChunk = new byte[decompressed];
- if (compressed == 0) {
- in.get(outChunk, 0, decompressed);
- out.put(outChunk, 0, decompressed);
- } else {
- if (compressed > inChunk.length)
- inChunk = new byte[compressed];
- in.get(inChunk, 0, compressed);
- int size = org.liblzf.CLZF
- .lzf_decompress(inChunk, compressed, outChunk, outChunk.length);
- assert size == decompressed;
- out.put(outChunk, 0, size);
- }
- }
- assert !out.hasRemaining();
- return out.array();
- }
-
- /** same data layout as LZFDecompressChunks */
- public static byte[] lzfCompressChunks(final byte[] in, final int inSize) {
- byte[] chunk = new byte[256 * 1024]; // chunk size is arbitrary
- final ByteBuffer out = ByteBuffer.allocate(4 + (inSize + chunk.length - 1)
- / chunk.length * (chunk.length + 4 * 2));
- out.order(GLFramesView.TARGET_BYTE_ORDER);
- out.putInt(inSize);
- for (int i = 0; i < inSize; i += chunk.length) {
- int chunkIn = chunk.length;
- if (i + chunkIn > inSize)
- chunkIn = inSize - i;
- final byte[] inChunk = java.util.Arrays.copyOfRange(in, i, i + chunkIn);
- final int chunkOut = org.liblzf.CLZF
- .lzf_compress(inChunk, chunkIn, chunk, chunk.length);
- out.putInt(chunkIn);
- out.putInt(chunkOut);
- if (chunkOut == 0) // compressed bigger than chunk (uncompressed)
- out.put(inChunk);
- else
- out.put(chunk, 0, chunkOut);
- }
- return Arrays.copyOf(out.array(), out.position());
- }
-
- /**
- * returns new ref, which is also the decoded image; ref could be bigger
- * than pixels, in which case the first pixels.length bytes form the image
- */
- public static byte[] decodeReferencedImage(byte[] ref, byte[] pixels) {
- if (ref.length < pixels.length)
- ref = new byte[pixels.length];
- for (int i = 0; i < pixels.length; i++)
- ref[i] ^= pixels[i];
- for (int i = pixels.length; i < ref.length; i++)
- ref[i] = 0; // clear unused ref to maintain consistency
- return ref;
- }
-
- public static ImageData receiveImage(int width, int height, int format,
- int type, final ByteString data) {
- assert width > 0 && height > 0;
- int bpp = 0;
- int redMask = 0, blueMask = 0, greenMask = 0;
- switch (GLEnum.valueOf(type)) {
- case GL_UNSIGNED_SHORT_5_6_5:
- case GL_UNSIGNED_SHORT_4_4_4_4:
- case GL_UNSIGNED_SHORT_5_5_5_1:
- format = type;
- break;
- case GL_UNSIGNED_BYTE:
- break;
- default:
- showError("unsupported texture type " + type);
- return null;
- }
-
- switch (GLEnum.valueOf(format)) {
- case GL_ALPHA:
- case GL_LUMINANCE:
- redMask = blueMask = greenMask = 0xff;
- bpp = 8;
- break;
- case GL_LUMINANCE_ALPHA:
- blueMask = 0xff;
- redMask = 0xff00;
- bpp = 16;
- break;
- case GL_RGB:
- blueMask = 0xff;
- greenMask = 0xff00;
- redMask = 0xff0000;
- bpp = 24;
- break;
- case GL_RGBA:
- blueMask = 0xff00;
- greenMask = 0xff0000;
- redMask = 0xff000000;
- bpp = 32;
- break;
- case GL_UNSIGNED_SHORT_5_6_5:
- blueMask = ((1 << 5) - 1) << 0;
- greenMask = ((1 << 6) - 1) << 5;
- redMask = ((1 << 5) - 1) << 11;
- bpp = 16;
- break;
- case GL_UNSIGNED_SHORT_4_4_4_4:
- blueMask = ((1 << 4) - 1) << 4;
- greenMask = ((1 << 4) - 1) << 8;
- redMask = ((1 << 4) - 1) << 12;
- bpp = 16;
- break;
- case GL_UNSIGNED_SHORT_5_5_5_1:
- blueMask = ((1 << 5) - 1) << 1;
- greenMask = ((1 << 5) - 1) << 6;
- redMask = ((1 << 5) - 1) << 11;
- bpp = 16;
- break;
- default:
- showError("unsupported texture format: " + format);
- return null;
- }
- byte[] pixels = lzfDecompressChunks(data);
- assert pixels.length == width * height * (bpp / 8);
- PaletteData palette = new PaletteData(redMask, greenMask, blueMask);
- return new ImageData(width, height, bpp, palette, 1, pixels);
- }
-}
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/MessageQueue.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/MessageQueue.java
deleted file mode 100644
index f975c9e..0000000
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/MessageQueue.java
+++ /dev/null
@@ -1,322 +0,0 @@
-/*
- ** Copyright 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.gldebugger;
-
-import com.android.ide.eclipse.gldebugger.DebuggerMessage.Message;
-import com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Function;
-import com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Type;
-import com.android.sdklib.util.SparseArray;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.EOFException;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.net.Socket;
-import java.nio.ByteOrder;
-import java.util.ArrayList;
-
-abstract interface ProcessMessage {
- abstract boolean processMessage(final MessageQueue queue, final Message msg)
- throws IOException;
-}
-
-public class MessageQueue implements Runnable {
-
- private boolean running = false;
- private ByteOrder byteOrder;
- private FileInputStream file; // if null, create and use socket
- Thread thread = null;
- private final ProcessMessage[] processes;
- private ArrayList<Message> complete = new ArrayList<Message>(); // synchronized
- private ArrayList<Message> commands = new ArrayList<Message>(); // synchronized
- private GLFramesView sampleView;
-
- public MessageQueue(GLFramesView sampleView, final ProcessMessage[] processes) {
- this.sampleView = sampleView;
- this.processes = processes;
- }
-
- public void start(final ByteOrder byteOrder, final FileInputStream file) {
- if (running)
- return;
- running = true;
- this.byteOrder = byteOrder;
- this.file = file;
- thread = new Thread(this);
- thread.start();
- }
-
- public void stop() {
- if (!running)
- return;
- running = false;
- }
-
- public boolean isRunning() {
- return running;
- }
-
- private void sendCommands(final int contextId) throws IOException {
- synchronized (commands) {
- for (int i = 0; i < commands.size(); i++) {
- Message command = commands.get(i);
- if (command.getContextId() == contextId || command.getContextId() == 0) {
- sendMessage(commands.remove(i));
- i--;
- }
- }
- }
- }
-
- public void addCommand(Message command) {
- synchronized (commands) {
- commands.add(command);
- }
- }
-
- // these should only be accessed from the network thread;
- // access call chain starts with run()
- private DataInputStream dis = null;
- private DataOutputStream dos = null;
- private SparseArray<ArrayList<Message>> incoming = new SparseArray<ArrayList<Message>>();
-
- @Override
- public void run() {
- Socket socket = null;
- if (file == null)
- try {
- socket = new Socket();
- socket.connect(new java.net.InetSocketAddress("127.0.0.1", Integer
- .parseInt(sampleView.actionPort.getText())));
- dis = new DataInputStream(socket.getInputStream());
- dos = new DataOutputStream(socket.getOutputStream());
- } catch (Exception e) {
- running = false;
- Error(e);
- }
- else
- dis = new DataInputStream(file);
-
- while (running) {
- try {
- if (file != null && file.available() == 0) {
- running = false;
- break;
- }
- } catch (IOException e1) {
- e1.printStackTrace();
- assert false;
- }
-
- Message msg = null;
- if (incoming.size() > 0) { // find queued incoming
- for (int i = 0; i < incoming.size(); i++) {
- final ArrayList<Message> messages = incoming.valueAt(i);
- if (messages.size() > 0) {
- msg = messages.remove(0);
- break;
- }
- }
- }
- try {
- if (null == msg) // get incoming from network
- msg = receiveMessage(dis);
- processMessage(dos, msg);
- } catch (IOException e) {
- Error(e);
- running = false;
- break;
- }
- }
-
- try {
- if (socket != null)
- socket.close();
- else
- file.close();
- } catch (IOException e) {
- Error(e);
- running = false;
- }
-
- }
-
- private void putMessage(final Message msg) {
- ArrayList<Message> existing = incoming.get(msg.getContextId());
- if (existing == null)
- incoming.put(msg.getContextId(), existing = new ArrayList<Message>());
- existing.add(msg);
- }
-
- Message receiveMessage(final int contextId) throws IOException {
- Message msg = receiveMessage(dis);
- while (msg.getContextId() != contextId) {
- putMessage(msg);
- msg = receiveMessage(dis);
- }
- return msg;
- }
-
- void sendMessage(final Message msg) throws IOException {
- sendMessage(dos, msg);
- }
-
- // should only be used by DefaultProcessMessage
- private SparseArray<Message> partials = new SparseArray<Message>();
-
- Message getPartialMessage(final int contextId) {
- return partials.get(contextId);
- }
-
- // used to add BeforeCall to complete if it was skipped
- void completePartialMessage(final int contextId) {
- final Message msg = partials.get(contextId);
- partials.remove(contextId);
- assert msg != null;
- assert msg.getType() == Type.BeforeCall;
- if (msg != null)
- synchronized (complete) {
- complete.add(msg);
- }
- }
-
- // can be used by other message processor as default processor
- void defaultProcessMessage(final Message msg, boolean expectResponse,
- boolean sendResponse) throws IOException {
- final int contextId = msg.getContextId();
- if (msg.getType() == Type.BeforeCall) {
- if (sendResponse) {
- final Message.Builder builder = Message.newBuilder();
- builder.setContextId(contextId);
- builder.setType(Type.Response);
- builder.setExpectResponse(expectResponse);
- builder.setFunction(Function.CONTINUE);
- sendMessage(dos, builder.build());
- }
- assert partials.indexOfKey(contextId) < 0;
- partials.put(contextId, msg);
- } else if (msg.getType() == Type.AfterCall) {
- if (sendResponse) {
- final Message.Builder builder = Message.newBuilder();
- builder.setContextId(contextId);
- builder.setType(Type.Response);
- builder.setExpectResponse(expectResponse);
- builder.setFunction(Function.SKIP);
- sendMessage(dos, builder.build());
- }
- assert partials.indexOfKey(contextId) >= 0;
- final Message before = partials.get(contextId);
- partials.remove(contextId);
- assert before.getFunction() == msg.getFunction();
- final Message completed = before.toBuilder().mergeFrom(msg)
- .setType(Type.CompleteCall).build();
- synchronized (complete) {
- complete.add(completed);
- }
- } else if (msg.getType() == Type.CompleteCall) {
- // this type should only be encountered on client after processing
- assert file != null;
- assert !msg.getExpectResponse();
- assert !sendResponse;
- assert partials.indexOfKey(contextId) < 0;
- synchronized (complete) {
- complete.add(msg);
- }
- } else if (msg.getType() == Type.Response && msg.getFunction() == Function.SETPROP) {
- synchronized (complete) {
- complete.add(msg);
- }
- } else
- assert false;
- }
-
- public Message removeCompleteMessage(int contextId) {
- synchronized (complete) {
- if (complete.size() == 0)
- return null;
- if (0 == contextId) // get a message for any context
- return complete.remove(0);
- for (int i = 0; i < complete.size(); i++) {
- Message msg = complete.get(i);
- if (msg.getContextId() == contextId) {
- complete.remove(i);
- return msg;
- }
- }
- }
- return null;
- }
-
- private Message receiveMessage(final DataInputStream dis)
- throws IOException {
- int len = 0;
- try {
- len = dis.readInt();
- if (byteOrder == ByteOrder.LITTLE_ENDIAN)
- len = Integer.reverseBytes(len); // readInt reads BIT_ENDIAN
- } catch (EOFException e) {
- Error(new Exception("EOF"));
- }
- byte[] buffer = new byte[len];
- int readLen = 0;
- while (readLen < len) {
- int read = -1;
- try {
- read = dis.read(buffer, readLen, len - readLen);
- } catch (EOFException e) {
- Error(new Exception("EOF"));
- }
- if (read < 0) {
- Error(new Exception("read length = " + read));
- return null;
- } else
- readLen += read;
- }
- Message msg = Message.parseFrom(buffer);
- sendCommands(msg.getContextId());
- return msg;
- }
-
- private void sendMessage(final DataOutputStream dos, final Message message)
- throws IOException {
- if (dos == null)
- return;
- assert message.getFunction() != Function.NEG;
- final byte[] data = message.toByteArray();
- if (byteOrder == ByteOrder.BIG_ENDIAN)
- dos.writeInt(data.length);
- else
- dos.writeInt(Integer.reverseBytes(data.length));
- dos.write(data);
- }
-
- private void processMessage(final DataOutputStream dos, final Message msg) throws IOException {
- if (msg.getExpectResponse()) {
- assert dos != null; // readonly source cannot expectResponse
- for (ProcessMessage process : processes)
- if (process.processMessage(this, msg))
- return;
- defaultProcessMessage(msg, msg.getExpectResponse(), msg.getExpectResponse());
- } else
- defaultProcessMessage(msg, msg.getExpectResponse(), msg.getExpectResponse());
- }
-
- void Error(Exception e) {
- sampleView.showError(e);
- }
-}
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/ShaderEditor.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/ShaderEditor.java
deleted file mode 100644
index 5ecff44..0000000
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/ShaderEditor.java
+++ /dev/null
@@ -1,408 +0,0 @@
-/*
- ** Copyright 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.gldebugger;
-
-import com.android.ide.eclipse.gldebugger.DebuggerMessage.Message;
-import com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Function;
-import com.android.ide.eclipse.gldebugger.DebuggerMessage.Message.Type;
-
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ExtendedModifyEvent;
-import org.eclipse.swt.custom.ExtendedModifyListener;
-import org.eclipse.swt.custom.StyleRange;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.util.ArrayList;
-
-public class ShaderEditor extends Composite implements SelectionListener, ExtendedModifyListener,
- ProcessMessage {
- GLFramesView mGLFramesView;
-
- ToolBar toolbar;
- ToolItem uploadShader, restoreShader, currentPrograms;
- List list;
- StyledText styledText;
-
- GLShader current;
-
- ArrayList<GLShader> shadersToUpload = new ArrayList<GLShader>();
-
- ShaderEditor(GLFramesView view, Composite parent) {
- super(parent, 0);
- mGLFramesView = view;
-
- GridLayout gridLayout = new GridLayout();
- gridLayout.numColumns = 1;
- this.setLayout(gridLayout);
-
- toolbar = new ToolBar(this, SWT.BORDER);
-
- uploadShader = new ToolItem(toolbar, SWT.PUSH);
- uploadShader.setText("Upload Shader");
- uploadShader.addSelectionListener(this);
-
- restoreShader = new ToolItem(toolbar, SWT.PUSH);
- restoreShader.setText("Original Shader");
- restoreShader.addSelectionListener(this);
-
- currentPrograms = new ToolItem(toolbar, SWT.PUSH);
- currentPrograms.setText("Current Programs: ");
-
- list = new List(this, SWT.V_SCROLL);
- list.setFont(new Font(parent.getDisplay(), "Courier", 10, 0));
- list.addSelectionListener(this);
- GridData gridData = new GridData();
- gridData.horizontalAlignment = SWT.FILL;
- gridData.grabExcessHorizontalSpace = true;
- gridData.verticalAlignment = SWT.FILL;
- gridData.grabExcessVerticalSpace = true;
- list.setLayoutData(gridData);
-
- styledText = new StyledText(this, SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI);
- gridData = new GridData();
- gridData.horizontalAlignment = SWT.FILL;
- gridData.grabExcessHorizontalSpace = true;
- gridData.verticalAlignment = SWT.FILL;
- gridData.grabExcessVerticalSpace = true;
- gridData.verticalSpan = 2;
- styledText.setLayoutData(gridData);
- styledText.addExtendedModifyListener(this);
- }
-
- public void updateUI() {
- list.removeAll();
- String progs = "Current Programs: ";
- for (int j = 0; j < mGLFramesView.debugContexts.size(); j++) {
- final Context context = mGLFramesView.debugContexts.valueAt(j).currentContext;
-
- if (context.serverShader.current != null) {
- progs += context.serverShader.current.name + "(0x";
- progs += Integer.toHexString(context.contextId) + ") ";
- }
- for (int i = 0; i < context.serverShader.shaders.size(); i++) {
- GLShader shader = context.serverShader.shaders.valueAt(i);
- StringBuilder builder = new StringBuilder();
- builder.append(String.format("%08X", context.contextId));
- builder.append(' ');
- builder.append(shader.type);
- while (builder.length() < 30)
- builder.append(" ");
- builder.append(shader.name);
- while (builder.length() < 40)
- builder.append(" ");
- builder.append(" : ");
- for (Context ctx : context.shares) {
- builder.append(String.format("%08X", ctx.contextId));
- builder.append(' ');
- }
- builder.append(": ");
- for (int program : shader.programs) {
- builder.append(program);
- builder.append(" ");
- }
- list.add(builder.toString());
- }
-
- }
-
- currentPrograms.setText(progs);
- toolbar.redraw();
- toolbar.pack(true);
- toolbar.update();
- }
-
- void uploadShader() {
- current.source = styledText.getText();
-
- // optional syntax check by glsl_compiler, built from external/mesa3d
- if (new File("./glsl_compiler").exists())
- try {
- File file = File.createTempFile("shader",
- current.type == GLEnum.GL_VERTEX_SHADER ? ".vert" : ".frag");
- FileWriter fileWriter = new FileWriter(file, false);
- fileWriter.write(current.source);
- fileWriter.close();
-
- ProcessBuilder processBuilder = new ProcessBuilder(
- "./glsl_compiler", "--glsl-es", file.getAbsolutePath());
- final Process process = processBuilder.start();
- InputStream is = process.getInputStream();
- InputStreamReader isr = new InputStreamReader(is);
- BufferedReader br = new BufferedReader(isr);
- String line;
- String infolog = "";
-
- styledText.setLineBackground(0, styledText.getLineCount(), null);
-
- while ((line = br.readLine()) != null) {
- infolog += line;
- if (!line.startsWith("0:"))
- continue;
- String[] details = line.split(":|\\(|\\)");
- final int ln = Integer.parseInt(details[1]);
- if (ln > 0) // usually line 0 means errors other than syntax
- styledText.setLineBackground(ln - 1, 1,
- new Color(Display.getCurrent(), 255, 230, 230));
- }
- file.delete();
- if (infolog.length() > 0) {
- if (!MessageDialog.openConfirm(getShell(),
- "Shader Syntax Error, Continue?", infolog))
- return;
- }
- } catch (IOException e) {
- mGLFramesView.showError(e);
- }
-
- // add the initial command, which when read by server will set
- // expectResponse for the message loop and go into message exchange
- synchronized (shadersToUpload) {
- for (GLShader shader : shadersToUpload) {
- if (shader.context.context.contextId != current.context.context.contextId)
- continue;
- MessageDialog.openWarning(this.getShell(), "Context 0x" +
- Integer.toHexString(current.context.context.contextId),
- "Previous shader upload not complete, try again");
- return;
- }
- shadersToUpload.add(current);
- final int contextId = current.context.context.contextId;
- Message.Builder builder = getBuilder(contextId);
- MessageParserEx.instance.parse(builder,
- String.format("glShaderSource(%d,1,\"%s\",0)", current.name, current.source));
- mGLFramesView.messageQueue.addCommand(builder.build());
- }
- }
-
- Message.Builder getBuilder(int contextId) {
- Message.Builder builder = Message.newBuilder();
- builder.setContextId(contextId);
- builder.setType(Type.Response);
- builder.setExpectResponse(true);
- return builder;
- }
-
- Message exchangeMessage(final int contextId, final MessageQueue queue,
- String format, Object... args) throws IOException {
- Message.Builder builder = getBuilder(contextId);
- MessageParserEx.instance.parse(builder, String.format(format, args));
- final Function function = builder.getFunction();
- queue.sendMessage(builder.build());
- final Message msg = queue.receiveMessage(contextId);
- assert msg.getContextId() == contextId;
- assert msg.getType() == Type.AfterGeneratedCall;
- assert msg.getFunction() == function;
- return msg;
- }
-
- // this is called from network thread
- @Override
- public boolean processMessage(final MessageQueue queue, final Message msg)
- throws IOException {
- GLShader shader = null;
- final int contextId = msg.getContextId();
- synchronized (shadersToUpload) {
- if (shadersToUpload.size() == 0)
- return false;
- boolean matchingContext = false;
- for (int i = 0; i < shadersToUpload.size(); i++) {
- shader = shadersToUpload.get(i);
- for (Context ctx : shader.context.context.shares)
- if (ctx.contextId == contextId) {
- matchingContext = true;
- break;
- }
- if (matchingContext) {
- shadersToUpload.remove(i);
- break;
- }
- }
- if (!matchingContext)
- return false;
- }
-
- // glShaderSource was already sent to trigger set expectResponse
- assert msg.getType() == Type.AfterGeneratedCall;
- assert msg.getFunction() == Function.glShaderSource;
-
- exchangeMessage(contextId, queue, "glCompileShader(%d)", shader.name);
-
- // the 0, "" and {0} are dummies for the parser
- Message rcv = exchangeMessage(contextId, queue,
- "glGetShaderiv(%d, GL_COMPILE_STATUS, {0})", shader.name);
- assert rcv.hasData();
- if (rcv.getData().asReadOnlyByteBuffer().getInt() == 0) {
- // compile failed
- rcv = exchangeMessage(contextId, queue,
- "glGetShaderInfoLog(%d, 0, 0, \"\")", shader.name);
- final String title = String.format("Shader %d in 0x%s failed to compile",
- shader.name, Integer.toHexString(shader.context.context.contextId));
- final String message = rcv.getData().toStringUtf8();
- mGLFramesView.getSite().getShell().getDisplay().syncExec(new Runnable() {
- @Override
- public void run()
- {
- MessageDialog.openWarning(getShell(), title, message);
- }
- });
- } else
- for (int programName : shader.programs) {
- GLProgram program = shader.context.getProgram(programName);
- exchangeMessage(contextId, queue, "glLinkProgram(%d)", program.name);
- rcv = exchangeMessage(contextId, queue,
- "glGetProgramiv(%d, GL_LINK_STATUS, {0})", program.name);
- assert rcv.hasData();
- if (rcv.getData().asReadOnlyByteBuffer().getInt() != 0)
- continue;
- // link failed
- rcv = exchangeMessage(contextId, queue,
- "glGetProgramInfoLog(%d, 0, 0, \"\")", program.name);
- final String title = String.format("Program %d in 0x%s failed to link",
- program.name, Integer.toHexString(program.context.context.contextId));
- final String message = rcv.getData().toStringUtf8();
- mGLFramesView.getSite().getShell().getDisplay().syncExec(new Runnable() {
- @Override
- public void run()
- {
- MessageDialog.openWarning(getShell(), title, message);
- }
- });
- // break;
- }
-
- // TODO: add to upload results if failed
-
- Message.Builder builder = getBuilder(contextId);
- builder.setExpectResponse(false);
- if (queue.getPartialMessage(contextId) != null)
- // the glShaderSource interrupted a BeforeCall, so continue
- builder.setFunction(Function.CONTINUE);
- else
- builder.setFunction(Function.SKIP);
- queue.sendMessage(builder.build());
-
- return true;
- }
-
- @Override
- public void widgetSelected(SelectionEvent e) {
- if (e.getSource() == uploadShader && null != current) {
- uploadShader();
- return;
- } else if (e.getSource() == restoreShader && null != current) {
- current.source = styledText.getText();
- styledText.setText(current.originalSource);
- return;
- }
-
- if (list.getSelectionCount() < 1)
- return;
- if (null != current && !current.source.equals(styledText.getText())) {
- String[] btns = {
- "&Upload", "&Save", "&Discard"
- };
- MessageDialog dialog = new MessageDialog(this.getShell(), "Shader Edited",
- null, "Shader source has been edited", MessageDialog.QUESTION, btns, 0);
- int rc = dialog.open();
- if (rc == SWT.DEFAULT || rc == 0)
- uploadShader();
- else if (rc == 1)
- current.source = styledText.getText();
- // else if (rc == 2) do nothing; selection is changing
- }
- String[] details = list.getSelection()[0].split("\\s+");
- final int contextId = Integer.parseInt(details[0], 16);
- int name = Integer.parseInt(details[2]);
- current = mGLFramesView.debugContexts.get(contextId).currentContext.serverShader.shaders
- .get(name);
- styledText.setText(current.source);
- }
-
- @Override
- public void widgetDefaultSelected(SelectionEvent e) {
- widgetSelected(e);
- }
-
- @Override
- public void modifyText(ExtendedModifyEvent event) {
- final String[] keywords = {
- "gl_Position", "gl_FragColor"
- };
- // FIXME: proper scanner for syntax highlighting
- String text = styledText.getText();
- int start = event.start;
- int end = event.start + event.length;
- start -= 20; // deleting chars from keyword causes rescan
- end += 20;
- if (start < 0)
- start = 0;
- if (end > text.length())
- end = text.length();
- if (null != styledText.getStyleRangeAtOffset(event.start)) {
- StyleRange clearStyleRange = new StyleRange();
- clearStyleRange.start = start;
- clearStyleRange.length = end - start;
- clearStyleRange.foreground = event.display.getSystemColor(SWT.COLOR_BLACK);
- styledText.setStyleRange(clearStyleRange);
- }
-
- while (start < end) {
- for (final String keyword : keywords) {
- if (!text.substring(start).startsWith(keyword))
- continue;
- if (start > 0) {
- final char before = text.charAt(start - 1);
- if (Character.isLetterOrDigit(before))
- continue;
- else if (before == '_')
- continue;
- }
- if (start + keyword.length() < text.length()) {
- final char after = text.charAt(start + keyword.length());
- if (Character.isLetterOrDigit(after))
- continue;
- else if (after == '_')
- continue;
- }
- StyleRange style1 = new StyleRange();
- style1.start = start;
- style1.length = keyword.length();
- style1.foreground = event.display.getSystemColor(SWT.COLOR_BLUE);
- styledText.setStyleRange(style1);
- }
- start++;
- }
- }
-}
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/GLEnum.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/GLEnum.java
index 1126783..97c04ca 100644
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/GLEnum.java
+++ b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/GLEnum.java
@@ -16,7 +16,7 @@
// auto generated by generate_GLEnum_java.py"
-package com.android.ide.eclipse.gldebugger;
+package com.android.ide.eclipse.gltrace;
public enum GLEnum {
GL_POINTS(0x0000),
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/GLTraceOptionsDialog.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/GLTraceOptionsDialog.java
index c7772a2..1ddb6d8 100644
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/GLTraceOptionsDialog.java
+++ b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/GLTraceOptionsDialog.java
@@ -18,7 +18,6 @@ package com.android.ide.eclipse.gltrace;
import com.android.ddmlib.AndroidDebugBridge;
import com.android.ddmlib.IDevice;
-import com.android.ide.eclipse.gldebugger.GlTracePlugin;
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
import org.eclipse.core.runtime.preferences.InstanceScope;
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/GLUtils.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/GLUtils.java
index ae6f3a0..9e82768 100644
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/GLUtils.java
+++ b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/GLUtils.java
@@ -16,7 +16,6 @@
package com.android.ide.eclipse.gltrace;
-import com.android.ide.eclipse.gldebugger.GLEnum;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/GlTracePlugin.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/GlTracePlugin.java
index 188b480..a73b7f1 100644
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gldebugger/GlTracePlugin.java
+++ b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/GlTracePlugin.java
@@ -14,7 +14,7 @@
** limitations under the License.
*/
-package com.android.ide.eclipse.gldebugger;
+package com.android.ide.eclipse.gltrace;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.swt.widgets.Display;
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/ProtoBufUtils.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/ProtoBufUtils.java
index 48cca87..8671ca3 100644
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/ProtoBufUtils.java
+++ b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/ProtoBufUtils.java
@@ -16,7 +16,6 @@
package com.android.ide.eclipse.gltrace;
-import com.android.ide.eclipse.gldebugger.GlTracePlugin;
import com.android.ide.eclipse.gltrace.GLProtoBuf.GLMessage;
import org.eclipse.swt.graphics.Image;
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/TraceFileParserTask.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/TraceFileParserTask.java
index 7bd86d5..c3ea122 100644
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/TraceFileParserTask.java
+++ b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/TraceFileParserTask.java
@@ -16,8 +16,6 @@
package com.android.ide.eclipse.gltrace;
-import com.android.ide.eclipse.gldebugger.GLEnum;
-import com.android.ide.eclipse.gldebugger.GlTracePlugin;
import com.android.ide.eclipse.gltrace.GLProtoBuf.GLMessage;
import com.android.ide.eclipse.gltrace.GLProtoBuf.GLMessage.Function;
import com.android.ide.eclipse.gltrace.format.GLAPISpec;
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/editors/StateViewPage.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/editors/StateViewPage.java
index 288dc15..7c71d91 100644
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/editors/StateViewPage.java
+++ b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/editors/StateViewPage.java
@@ -16,7 +16,7 @@
package com.android.ide.eclipse.gltrace.editors;
-import com.android.ide.eclipse.gldebugger.GlTracePlugin;
+import com.android.ide.eclipse.gltrace.GlTracePlugin;
import com.android.ide.eclipse.gltrace.editors.GLCallGroups.GLCallNode;
import com.android.ide.eclipse.gltrace.model.GLCall;
import com.android.ide.eclipse.gltrace.model.GLTrace;
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/format/GLMessageFormatter.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/format/GLMessageFormatter.java
index e3249e6..6c34005 100644
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/format/GLMessageFormatter.java
+++ b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/format/GLMessageFormatter.java
@@ -16,7 +16,7 @@
package com.android.ide.eclipse.gltrace.format;
-import com.android.ide.eclipse.gldebugger.GLEnum;
+import com.android.ide.eclipse.gltrace.GLEnum;
import com.android.ide.eclipse.gltrace.GLProtoBuf.GLMessage;
import com.android.ide.eclipse.gltrace.GLProtoBuf.GLMessage.DataType;
import com.android.ide.eclipse.gltrace.GLProtoBuf.GLMessage.DataType.Type;
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/GLEnumProperty.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/GLEnumProperty.java
index 473483a..a3acbd4 100644
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/GLEnumProperty.java
+++ b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/GLEnumProperty.java
@@ -16,7 +16,7 @@
package com.android.ide.eclipse.gltrace.state;
-import com.android.ide.eclipse.gldebugger.GLEnum;
+import com.android.ide.eclipse.gltrace.GLEnum;
/** Properties that hold a {@link GLEnum}. */
public final class GLEnumProperty extends GLAbstractAtomicProperty {
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/GLState.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/GLState.java
index 522130b..aac5ad3 100644
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/GLState.java
+++ b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/GLState.java
@@ -16,7 +16,7 @@
package com.android.ide.eclipse.gltrace.state;
-import com.android.ide.eclipse.gldebugger.GLEnum;
+import com.android.ide.eclipse.gltrace.GLEnum;
import com.android.ide.eclipse.gltrace.state.GLIntegerProperty.DisplayRadix;
import java.util.Collections;
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/transforms/CurrentVboPropertyAccessor.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/transforms/CurrentVboPropertyAccessor.java
index ea7617d..bd1286d 100644
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/transforms/CurrentVboPropertyAccessor.java
+++ b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/transforms/CurrentVboPropertyAccessor.java
@@ -16,7 +16,7 @@
package com.android.ide.eclipse.gltrace.state.transforms;
-import com.android.ide.eclipse.gldebugger.GLEnum;
+import com.android.ide.eclipse.gltrace.GLEnum;
import com.android.ide.eclipse.gltrace.state.GLIntegerProperty;
import com.android.ide.eclipse.gltrace.state.GLStateType;
import com.android.ide.eclipse.gltrace.state.IGLProperty;
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/transforms/StateTransformFactory.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/transforms/StateTransformFactory.java
index 47a924f..f5aa164 100644
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/transforms/StateTransformFactory.java
+++ b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/transforms/StateTransformFactory.java
@@ -16,8 +16,8 @@
package com.android.ide.eclipse.gltrace.state.transforms;
-import com.android.ide.eclipse.gldebugger.GLEnum;
import com.android.ide.eclipse.gltrace.FileUtils;
+import com.android.ide.eclipse.gltrace.GLEnum;
import com.android.ide.eclipse.gltrace.GLProtoBuf.GLMessage;
import com.android.ide.eclipse.gltrace.state.GLState;
import com.android.ide.eclipse.gltrace.state.GLStateType;
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/transforms/TexImageTransform.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/transforms/TexImageTransform.java
index 0d4ee30..775ff23 100644
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/transforms/TexImageTransform.java
+++ b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/transforms/TexImageTransform.java
@@ -16,8 +16,8 @@
package com.android.ide.eclipse.gltrace.state.transforms;
-import com.android.ide.eclipse.gldebugger.GLEnum;
import com.android.ide.eclipse.gltrace.FileUtils;
+import com.android.ide.eclipse.gltrace.GLEnum;
import com.android.ide.eclipse.gltrace.state.GLStringProperty;
import com.android.ide.eclipse.gltrace.state.IGLProperty;
import com.google.common.io.Files;
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/views/FitToCanvasAction.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/views/FitToCanvasAction.java
index eecd86e..1ee0fa0 100644
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/views/FitToCanvasAction.java
+++ b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/views/FitToCanvasAction.java
@@ -16,7 +16,7 @@
package com.android.ide.eclipse.gltrace.views;
-import com.android.ide.eclipse.gldebugger.GlTracePlugin;
+import com.android.ide.eclipse.gltrace.GlTracePlugin;
import com.android.ide.eclipse.gltrace.widgets.ImageCanvas;
import org.eclipse.jface.action.Action;
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/views/detail/ShaderUniformDetailsProvider.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/views/detail/ShaderUniformDetailsProvider.java
index f156c00..2e3f725 100644
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/views/detail/ShaderUniformDetailsProvider.java
+++ b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/views/detail/ShaderUniformDetailsProvider.java
@@ -16,7 +16,7 @@
package com.android.ide.eclipse.gltrace.views.detail;
-import com.android.ide.eclipse.gldebugger.GLEnum;
+import com.android.ide.eclipse.gltrace.GLEnum;
import com.android.ide.eclipse.gltrace.state.GLCompositeProperty;
import com.android.ide.eclipse.gltrace.state.GLStateType;
import com.android.ide.eclipse.gltrace.state.IGLProperty;
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/views/detail/VboDetailProvider.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/views/detail/VboDetailProvider.java
index d8a6bc9..e0ba947 100644
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/views/detail/VboDetailProvider.java
+++ b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/views/detail/VboDetailProvider.java
@@ -16,7 +16,7 @@
package com.android.ide.eclipse.gltrace.views.detail;
-import com.android.ide.eclipse.gldebugger.GLEnum;
+import com.android.ide.eclipse.gltrace.GLEnum;
import com.android.ide.eclipse.gltrace.GLUtils;
import com.android.ide.eclipse.gltrace.state.GLCompositeProperty;
import com.android.ide.eclipse.gltrace.state.GLStateType;
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/views/detail/VertexAttribPointerDataDetailProvider.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/views/detail/VertexAttribPointerDataDetailProvider.java
index 83f412b..55f8d84 100644
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/views/detail/VertexAttribPointerDataDetailProvider.java
+++ b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/views/detail/VertexAttribPointerDataDetailProvider.java
@@ -16,7 +16,7 @@
package com.android.ide.eclipse.gltrace.views.detail;
-import com.android.ide.eclipse.gldebugger.GLEnum;
+import com.android.ide.eclipse.gltrace.GLEnum;
import com.android.ide.eclipse.gltrace.GLUtils;
import com.android.ide.eclipse.gltrace.GLProtoBuf.GLMessage.Function;
import com.android.ide.eclipse.gltrace.model.GLCall;