Some spec fixes

This commit is contained in:
Frank Galligan 2017-10-03 09:52:42 -07:00
parent 077e7a03ff
commit 0c7ee960a8
5 changed files with 52 additions and 11 deletions

View File

@ -15,3 +15,42 @@ void DecodeVarint(out_val) {
} }
~~~~~ ~~~~~
{:.draco-syntax } {:.draco-syntax }
### mem_get_le16
~~~~~
uint32_t mem_get_le16(mem) {
val = mem[1] << 8;
val |= mem[0];
return val;
}
~~~~~
{:.draco-syntax }
### mem_get_le24
~~~~~
uint32_t mem_get_le24(mem) {
val = mem[2] << 16;
val |= mem[1] << 8;
val |= mem[0];
return val;
}
~~~~~
{:.draco-syntax }
### mem_get_le32
~~~~~
uint32_t mem_get_le32(mem) {
val = mem[3] << 24;
val |= mem[2] << 16;
val |= mem[1] << 8;
val |= mem[0];
return val;
}
~~~~~
{:.draco-syntax }

View File

@ -4,7 +4,7 @@
~~~~~ ~~~~~
void DecodeMetadata() { void DecodeMetadata() {
ParseMetedataCount(); ParseMetadataCount();
for (i = 0; i < num_att_metadata; ++i) { for (i = 0; i < num_att_metadata; ++i) {
ParseAttributeMetadataId(i); ParseAttributeMetadataId(i);
@ -16,10 +16,10 @@ void DecodeMetadata() {
{:.draco-syntax} {:.draco-syntax}
### ParseMetedataCount() ### ParseMetadataCount()
~~~~~ ~~~~~
void ParseMetedataCount() { void ParseMetadataCount() {
num_att_metadata varUI32 num_att_metadata varUI32
} }
~~~~~ ~~~~~

View File

@ -42,8 +42,8 @@ void GetPositionForEntryId(entry_id, pos) {
~~~~~ ~~~~~
void GetTexCoordForEntryId(entry_id, data, tex_coords) { void GetTexCoordForEntryId(entry_id, data, tex_coords) {
data_offset = entry_id * kTexCoordsNumComponents; data_offset = entry_id * kTexCoordsNumComponents;
tex_coords->push_back(data[data_offset]); tex_coords.push_back(data[data_offset]);
tex_coords->push_back(data[data_offset + 1]); tex_coords.push_back(data[data_offset + 1]);
} }
~~~~~ ~~~~~
{:.draco-syntax} {:.draco-syntax}

View File

@ -61,7 +61,6 @@ void DecodeTaggedSymbols(num_values, num_components, out_values) {
rans_precision = 1 << rans_precision_bits_t; rans_precision = 1 << rans_precision_bits_t;
l_rans_base = rans_precision * 4; l_rans_base = rans_precision * 4;
num_symbols_ varUI32 num_symbols_ varUI32
ReadVarUI32(&num_symbols_);
BuildSymbolTables(num_symbols_, lut_table_, probability_table_); BuildSymbolTables(num_symbols_, lut_table_, probability_table_);
bytes_encoded varUI64 bytes_encoded varUI64
encoded_data UI8[size] encoded_data UI8[size]
@ -220,18 +219,18 @@ void fetch_sym(sym, rem, lut_table_, probability_table_) {
~~~~~ ~~~~~
void RabsDescRead(ans, p0, out_val) { void RabsDescRead(ans, p0, out_val) {
p = rabs_ans_p8_precision - p0; p = rabs_ans_p8_precision - p0;
if (ans->state < rabs_l_base) { if (ans.state < rabs_l_base) {
ans->state = ans->state * IO_BASE + ans->buf[--ans->buf_offset]; ans.state = ans.state * IO_BASE + ans.buf[--ans.buf_offset];
} }
x = ans->state; x = ans.state;
quot = x / rabs_ans_p8_precision; quot = x / rabs_ans_p8_precision;
rem = x % rabs_ans_p8_precision; rem = x % rabs_ans_p8_precision;
xn = quot * p; xn = quot * p;
val = rem < p; val = rem < p;
if (val) { if (val) {
ans->state = xn + rem; ans.state = xn + rem;
} else { } else {
ans->state = x - xn - p; ans.state = x - xn - p;
} }
out_val = val; out_val = val;
} }

View File

@ -6,6 +6,9 @@
* 0: MESH_SEQUENTIAL_ENCODING * 0: MESH_SEQUENTIAL_ENCODING
* 1: MESH_EDGEBREAKER_ENCODING * 1: MESH_EDGEBREAKER_ENCODING
* Metadata constants
* 32768: METADATA_FLAG_MASK
* Sequential attribute encoding methods * Sequential attribute encoding methods
* 0: SEQUENTIAL_ATTRIBUTE_ENCODER_GENERIC * 0: SEQUENTIAL_ATTRIBUTE_ENCODER_GENERIC
* 1: SEQUENTIAL_ATTRIBUTE_ENCODER_INTEGER * 1: SEQUENTIAL_ATTRIBUTE_ENCODER_INTEGER