| /* |
| * Copyright (C) 2011 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package com.android.ide.eclipse.gltrace.format; |
| |
| import com.android.ide.eclipse.gltrace.GLProtoBuf.GLMessage.DataType.Type; |
| |
| public class GLDataTypeSpec { |
| private final String mCType; |
| private final Type mType; |
| private final String mName; |
| private final boolean mIsPointer; |
| |
| public GLDataTypeSpec(String type, String name) { |
| mCType = type; |
| mName = name; |
| |
| mType = getDataType(type); |
| mIsPointer = type.contains("*"); //$NON-NLS-1$ |
| } |
| |
| private Type getDataType(String type) { |
| type = type.toLowerCase(); |
| |
| // We use type.contains() rather than type.equals since we are matching against |
| // the type name along with qualifiers. e.g. "void", "GLvoid" and "void*" should |
| // all be assigned the same type. |
| if (type.contains("boolean")) { //$NON-NLS-1$ |
| return Type.BOOL; |
| } else if (type.contains("enum")) { //$NON-NLS-1$ |
| return Type.ENUM; |
| } else if (type.contains("float") || type.contains("clampf")) { //$NON-NLS-1$ //$NON-NLS-2$ |
| return Type.FLOAT; |
| } else if (type.contains("void")) { //$NON-NLS-1$ |
| return Type.VOID; |
| } else if (type.contains("char")) { //$NON-NLS-1$ |
| return Type.CHAR; |
| } else { |
| // Matches all of the following types: |
| // glclampx, gluint, glint, glshort, glsizei, glfixed, |
| // glsizeiptr, glintptr, glbitfield, glfixed, glubyte. |
| // We might do custom formatting for these types in the future. |
| return Type.INT; |
| } |
| } |
| |
| public Type getDataType() { |
| return mType; |
| } |
| |
| public String getCType() { |
| return mCType; |
| } |
| |
| public String getArgName() { |
| return mName; |
| } |
| |
| public boolean isPointer() { |
| return mIsPointer; |
| } |
| } |