aboutsummaryrefslogtreecommitdiff
path: root/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/views/detail/ShaderUniformDetailsProvider.java
diff options
context:
space:
mode:
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/views/detail/ShaderUniformDetailsProvider.java')
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/views/detail/ShaderUniformDetailsProvider.java173
1 files changed, 0 insertions, 173 deletions
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
deleted file mode 100644
index 2e3f7254b..000000000
--- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/views/detail/ShaderUniformDetailsProvider.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- * Copyright (C) 2012 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.views.detail;
-
-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;
-import com.google.common.base.Joiner;
-
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Text;
-
-import java.util.Collections;
-import java.util.List;
-
-public class ShaderUniformDetailsProvider implements IStateDetailProvider {
- private Text mTextControl;
- private static final Joiner JOINER = Joiner.on(", ");
-
- @Override
- public boolean isApplicable(IGLProperty state) {
- return getShaderUniformProperty(state) != null;
- }
-
- @Override
- public void createControl(Composite parent) {
- mTextControl = new Text(parent, SWT.BORDER | SWT.READ_ONLY | SWT.MULTI | SWT.WRAP);
- mTextControl.setEditable(false);
- }
-
- @Override
- public void disposeControl() {
- }
-
- @Override
- public Control getControl() {
- return mTextControl;
- }
-
- @Override
- public void updateControl(IGLProperty state) {
- IGLProperty uniform = getShaderUniformProperty(state);
- if (uniform instanceof GLCompositeProperty) {
- GLCompositeProperty uniformProperty = (GLCompositeProperty) uniform;
- IGLProperty nameProperty = uniformProperty.getProperty(GLStateType.UNIFORM_NAME);
- IGLProperty typeProperty = uniformProperty.getProperty(GLStateType.UNIFORM_TYPE);
- IGLProperty valueProperty = uniformProperty.getProperty(GLStateType.UNIFORM_VALUE);
-
- String name = (String) nameProperty.getValue();
- GLEnum type = (GLEnum) typeProperty.getValue();
- Object value = valueProperty.getValue();
- mTextControl.setText(formatUniform(name, type, value));
- mTextControl.setEnabled(true);
- } else {
- mTextControl.setText(""); //$NON-NLS-1$
- mTextControl.setEnabled(false);
- }
- }
-
- private String formatUniform(String name, GLEnum type, Object value) {
- String valueText;
-
- switch (type) {
- case GL_FLOAT:
- case GL_FLOAT_VEC2:
- case GL_FLOAT_VEC3:
- case GL_FLOAT_VEC4:
- case GL_INT:
- case GL_INT_VEC2:
- case GL_INT_VEC3:
- case GL_INT_VEC4:
- case GL_BOOL:
- case GL_BOOL_VEC2:
- case GL_BOOL_VEC3:
- case GL_BOOL_VEC4:
- valueText = formatVector(value);
- break;
- case GL_FLOAT_MAT2:
- valueText = formatMatrix(2, value);
- break;
- case GL_FLOAT_MAT3:
- valueText = formatMatrix(3, value);
- break;
- case GL_FLOAT_MAT4:
- valueText = formatMatrix(4, value);
- break;
- case GL_SAMPLER_2D:
- case GL_SAMPLER_CUBE:
- default:
- valueText = value.toString();
- break;
- }
-
- return String.format("%s %s = %s", type, name, valueText); //$NON-NLS-1$
- }
-
- private String formatVector(Object value) {
- if (value instanceof List<?>) {
- List<?> list = (List<?>) value;
- StringBuilder sb = new StringBuilder(list.size() * 4);
- sb.append('[');
- JOINER.appendTo(sb, list);
- sb.append(']');
- return sb.toString();
- }
-
- return value.toString();
- }
-
- private String formatMatrix(int dimension, Object value) {
- if (value instanceof List<?>) {
- List<?> list = (List<?>) value;
- if (list.size() != dimension * dimension) {
- // Uniforms can only be square matrices, so this scenario should
- // not occur.
- return formatVector(value);
- }
-
- StringBuilder sb = new StringBuilder(list.size() * 4);
- sb.append('[');
- sb.append('\n');
- for (int i = 0; i < dimension; i++) {
- sb.append(" "); //$NON-NLS-1$
- JOINER.appendTo(sb, list.subList(i * dimension, (i + 1) * dimension));
- sb.append('\n');
- }
- sb.append(']');
- return sb.toString();
- }
-
- return value.toString();
- }
-
- /**
- * Get the {@link GLStateType#PER_UNIFORM_STATE} property given a node in
- * the state hierarchy.
- */
- private IGLProperty getShaderUniformProperty(IGLProperty state) {
- if (state.getType() == GLStateType.PER_UNIFORM_STATE) {
- return state;
- }
-
- state = state.getParent();
- if (state != null && state.getType() == GLStateType.PER_UNIFORM_STATE) {
- return state;
- }
-
- return null;
- }
-
- @Override
- public List<IContributionItem> getToolBarItems() {
- return Collections.emptyList();
- }
-}