heavily optimize AttrType.Size by removing redundant map
This commit is contained in:
parent
6ef42cf1ea
commit
6986e8a000
|
@ -59,20 +59,36 @@ const (
|
||||||
|
|
||||||
// Size returns the size of a type in bytes.
|
// Size returns the size of a type in bytes.
|
||||||
func (at AttrType) Size() int {
|
func (at AttrType) Size() int {
|
||||||
return map[AttrType]int{
|
switch at {
|
||||||
Int: 4,
|
case Int:
|
||||||
Float: 4,
|
return 4
|
||||||
Vec2: 2 * 4,
|
case Float:
|
||||||
Vec3: 3 * 4,
|
return 4
|
||||||
Vec4: 4 * 4,
|
case Vec2:
|
||||||
Mat2: 2 * 2 * 4,
|
return 2 * 4
|
||||||
Mat23: 2 * 3 * 4,
|
case Vec3:
|
||||||
Mat24: 2 * 4 * 4,
|
return 3 * 4
|
||||||
Mat3: 3 * 3 * 4,
|
case Vec4:
|
||||||
Mat32: 3 * 2 * 4,
|
return 4 * 4
|
||||||
Mat34: 3 * 4 * 4,
|
case Mat2:
|
||||||
Mat4: 4 * 4 * 4,
|
return 2 * 2 * 4
|
||||||
Mat42: 4 * 2 * 4,
|
case Mat23:
|
||||||
Mat43: 4 * 3 * 4,
|
return 2 * 3 * 4
|
||||||
}[at]
|
case Mat24:
|
||||||
|
return 2 * 4 * 4
|
||||||
|
case Mat3:
|
||||||
|
return 3 * 3 * 4
|
||||||
|
case Mat32:
|
||||||
|
return 3 * 2 * 4
|
||||||
|
case Mat34:
|
||||||
|
return 3 * 4 * 4
|
||||||
|
case Mat4:
|
||||||
|
return 4 * 4 * 4
|
||||||
|
case Mat42:
|
||||||
|
return 4 * 2 * 4
|
||||||
|
case Mat43:
|
||||||
|
return 4 * 3 * 4
|
||||||
|
default:
|
||||||
|
panic("size of vertex attribute type: invalid type")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue