mirror of
https://git.mirrors.martin98.com/https://github.com/google/draco
synced 2025-08-11 19:59:01 +08:00
commit
60b3928e56
@ -15,3 +15,42 @@ void DecodeVarint(out_val) {
|
||||
}
|
||||
~~~~~
|
||||
{:.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 }
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
~~~~~
|
||||
void DecodeMetadata() {
|
||||
ParseMetedataCount();
|
||||
ParseMetadataCount();
|
||||
|
||||
for (i = 0; i < num_att_metadata; ++i) {
|
||||
ParseAttributeMetadataId(i);
|
||||
@ -16,10 +16,10 @@ void DecodeMetadata() {
|
||||
{:.draco-syntax}
|
||||
|
||||
|
||||
### ParseMetedataCount()
|
||||
### ParseMetadataCount()
|
||||
|
||||
~~~~~
|
||||
void ParseMetedataCount() {
|
||||
void ParseMetadataCount() {
|
||||
num_att_metadata varUI32
|
||||
}
|
||||
~~~~~
|
||||
|
@ -42,8 +42,8 @@ void GetPositionForEntryId(entry_id, pos) {
|
||||
~~~~~
|
||||
void GetTexCoordForEntryId(entry_id, data, tex_coords) {
|
||||
data_offset = entry_id * kTexCoordsNumComponents;
|
||||
tex_coords->push_back(data[data_offset]);
|
||||
tex_coords->push_back(data[data_offset + 1]);
|
||||
tex_coords.push_back(data[data_offset]);
|
||||
tex_coords.push_back(data[data_offset + 1]);
|
||||
}
|
||||
~~~~~
|
||||
{:.draco-syntax}
|
||||
|
@ -61,7 +61,6 @@ void DecodeTaggedSymbols(num_values, num_components, out_values) {
|
||||
rans_precision = 1 << rans_precision_bits_t;
|
||||
l_rans_base = rans_precision * 4;
|
||||
num_symbols_ varUI32
|
||||
ReadVarUI32(&num_symbols_);
|
||||
BuildSymbolTables(num_symbols_, lut_table_, probability_table_);
|
||||
bytes_encoded varUI64
|
||||
encoded_data UI8[size]
|
||||
@ -220,18 +219,18 @@ void fetch_sym(sym, rem, lut_table_, probability_table_) {
|
||||
~~~~~
|
||||
void RabsDescRead(ans, p0, out_val) {
|
||||
p = rabs_ans_p8_precision - p0;
|
||||
if (ans->state < rabs_l_base) {
|
||||
ans->state = ans->state * IO_BASE + ans->buf[--ans->buf_offset];
|
||||
if (ans.state < rabs_l_base) {
|
||||
ans.state = ans.state * IO_BASE + ans.buf[--ans.buf_offset];
|
||||
}
|
||||
x = ans->state;
|
||||
x = ans.state;
|
||||
quot = x / rabs_ans_p8_precision;
|
||||
rem = x % rabs_ans_p8_precision;
|
||||
xn = quot * p;
|
||||
val = rem < p;
|
||||
if (val) {
|
||||
ans->state = xn + rem;
|
||||
ans.state = xn + rem;
|
||||
} else {
|
||||
ans->state = x - xn - p;
|
||||
ans.state = x - xn - p;
|
||||
}
|
||||
out_val = val;
|
||||
}
|
||||
|
@ -6,6 +6,9 @@
|
||||
* 0: MESH_SEQUENTIAL_ENCODING
|
||||
* 1: MESH_EDGEBREAKER_ENCODING
|
||||
|
||||
* Metadata constants
|
||||
* 32768: METADATA_FLAG_MASK
|
||||
|
||||
* Sequential attribute encoding methods
|
||||
* 0: SEQUENTIAL_ATTRIBUTE_ENCODER_GENERIC
|
||||
* 1: SEQUENTIAL_ATTRIBUTE_ENCODER_INTEGER
|
||||
|
Loading…
x
Reference in New Issue
Block a user