Add Y flip option

This commit is contained in:
Surma
2021-05-21 15:10:58 +01:00
parent 8eb29bd792
commit 1dc24a5c36
5 changed files with 14 additions and 1 deletions

View File

@@ -14,6 +14,7 @@ struct BasisOptions {
bool mipmap;
bool srgb_mipmap;
bool perceptual;
bool y_flip;
};
thread_local const val Uint8Array = val::global("Uint8Array");
@@ -49,7 +50,7 @@ val encode(std::string image_in, int image_width, int image_height, BasisOptions
params.m_ktx2_uastc_supercompression = basist::KTX2_SS_ZSTANDARD;
params.m_perceptual = opts.perceptual;
params.m_y_flip = opts.y_flip;
params.m_mip_gen = opts.mipmap;
params.m_mip_srgb = opts.srgb_mipmap;
params.m_mip_filter = "box";
@@ -80,6 +81,7 @@ EMSCRIPTEN_BINDINGS(my_module) {
.field("compression", &BasisOptions::compression)
.field("uastc", &BasisOptions::uastc)
.field("perceptual", &BasisOptions::perceptual)
.field("y_flip", &BasisOptions::y_flip)
.field("mipmap", &BasisOptions::mipmap)
.field("srgb_mipmap", &BasisOptions::srgb_mipmap);

View File

@@ -2,6 +2,7 @@ export interface EncodeOptions {
quality: number;
compression: number;
uastc: boolean;
y_flip: boolean;
mipmap: boolean;
srgb_mipmap: boolean;
perceptual: boolean;

Binary file not shown.

View File

@@ -47,6 +47,7 @@ export class Options extends Component<Props, State> {
// Copy over options the form doesn't currently care about, eg arithmetic
...this.props.options,
uastc: inputFieldChecked(form.uastc, options.uastc),
y_flip: inputFieldChecked(form.y_flip, options.y_flip),
perceptual: inputFieldChecked(form.perceptual, options.perceptual),
mipmap: inputFieldChecked(form.mipmap, options.mipmap),
srgb_mipmap: inputFieldChecked(form.srgb_mipmap, options.srgb_mipmap),
@@ -87,6 +88,14 @@ export class Options extends Component<Props, State> {
Compression:
</Range>
</div>
<label class={style.optionToggle}>
Flip Y Axis
<Checkbox
name="y_flip"
checked={options.y_flip}
onChange={this.onChange}
/>
</label>
<label class={style.optionReveal}>
<Revealer
checked={showAdvanced}

View File

@@ -24,4 +24,5 @@ export const defaultOptions: EncodeOptions = {
mipmap: false,
srgb_mipmap: false,
perceptual: true,
y_flip: false,
};