metal: make post_commit_margin configurable
This commit is contained in:
parent
76b0f2f734
commit
02ece60909
24 changed files with 224 additions and 55 deletions
|
|
@ -154,7 +154,7 @@ macro_rules! ty {
|
|||
|
||||
ty!(str, 'a, String, &'a str, v, v.as_str(), "a string");
|
||||
ty!(int, 'a, Integer, i64, v, *v, "an integer");
|
||||
ty!(flt, 'a, Float, f64, v, *v, "a float");
|
||||
// ty!(flt, 'a, Float, f64, v, *v, "a float");
|
||||
ty!(bol, 'a, Boolean, bool, v, *v, "a boolean");
|
||||
ty!(arr, 'a, Array, &'a [Spanned<Value>], v, &**v, "an array");
|
||||
// ty!(tbl, 'a, Table, &'a IndexMap<Spanned<String>, Spanned<Value>>, v, v, "a table");
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ use {
|
|||
crate::{
|
||||
config::{
|
||||
context::Context,
|
||||
extractor::{bol, opt, recover, str, val, Extractor, ExtractorError},
|
||||
extractor::{bol, fltorint, opt, recover, str, val, Extractor, ExtractorError},
|
||||
parser::{DataType, ParseResult, Parser, UnexpectedDataType},
|
||||
parsers::{
|
||||
drm_device_match::{DrmDeviceMatchParser, DrmDeviceMatchParserError},
|
||||
|
|
@ -45,12 +45,14 @@ impl<'a> Parser for DrmDeviceParser<'a> {
|
|||
table: &IndexMap<Spanned<String>, Spanned<Value>>,
|
||||
) -> ParseResult<Self> {
|
||||
let mut ext = Extractor::new(self.cx, span, table);
|
||||
let (name, match_val, direct_scanout_enabled, gfx_api_val) = ext.extract((
|
||||
opt(str("name")),
|
||||
val("match"),
|
||||
recover(opt(bol("direct-scanout"))),
|
||||
opt(val("gfx-api")),
|
||||
))?;
|
||||
let (name, match_val, direct_scanout_enabled, gfx_api_val, flip_margin_ms) =
|
||||
ext.extract((
|
||||
opt(str("name")),
|
||||
val("match"),
|
||||
recover(opt(bol("direct-scanout"))),
|
||||
opt(val("gfx-api")),
|
||||
recover(opt(fltorint("flip-margin-ms"))),
|
||||
))?;
|
||||
let gfx_api = match gfx_api_val {
|
||||
Some(api) => match api.parse(&mut GfxApiParser) {
|
||||
Ok(m) => Some(m),
|
||||
|
|
@ -80,6 +82,7 @@ impl<'a> Parser for DrmDeviceParser<'a> {
|
|||
match_: match_val.parse_map(&mut DrmDeviceMatchParser(self.cx))?,
|
||||
direct_scanout_enabled: direct_scanout_enabled.despan(),
|
||||
gfx_api,
|
||||
flip_margin_ms: flip_margin_ms.despan(),
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ use {
|
|||
crate::{
|
||||
config::{
|
||||
context::Context,
|
||||
extractor::{flt, opt, s32, Extractor, ExtractorError},
|
||||
extractor::{fltorint, opt, s32, Extractor, ExtractorError},
|
||||
parser::{DataType, ParseResult, Parser, UnexpectedDataType},
|
||||
Mode,
|
||||
},
|
||||
|
|
@ -37,7 +37,7 @@ impl<'a> Parser for ModeParser<'a> {
|
|||
) -> ParseResult<Self> {
|
||||
let mut ext = Extractor::new(self.0, span, table);
|
||||
let (width, height, refresh_rate) =
|
||||
ext.extract((s32("width"), s32("height"), opt(flt("refresh-rate"))))?;
|
||||
ext.extract((s32("width"), s32("height"), opt(fltorint("refresh-rate"))))?;
|
||||
Ok(Mode {
|
||||
width: width.value,
|
||||
height: height.value,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue