diff --git a/codecs/basis/enc/basis_enc.cpp b/codecs/basis/enc/basis_enc.cpp index fd4e02ba..24f6ae73 100644 --- a/codecs/basis/enc/basis_enc.cpp +++ b/codecs/basis/enc/basis_enc.cpp @@ -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); diff --git a/codecs/basis/enc/basis_enc.d.ts b/codecs/basis/enc/basis_enc.d.ts index d430f663..629bd961 100644 --- a/codecs/basis/enc/basis_enc.d.ts +++ b/codecs/basis/enc/basis_enc.d.ts @@ -2,6 +2,7 @@ export interface EncodeOptions { quality: number; compression: number; uastc: boolean; + y_flip: boolean; mipmap: boolean; srgb_mipmap: boolean; perceptual: boolean; diff --git a/codecs/basis/enc/basis_enc.wasm b/codecs/basis/enc/basis_enc.wasm index 7aeae8cb..daf2a6c9 100755 Binary files a/codecs/basis/enc/basis_enc.wasm and b/codecs/basis/enc/basis_enc.wasm differ diff --git a/src/features/encoders/basis/client/index.tsx b/src/features/encoders/basis/client/index.tsx index 4f365d45..92643fe7 100644 --- a/src/features/encoders/basis/client/index.tsx +++ b/src/features/encoders/basis/client/index.tsx @@ -47,6 +47,7 @@ export class Options extends Component { // 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 { Compression: +