1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
/*
* 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;
}
}
|