diff options
7 files changed, 109 insertions, 10 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/DisplayRadix.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/DisplayRadix.java new file mode 100644 index 0000000..935f4d7 --- /dev/null +++ b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/DisplayRadix.java @@ -0,0 +1,21 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.ide.eclipse.gltrace.state; + +public enum DisplayRadix { + DECIMAL, HEX +} diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/GLBooleanProperty.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/GLBooleanProperty.java index 22d8d47..8332b0a 100644 --- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/GLBooleanProperty.java +++ b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/GLBooleanProperty.java @@ -30,7 +30,7 @@ public final class GLBooleanProperty extends GLAbstractAtomicProperty { @Override public boolean isDefault() { - return mDefaultValue == mCurrentValue; + return mDefaultValue != null & mDefaultValue.equals(mCurrentValue); } public void setValue(Boolean newValue) { diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/GLIntegerProperty.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/GLIntegerProperty.java index 1a71fe2..7374ff0 100644 --- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/GLIntegerProperty.java +++ b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/GLIntegerProperty.java @@ -18,8 +18,6 @@ package com.android.ide.eclipse.gltrace.state; /** Properties that hold an integer value. */ public class GLIntegerProperty extends GLAbstractAtomicProperty { - public enum DisplayRadix { DECIMAL, HEX }; - private final Integer mDefaultValue; private Integer mCurrentValue; private final DisplayRadix mRadix; @@ -37,7 +35,7 @@ public class GLIntegerProperty extends GLAbstractAtomicProperty { @Override public boolean isDefault() { - return mCurrentValue == mDefaultValue; + return mDefaultValue != null & mDefaultValue.equals(mCurrentValue); } public void setValue(Integer newValue) { diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/GLLongProperty.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/GLLongProperty.java new file mode 100644 index 0000000..44c04ec --- /dev/null +++ b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/GLLongProperty.java @@ -0,0 +1,73 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.ide.eclipse.gltrace.state; + +/** Properties that hold a long value. */ +public class GLLongProperty extends GLAbstractAtomicProperty { + private final Long mDefaultValue; + private Long mCurrentValue; + private final DisplayRadix mRadix; + + public GLLongProperty(GLStateType name, Long defaultValue, DisplayRadix radix) { + super(name); + + mDefaultValue = mCurrentValue = defaultValue; + mRadix = radix; + } + + public GLLongProperty(GLStateType name, Long defaultValue) { + this(name, defaultValue, DisplayRadix.DECIMAL); + } + + @Override + public boolean isDefault() { + return mDefaultValue != null & mDefaultValue.equals(mCurrentValue); + } + + public void setValue(Long newValue) { + mCurrentValue = newValue; + } + + @Override + public String getStringValue() { + if (mRadix == DisplayRadix.HEX) { + return String.format("0x%08x", Long.valueOf(mCurrentValue)); + } + + return mCurrentValue.toString(); + } + + @Override + public String toString() { + return getType() + "=" + getStringValue(); //$NON-NLS-1$ + } + + @Override + public void setValue(Object value) { + if (value instanceof Long) { + mCurrentValue = (Long) value; + } else { + throw new IllegalArgumentException("Attempt to set non-integer value for " //$NON-NLS-1$ + + getType()); + } + } + + @Override + public Object getValue() { + return mCurrentValue; + } +} diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/GLObjectProperty.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/GLObjectProperty.java index 84ad6ec..703d4da 100644 --- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/GLObjectProperty.java +++ b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/GLObjectProperty.java @@ -34,7 +34,7 @@ public class GLObjectProperty extends GLAbstractAtomicProperty { @Override public boolean isDefault() { - return mDefaultValue == mCurrentValue; + return mDefaultValue != null & mDefaultValue.equals(mCurrentValue); } @Override 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 1743499..6230586 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 @@ -17,12 +17,12 @@ package com.android.ide.eclipse.gltrace.state; import com.android.ide.eclipse.gltrace.GLEnum; -import com.android.ide.eclipse.gltrace.state.GLIntegerProperty.DisplayRadix; +import com.android.ide.eclipse.gltrace.state.DisplayRadix; import java.util.Collections; public class GLState { - /** # of texture units modelled in the GL State. */ + /** # of texture units modeled in the GL State. */ public static final int TEXTURE_UNIT_COUNT = 16; /** # of vertex attributes */ @@ -56,7 +56,8 @@ public class GLState { stride = new GLIntegerProperty(GLStateType.VERTEX_ATTRIB_ARRAY_STRIDE, 0); type = new GLEnumProperty(GLStateType.VERTEX_ATTRIB_ARRAY_TYPE, GLEnum.GL_FLOAT); normalized = new GLBooleanProperty(GLStateType.VERTEX_ATTRIB_ARRAY_NORMALIZED, false); - pointer = new GLIntegerProperty(GLStateType.VERTEX_ATTRIB_ARRAY_POINTER, 0); + pointer = new GLLongProperty(GLStateType.VERTEX_ATTRIB_ARRAY_POINTER, 0L, + DisplayRadix.HEX); IGLProperty perVertexAttribArrayState = new GLCompositeProperty( GLStateType.VERTEX_ATTRIB_ARRAY_COMPOSITE, 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 fb9f227..023f84b 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 @@ -189,7 +189,13 @@ public class StateTransformFactory { int type = msg.getArgs(2).getIntValue(0); boolean normalized = msg.getArgs(3).getBoolValue(0); int stride = msg.getArgs(4).getIntValue(0); - int pointer = msg.getArgs(5).getIntValue(0); + + long pointer; + if (msg.getArgs(5).getIntValueCount() > 0) { + pointer = msg.getArgs(5).getIntValue(0); + } else { + pointer = msg.getArgs(5).getInt64Value(0); + } List<IStateTransform> transforms = new ArrayList<IStateTransform>(); transforms.add(new PropertyChangeTransform( @@ -226,7 +232,7 @@ public class StateTransformFactory { GLStateType.VERTEX_ATTRIB_ARRAY, Integer.valueOf(index), GLStateType.VERTEX_ATTRIB_ARRAY_POINTER), - Integer.valueOf(pointer))); + Long.valueOf(pointer))); return transforms; } |