Faster export
This commit is contained in:
+125
-116
@@ -17,81 +17,18 @@ class Exporter {
|
||||
var bo = new haxe.io.BytesOutput();
|
||||
|
||||
var selectedLayer = UITrait.inst.selectedLayer;
|
||||
var pixels = selectedLayer.texpaint.getPixels(); // bgra
|
||||
if (UITrait.inst.isBaseSpace == 1) {
|
||||
for (i in 0...Std.int(pixels.length / 4)) {
|
||||
pixels.set(i * 4 + 0, Std.int(Math.pow(pixels.get(i * 4 + 0) / 255, 1.0 / 2.2) * 255));
|
||||
pixels.set(i * 4 + 1, Std.int(Math.pow(pixels.get(i * 4 + 1) / 255, 1.0 / 2.2) * 255));
|
||||
pixels.set(i * 4 + 2, Std.int(Math.pow(pixels.get(i * 4 + 2) / 255, 1.0 / 2.2) * 255));
|
||||
// pixels.set(i * 4 + 3, 255);
|
||||
}
|
||||
}
|
||||
if (formatType == 0) {
|
||||
var jpgdata:iron.format.jpg.Data.Data = {
|
||||
width: textureSize,
|
||||
height: textureSize,
|
||||
quality: formatQuality,
|
||||
pixels: pixels
|
||||
};
|
||||
var jpgwriter = new iron.format.jpg.Writer(bo);
|
||||
jpgwriter.write(jpgdata, 1);
|
||||
}
|
||||
else {
|
||||
var pngwriter = new iron.format.png.Writer(bo);
|
||||
pngwriter.write(iron.format.png.Tools.build32RGBA(textureSize, textureSize, pixels));
|
||||
}
|
||||
#if kha_krom
|
||||
if (UITrait.inst.isBase) Krom.fileSaveBytes(path + "/" + f + "_base" + ext, bo.getBytes().getData());
|
||||
#end
|
||||
var pixels:haxe.io.Bytes = null;
|
||||
|
||||
pixels = selectedLayer.texpaint_nor.getPixels();
|
||||
if (UITrait.inst.isNorSpace == 1) {
|
||||
for (i in 0...Std.int(pixels.length / 4)) {
|
||||
pixels.set(i * 4 + 0, Std.int(Math.pow(pixels.get(i * 4 + 0) / 255, 1.0 / 2.2) * 255));
|
||||
pixels.set(i * 4 + 1, Std.int(Math.pow(pixels.get(i * 4 + 1) / 255, 1.0 / 2.2) * 255));
|
||||
pixels.set(i * 4 + 2, Std.int(Math.pow(pixels.get(i * 4 + 2) / 255, 1.0 / 2.2) * 255));
|
||||
// pixels.set(i * 4 + 3, 255);
|
||||
if (UITrait.inst.isBase) {
|
||||
pixels = selectedLayer.texpaint.getPixels(); // bgra
|
||||
if (UITrait.inst.isBaseSpace == 1) {
|
||||
for (i in 0...Std.int(pixels.length / 4)) {
|
||||
pixels.set(i * 4 + 0, Std.int(Math.pow(pixels.get(i * 4 + 0) / 255, 1.0 / 2.2) * 255));
|
||||
pixels.set(i * 4 + 1, Std.int(Math.pow(pixels.get(i * 4 + 1) / 255, 1.0 / 2.2) * 255));
|
||||
pixels.set(i * 4 + 2, Std.int(Math.pow(pixels.get(i * 4 + 2) / 255, 1.0 / 2.2) * 255));
|
||||
// pixels.set(i * 4 + 3, 255);
|
||||
}
|
||||
}
|
||||
}
|
||||
bo = new haxe.io.BytesOutput();
|
||||
if (formatType == 0) {
|
||||
var jpgdata:iron.format.jpg.Data.Data = {
|
||||
width: textureSize,
|
||||
height: textureSize,
|
||||
quality: formatQuality,
|
||||
pixels: pixels
|
||||
};
|
||||
var jpgwriter = new iron.format.jpg.Writer(bo);
|
||||
jpgwriter.write(jpgdata, 1);
|
||||
}
|
||||
else {
|
||||
var pngwriter = new iron.format.png.Writer(bo);
|
||||
pngwriter.write(iron.format.png.Tools.build32RGBA(textureSize, textureSize, pixels));
|
||||
}
|
||||
#if kha_krom
|
||||
if (UITrait.inst.isNor) Krom.fileSaveBytes(path + "/" + f + "_nor" + ext, bo.getBytes().getData());
|
||||
#end
|
||||
|
||||
pixels = selectedLayer.texpaint_pack.getPixels(); // occ, rough, met
|
||||
|
||||
if (UITrait.inst.isOccSpace == 1) {
|
||||
for (i in 0...Std.int(pixels.length / 4)) {
|
||||
pixels.set(i * 4 + 2, Std.int(Math.pow(pixels.get(i * 4 + 2) / 255, 1.0 / 2.2) * 255));
|
||||
}
|
||||
}
|
||||
if (UITrait.inst.isRoughSpace == 1) {
|
||||
for (i in 0...Std.int(pixels.length / 4)) {
|
||||
pixels.set(i * 4 + 1, Std.int(Math.pow(pixels.get(i * 4 + 1) / 255, 1.0 / 2.2) * 255));
|
||||
}
|
||||
}
|
||||
if (UITrait.inst.isMetSpace == 1) {
|
||||
for (i in 0...Std.int(pixels.length / 4)) {
|
||||
pixels.set(i * 4 + 0, Std.int(Math.pow(pixels.get(i * 4 + 0) / 255, 1.0 / 2.2) * 255));
|
||||
}
|
||||
}
|
||||
|
||||
if (UITrait.inst.outputType == 0) {
|
||||
bo = new haxe.io.BytesOutput();
|
||||
if (formatType == 0) {
|
||||
var jpgdata:iron.format.jpg.Data.Data = {
|
||||
width: textureSize,
|
||||
@@ -100,55 +37,27 @@ class Exporter {
|
||||
pixels: pixels
|
||||
};
|
||||
var jpgwriter = new iron.format.jpg.Writer(bo);
|
||||
jpgwriter.write(jpgdata, 2, 0);
|
||||
jpgwriter.write(jpgdata, 1);
|
||||
}
|
||||
else {
|
||||
var pngwriter = new iron.format.png.Writer(bo);
|
||||
pngwriter.write(iron.format.png.Tools.build32RGBA_(textureSize, textureSize, pixels, 0));
|
||||
pngwriter.write(iron.format.png.Tools.build32RGBA(textureSize, textureSize, pixels));
|
||||
}
|
||||
#if kha_krom
|
||||
if (UITrait.inst.isOcc) Krom.fileSaveBytes(path + "/" + f + "_occ" + ext, bo.getBytes().getData());
|
||||
#end
|
||||
|
||||
bo = new haxe.io.BytesOutput();
|
||||
if (formatType == 0) {
|
||||
var jpgdata:iron.format.jpg.Data.Data = {
|
||||
width: textureSize,
|
||||
height: textureSize,
|
||||
quality: formatQuality,
|
||||
pixels: pixels
|
||||
};
|
||||
var jpgwriter = new iron.format.jpg.Writer(bo);
|
||||
jpgwriter.write(jpgdata, 2, 1);
|
||||
}
|
||||
else {
|
||||
var pngwriter = new iron.format.png.Writer(bo);
|
||||
pngwriter.write(iron.format.png.Tools.build32RGBA_(textureSize, textureSize, pixels, 1));
|
||||
}
|
||||
#if kha_krom
|
||||
if (UITrait.inst.isRough) Krom.fileSaveBytes(path + "/" + f + "_rough" + ext, bo.getBytes().getData());
|
||||
#end
|
||||
|
||||
bo = new haxe.io.BytesOutput();
|
||||
if (formatType == 0) {
|
||||
var jpgdata:iron.format.jpg.Data.Data = {
|
||||
width: textureSize,
|
||||
height: textureSize,
|
||||
quality: formatQuality,
|
||||
pixels: pixels
|
||||
};
|
||||
var jpgwriter = new iron.format.jpg.Writer(bo);
|
||||
jpgwriter.write(jpgdata, 2, 2);
|
||||
}
|
||||
else {
|
||||
var pngwriter = new iron.format.png.Writer(bo);
|
||||
pngwriter.write(iron.format.png.Tools.build32RGBA_(textureSize, textureSize, pixels, 2));
|
||||
}
|
||||
#if kha_krom
|
||||
if (UITrait.inst.isMet) Krom.fileSaveBytes(path + "/" + f + "_met" + ext, bo.getBytes().getData());
|
||||
Krom.fileSaveBytes(path + "/" + f + "_base" + ext, bo.getBytes().getData());
|
||||
#end
|
||||
}
|
||||
else { // UE4
|
||||
|
||||
if (UITrait.inst.isNor) {
|
||||
pixels = selectedLayer.texpaint_nor.getPixels();
|
||||
if (UITrait.inst.isNorSpace == 1) {
|
||||
for (i in 0...Std.int(pixels.length / 4)) {
|
||||
pixels.set(i * 4 + 0, Std.int(Math.pow(pixels.get(i * 4 + 0) / 255, 1.0 / 2.2) * 255));
|
||||
pixels.set(i * 4 + 1, Std.int(Math.pow(pixels.get(i * 4 + 1) / 255, 1.0 / 2.2) * 255));
|
||||
pixels.set(i * 4 + 2, Std.int(Math.pow(pixels.get(i * 4 + 2) / 255, 1.0 / 2.2) * 255));
|
||||
// pixels.set(i * 4 + 3, 255);
|
||||
}
|
||||
}
|
||||
bo = new haxe.io.BytesOutput();
|
||||
if (formatType == 0) {
|
||||
var jpgdata:iron.format.jpg.Data.Data = {
|
||||
@@ -165,10 +74,110 @@ class Exporter {
|
||||
pngwriter.write(iron.format.png.Tools.build32RGBA(textureSize, textureSize, pixels));
|
||||
}
|
||||
#if kha_krom
|
||||
if (UITrait.inst.isOcc) Krom.fileSaveBytes(path + "/" + f + "_orm" + ext, bo.getBytes().getData());
|
||||
Krom.fileSaveBytes(path + "/" + f + "_nor" + ext, bo.getBytes().getData());
|
||||
#end
|
||||
}
|
||||
|
||||
if (UITrait.inst.isOcc || UITrait.inst.isRough || UITrait.inst.isMet) {
|
||||
|
||||
pixels = selectedLayer.texpaint_pack.getPixels(); // occ, rough, met
|
||||
|
||||
if (UITrait.inst.isOccSpace == 1) {
|
||||
for (i in 0...Std.int(pixels.length / 4)) {
|
||||
pixels.set(i * 4 + 2, Std.int(Math.pow(pixels.get(i * 4 + 2) / 255, 1.0 / 2.2) * 255));
|
||||
}
|
||||
}
|
||||
if (UITrait.inst.isRoughSpace == 1) {
|
||||
for (i in 0...Std.int(pixels.length / 4)) {
|
||||
pixels.set(i * 4 + 1, Std.int(Math.pow(pixels.get(i * 4 + 1) / 255, 1.0 / 2.2) * 255));
|
||||
}
|
||||
}
|
||||
if (UITrait.inst.isMetSpace == 1) {
|
||||
for (i in 0...Std.int(pixels.length / 4)) {
|
||||
pixels.set(i * 4 + 0, Std.int(Math.pow(pixels.get(i * 4 + 0) / 255, 1.0 / 2.2) * 255));
|
||||
}
|
||||
}
|
||||
|
||||
if (UITrait.inst.outputType == 0) {
|
||||
bo = new haxe.io.BytesOutput();
|
||||
if (formatType == 0) {
|
||||
var jpgdata:iron.format.jpg.Data.Data = {
|
||||
width: textureSize,
|
||||
height: textureSize,
|
||||
quality: formatQuality,
|
||||
pixels: pixels
|
||||
};
|
||||
var jpgwriter = new iron.format.jpg.Writer(bo);
|
||||
jpgwriter.write(jpgdata, 2, 0);
|
||||
}
|
||||
else {
|
||||
var pngwriter = new iron.format.png.Writer(bo);
|
||||
pngwriter.write(iron.format.png.Tools.build32RGBA_(textureSize, textureSize, pixels, 0));
|
||||
}
|
||||
#if kha_krom
|
||||
if (UITrait.inst.isOcc) Krom.fileSaveBytes(path + "/" + f + "_occ" + ext, bo.getBytes().getData());
|
||||
#end
|
||||
|
||||
bo = new haxe.io.BytesOutput();
|
||||
if (formatType == 0) {
|
||||
var jpgdata:iron.format.jpg.Data.Data = {
|
||||
width: textureSize,
|
||||
height: textureSize,
|
||||
quality: formatQuality,
|
||||
pixels: pixels
|
||||
};
|
||||
var jpgwriter = new iron.format.jpg.Writer(bo);
|
||||
jpgwriter.write(jpgdata, 2, 1);
|
||||
}
|
||||
else {
|
||||
var pngwriter = new iron.format.png.Writer(bo);
|
||||
pngwriter.write(iron.format.png.Tools.build32RGBA_(textureSize, textureSize, pixels, 1));
|
||||
}
|
||||
#if kha_krom
|
||||
if (UITrait.inst.isRough) Krom.fileSaveBytes(path + "/" + f + "_rough" + ext, bo.getBytes().getData());
|
||||
#end
|
||||
|
||||
bo = new haxe.io.BytesOutput();
|
||||
if (formatType == 0) {
|
||||
var jpgdata:iron.format.jpg.Data.Data = {
|
||||
width: textureSize,
|
||||
height: textureSize,
|
||||
quality: formatQuality,
|
||||
pixels: pixels
|
||||
};
|
||||
var jpgwriter = new iron.format.jpg.Writer(bo);
|
||||
jpgwriter.write(jpgdata, 2, 2);
|
||||
}
|
||||
else {
|
||||
var pngwriter = new iron.format.png.Writer(bo);
|
||||
pngwriter.write(iron.format.png.Tools.build32RGBA_(textureSize, textureSize, pixels, 2));
|
||||
}
|
||||
#if kha_krom
|
||||
if (UITrait.inst.isMet) Krom.fileSaveBytes(path + "/" + f + "_met" + ext, bo.getBytes().getData());
|
||||
#end
|
||||
}
|
||||
else { // UE4
|
||||
bo = new haxe.io.BytesOutput();
|
||||
if (formatType == 0) {
|
||||
var jpgdata:iron.format.jpg.Data.Data = {
|
||||
width: textureSize,
|
||||
height: textureSize,
|
||||
quality: formatQuality,
|
||||
pixels: pixels
|
||||
};
|
||||
var jpgwriter = new iron.format.jpg.Writer(bo);
|
||||
jpgwriter.write(jpgdata, 1);
|
||||
}
|
||||
else {
|
||||
var pngwriter = new iron.format.png.Writer(bo);
|
||||
pngwriter.write(iron.format.png.Tools.build32RGBA(textureSize, textureSize, pixels));
|
||||
}
|
||||
#if kha_krom
|
||||
if (UITrait.inst.isOcc) Krom.fileSaveBytes(path + "/" + f + "_orm" + ext, bo.getBytes().getData());
|
||||
#end
|
||||
}
|
||||
}
|
||||
|
||||
if (UITrait.inst.isHeight) {
|
||||
// pixels = selectedLayer.texpaint_opt.getPixels();
|
||||
// if (UITrait.inst.isHeightSpace == 1) {
|
||||
|
||||
Reference in New Issue
Block a user