Quellcode durchsuchen

Fixing encodeAsInt field. Had two problems: 1# Bit field didn't got updated for Uint10. 2# Shifting by 8 on uint8_t. Problem was introduced on: 8da579ff99a62318682f1e913f5e0d9f6b8f8b2c.

Dario Manesku vor 10 Jahren
Ursprung
Commit
fa7cd66f71
1 geänderte Dateien mit 4 neuen und 4 gelöschten Zeilen
  1. 4 4
      src/vertexdecl.cpp

+ 4 - 4
src/vertexdecl.cpp

@@ -111,10 +111,10 @@ namespace bgfx
 
 
 	VertexDecl& VertexDecl::add(Attrib::Enum _attrib, uint8_t _num, AttribType::Enum _type, bool _normalized, bool _asInt)
 	VertexDecl& VertexDecl::add(Attrib::Enum _attrib, uint8_t _num, AttribType::Enum _type, bool _normalized, bool _asInt)
 	{
 	{
-		const uint8_t encodedNorm = (_normalized&1)<<7;
-		const uint8_t encodedType = (_type&7)<<3;
-		const uint8_t encodedNum  = (_num-1)&3;
-		const uint8_t encodeAsInt = (_asInt&(!!"\x1\x1\x0\x0"[_type]) )<<8;
+		const uint32_t encodedNorm = (_normalized&1)<<7;
+		const uint32_t encodedType = (_type&7)<<3;
+		const uint32_t encodedNum  = (_num-1)&3;
+		const uint32_t encodeAsInt = (_asInt&(!!"\x1\x1\x1\x0\x0"[_type]) )<<8;
 		m_attributes[_attrib] = encodedNorm|encodedType|encodedNum|encodeAsInt;
 		m_attributes[_attrib] = encodedNorm|encodedType|encodedNum|encodeAsInt;
 
 
 		m_offset[_attrib] = m_stride;
 		m_offset[_attrib] = m_stride;