Skip to content

Commit

Permalink
fn wedge_code_type::new: Add const fn to use in statics that is m…
Browse files Browse the repository at this point in the history
…ore concise and more closely mimics C source.
  • Loading branch information
kkysen committed Sep 12, 2023
1 parent 12cd76f commit e7adee4
Showing 1 changed file with 58 additions and 240 deletions.
298 changes: 58 additions & 240 deletions src/wedge.rs
Original file line number Diff line number Diff line change
Expand Up @@ -43,259 +43,77 @@ pub struct wedge_code_type {
pub y_offset: uint8_t,
}

impl wedge_code_type {
const fn new(x_offset: u8, y_offset: u8, direction: WedgeDirectionType) -> Self {
Self {
direction,
x_offset,
y_offset,
}
}
}

pub const WEDGE_MASTER_LINE_ODD: WedgeMasterLineType = 0;
pub const WEDGE_MASTER_LINE_EVEN: WedgeMasterLineType = 1;
pub const WEDGE_MASTER_LINE_VERT: WedgeMasterLineType = 2;
pub type WedgeMasterLineType = libc::c_uint;
pub const N_WEDGE_MASTER_LINES: usize = 3;

static wedge_codebook_16_hgtw: [wedge_code_type; 16] = [
wedge_code_type {
direction: WEDGE_OBLIQUE27,
x_offset: 4,
y_offset: 4,
},
wedge_code_type {
direction: WEDGE_OBLIQUE63,
x_offset: 4,
y_offset: 4,
},
wedge_code_type {
direction: WEDGE_OBLIQUE117,
x_offset: 4,
y_offset: 4,
},
wedge_code_type {
direction: WEDGE_OBLIQUE153,
x_offset: 4,
y_offset: 4,
},
wedge_code_type {
direction: WEDGE_HORIZONTAL,
x_offset: 4,
y_offset: 2,
},
wedge_code_type {
direction: WEDGE_HORIZONTAL,
x_offset: 4,
y_offset: 4,
},
wedge_code_type {
direction: WEDGE_HORIZONTAL,
x_offset: 4,
y_offset: 6,
},
wedge_code_type {
direction: WEDGE_VERTICAL,
x_offset: 4,
y_offset: 4,
},
wedge_code_type {
direction: WEDGE_OBLIQUE27,
x_offset: 4,
y_offset: 2,
},
wedge_code_type {
direction: WEDGE_OBLIQUE27,
x_offset: 4,
y_offset: 6,
},
wedge_code_type {
direction: WEDGE_OBLIQUE153,
x_offset: 4,
y_offset: 2,
},
wedge_code_type {
direction: WEDGE_OBLIQUE153,
x_offset: 4,
y_offset: 6,
},
wedge_code_type {
direction: WEDGE_OBLIQUE63,
x_offset: 2,
y_offset: 4,
},
wedge_code_type {
direction: WEDGE_OBLIQUE63,
x_offset: 6,
y_offset: 4,
},
wedge_code_type {
direction: WEDGE_OBLIQUE117,
x_offset: 2,
y_offset: 4,
},
wedge_code_type {
direction: WEDGE_OBLIQUE117,
x_offset: 6,
y_offset: 4,
},
wedge_code_type::new(4, 4, WEDGE_OBLIQUE27),
wedge_code_type::new(4, 4, WEDGE_OBLIQUE63),
wedge_code_type::new(4, 4, WEDGE_OBLIQUE117),
wedge_code_type::new(4, 4, WEDGE_OBLIQUE153),
wedge_code_type::new(4, 2, WEDGE_HORIZONTAL),
wedge_code_type::new(4, 4, WEDGE_HORIZONTAL),
wedge_code_type::new(4, 6, WEDGE_HORIZONTAL),
wedge_code_type::new(4, 4, WEDGE_VERTICAL),
wedge_code_type::new(4, 2, WEDGE_OBLIQUE27),
wedge_code_type::new(4, 6, WEDGE_OBLIQUE27),
wedge_code_type::new(4, 2, WEDGE_OBLIQUE153),
wedge_code_type::new(4, 6, WEDGE_OBLIQUE153),
wedge_code_type::new(2, 4, WEDGE_OBLIQUE63),
wedge_code_type::new(6, 4, WEDGE_OBLIQUE63),
wedge_code_type::new(2, 4, WEDGE_OBLIQUE117),
wedge_code_type::new(6, 4, WEDGE_OBLIQUE117),
];

