zigar.image.formats ᴾᴴᴾ - chung-leong/zigar GitHub Wiki

JavaScript | PHP


Tuple contain the image formats supported by the current compilation target.

Use this tuple in conjunction with getField() to loop through the different formats.

Usage:

const std = @import("std");

const zigar = @import("zigar");

pub fn transform(img_in: zigar.image.Any(.ro), img_out: zigar.image.Any(.rw)) void {
    inline for (zigar.image.formats) |tag| {
        if (img_in == tag and img_out == tag) {
            const in = img_in.getField(tag);
            const out = img_out.getField(tag);
            const x_adv: f32 = in.getWidthAsFloat() / out.getWidthAsFloat();
            const y_adv: f32 = in.getHeightAsFloat() / out.getHeightAsFloat();
            var coord: @Vector(2, f32) = undefined;
            coord[1] = 0.5;
            for (0..out.getHeight()) |y| {
                coord[0] = 0.5;
                for (0..out.getWidth()) |x| {
                    const pixel = init: {
                        const color = in.sampleLinear(Pixel, coord);
                        // do something here...
                    };
                    out.setPixel(@Vector(4, f32), x, y, pixel);
                }
                coord[1] += y_adv;
            }
        }
    }
}