static wedge_codebook_16_hltw: [wedge_code_type; 16] = [
wedge_code_type {
direction: WEDGE_OBLIQUE27,
x_offset: 4,
y_offset: 4,
},
wedge_code_type {
direction: WEDGE_OBLIQUE63,
x_offset: 4,
y_offset: 4,
},
wedge_code_type {
direction: WEDGE_OBLIQUE117,
x_offset: 4,
y_offset: 4,
},
wedge_code_type {
direction: WEDGE_OBLIQUE153,
x_offset: 4,
y_offset: 4,
},
wedge_code_type {
direction: WEDGE_VERTICAL,
x_offset: 2,
y_offset: 4,
},
wedge_code_type {
direction: WEDGE_VERTICAL,
x_offset: 4,
y_offset: 4,
},
wedge_code_type {
direction: WEDGE_VERTICAL,
x_offset: 6,
y_offset: 4,
},
wedge_code_type {
direction: WEDGE_HORIZONTAL,
x_offset: 4,
y_offset: 4,
},
wedge_code_type {
direction: WEDGE_OBLIQUE27,
x_offset: 4,
y_offset: 2,
},
wedge_code_type {
direction: WEDGE_OBLIQUE27,
x_offset: 4,
y_offset: 6,
},
wedge_code_type {
direction: WEDGE_OBLIQUE153,
x_offset: 4,
y_offset: 2,
},
wedge_code_type {
direction: WEDGE_OBLIQUE153,
x_offset: 4,
y_offset: 6,
},
wedge_code_type {
direction: WEDGE_OBLIQUE63,
x_offset: 2,
y_offset: 4,
},
wedge_code_type {
direction: WEDGE_OBLIQUE63,
x_offset: 6,
y_offset: 4,
},
wedge_code_type {
direction: WEDGE_OBLIQUE117,
x_offset: 2,
y_offset: 4,
},
wedge_code_type {
direction: WEDGE_OBLIQUE117,
x_offset: 6,
y_offset: 4,
},
wedge_code_type::new(4, 4, WEDGE_OBLIQUE27),
wedge_code_type::new(4, 4, WEDGE_OBLIQUE63),
wedge_code_type::new(4, 4, WEDGE_OBLIQUE117),
wedge_code_type::new(4, 4, WEDGE_OBLIQUE153),
wedge_code_type::new(2, 4, WEDGE_VERTICAL),
wedge_code_type::new(4, 4, WEDGE_VERTICAL),
wedge_code_type::new(6, 4, WEDGE_VERTICAL),
wedge_code_type::new(4, 4, WEDGE_HORIZONTAL),
wedge_code_type::new(4, 2, WEDGE_OBLIQUE27),
wedge_code_type::new(4, 6, WEDGE_OBLIQUE27),
wedge_code_type::new(4, 2, WEDGE_OBLIQUE153),
wedge_code_type::new(4, 6, WEDGE_OBLIQUE153),
wedge_code_type::new(2, 4, WEDGE_OBLIQUE63),
wedge_code_type::new(6, 4, WEDGE_OBLIQUE63),
wedge_code_type::new(2, 4, WEDGE_OBLIQUE117),
wedge_code_type::new(6, 4, WEDGE_OBLIQUE117),
];

static wedge_codebook_16_heqw: [wedge_code_type; 16] = [
wedge_code_type {
direction: WEDGE_OBLIQUE27,
x_offset: 4,
y_offset: 4,
},
wedge_code_type {
direction: WEDGE_OBLIQUE63,
x_offset: 4,
y_offset: 4,
},
wedge_code_type {
direction: WEDGE_OBLIQUE117,
x_offset: 4,
y_offset: 4,
},
wedge_code_type {
direction: WEDGE_OBLIQUE153,
x_offset: 4,
y_offset: 4,
},
wedge_code_type {
direction: WEDGE_HORIZONTAL,
x_offset: 4,
y_offset: 2,
},
wedge_code_type {
direction: WEDGE_HORIZONTAL,
x_offset: 4,
y_offset: 6,
},
wedge_code_type {
direction: WEDGE_VERTICAL,
x_offset: 2,
y_offset: 4,
},
wedge_code_type {
direction: WEDGE_VERTICAL,
x_offset: 6,
y_offset: 4,
},
wedge_code_type {
direction: WEDGE_OBLIQUE27,
x_offset: 4,
y_offset: 2,
},
wedge_code_type {
direction: WEDGE_OBLIQUE27,
x_offset: 4,
y_offset: 6,
},
wedge_code_type {
direction: WEDGE_OBLIQUE153,
x_offset: 4,
y_offset: 2,
},
wedge_code_type {
direction: WEDGE_OBLIQUE153,
x_offset: 4,
y_offset: 6,
},
wedge_code_type {
direction: WEDGE_OBLIQUE63,
x_offset: 2,
y_offset: 4,
},
wedge_code_type {
direction: WEDGE_OBLIQUE63,
x_offset: 6,
y_offset: 4,
},
wedge_code_type {
direction: WEDGE_OBLIQUE117,
x_offset: 2,
y_offset: 4,
},
wedge_code_type {
direction: WEDGE_OBLIQUE117,
x_offset: 6,
y_offset: 4,
},
wedge_code_type::new(4, 4, WEDGE_OBLIQUE27),
wedge_code_type::new(4, 4, WEDGE_OBLIQUE63),
wedge_code_type::new(4, 4, WEDGE_OBLIQUE117),
wedge_code_type::new(4, 4, WEDGE_OBLIQUE153),
wedge_code_type::new(4, 2, WEDGE_HORIZONTAL),
wedge_code_type::new(4, 6, WEDGE_HORIZONTAL),
wedge_code_type::new(2, 4, WEDGE_VERTICAL),
wedge_code_type::new(6, 4, WEDGE_VERTICAL),
wedge_code_type::new(4, 2, WEDGE_OBLIQUE27),
wedge_code_type::new(4, 6, WEDGE_OBLIQUE27),
wedge_code_type::new(4, 2, WEDGE_OBLIQUE153),
wedge_code_type::new(4, 6, WEDGE_OBLIQUE153),
wedge_code_type::new(2, 4, WEDGE_OBLIQUE63),
wedge_code_type::new(6, 4, WEDGE_OBLIQUE63),
wedge_code_type::new(2, 4, WEDGE_OBLIQUE117),
wedge_code_type::new(6, 4, WEDGE_OBLIQUE117),
];

static mut wedge_masks_444_32x32: Align64<[uint8_t; 32768]> = Align64([0; 32768]);
Expand Down

0 comments on commit e7adee4

Please sign in to comment.