Fix indents

This commit is contained in:
Oleg Korshul
2022-12-28 14:14:01 +03:00
parent 4310394fc7
commit 8a054f5cdf

View File

@ -32,409 +32,409 @@
(function(window, undefined) {
function getMemoryPathIE(name)
{
if (self["AscViewer"] && self["AscViewer"]["baseUrl"])
return self["AscViewer"]["baseUrl"] + name;
return name;
}
function getMemoryPathIE(name)
{
if (self["AscViewer"] && self["AscViewer"]["baseUrl"])
return self["AscViewer"]["baseUrl"] + name;
return name;
}
var FS = undefined;
var FS = undefined;
//desktop_fetch
//desktop_fetch
//polyfill
//polyfill
//string_utf8
//string_utf8
//module
//module
self.drawingFileCurrentPageIndex = -1;
self.fontStreams = {};
self.drawingFile = null;
self.drawingFileCurrentPageIndex = -1;
self.fontStreams = {};
self.drawingFile = null;
function CBinaryReader(data, start, size)
{
this.data = data;
this.pos = start;
this.limit = start + size;
}
CBinaryReader.prototype.readInt = function()
{
var val = this.data[this.pos] | this.data[this.pos + 1] << 8 | this.data[this.pos + 2] << 16 | this.data[this.pos + 3] << 24;
this.pos += 4;
return val;
};
CBinaryReader.prototype.readDouble = function()
{
return this.readInt() / 100;
};
CBinaryReader.prototype.readString = function()
{
var len = this.readInt();
var val = String.prototype.fromUtf8(this.data, this.pos, len);
this.pos += len;
return val;
};
CBinaryReader.prototype.readData = function()
{
var len = this.readInt();
var val = this.data.slice(this.pos, this.pos + len);
this.pos += len;
return val;
};
CBinaryReader.prototype.isValid = function()
{
return (this.pos < this.limit) ? true : false;
};
CBinaryReader.prototype.Skip = function(nPos)
{
this.pos += nPos;
};
function CBinaryReader(data, start, size)
{
this.data = data;
this.pos = start;
this.limit = start + size;
}
CBinaryReader.prototype.readInt = function()
{
var val = this.data[this.pos] | this.data[this.pos + 1] << 8 | this.data[this.pos + 2] << 16 | this.data[this.pos + 3] << 24;
this.pos += 4;
return val;
};
CBinaryReader.prototype.readDouble = function()
{
return this.readInt() / 100;
};
CBinaryReader.prototype.readString = function()
{
var len = this.readInt();
var val = String.prototype.fromUtf8(this.data, this.pos, len);
this.pos += len;
return val;
};
CBinaryReader.prototype.readData = function()
{
var len = this.readInt();
var val = this.data.slice(this.pos, this.pos + len);
this.pos += len;
return val;
};
CBinaryReader.prototype.isValid = function()
{
return (this.pos < this.limit) ? true : false;
};
CBinaryReader.prototype.Skip = function(nPos)
{
this.pos += nPos;
};
function CBinaryWriter()
{
this.size = 100000;
this.dataSize = 0;
this.buffer = new Uint8Array(this.size);
}
CBinaryWriter.prototype.checkAlloc = function(addition)
{
if ((this.dataSize + addition) <= this.size)
return;
function CBinaryWriter()
{
this.size = 100000;
this.dataSize = 0;
this.buffer = new Uint8Array(this.size);
}
CBinaryWriter.prototype.checkAlloc = function(addition)
{
if ((this.dataSize + addition) <= this.size)
return;
let newSize = Math.max(this.size * 2, this.size + addition);
let newBuffer = new Uint8Array(newSize);
newBuffer.set(this.buffer, 0);
let newSize = Math.max(this.size * 2, this.size + addition);
let newBuffer = new Uint8Array(newSize);
newBuffer.set(this.buffer, 0);
this.size = newSize;
this.buffer = newBuffer;
};
CBinaryWriter.prototype.writeUint = function(value)
{
this.checkAlloc(4);
let val = (value>2147483647)?value-4294967296:value;
this.buffer[this.dataSize++] = (val) & 0xFF;
this.buffer[this.dataSize++] = (val >>> 8) & 0xFF;
this.buffer[this.dataSize++] = (val >>> 16) & 0xFF;
this.buffer[this.dataSize++] = (val >>> 24) & 0xFF;
};
CBinaryWriter.prototype.writeString = function(value)
{
let valueUtf8 = value.toUtf8();
this.checkAlloc(valueUtf8.length);
this.buffer.set(valueUtf8, this.dataSize);
this.dataSize += valueUtf8.length;
};
this.size = newSize;
this.buffer = newBuffer;
};
CBinaryWriter.prototype.writeUint = function(value)
{
this.checkAlloc(4);
let val = (value>2147483647)?value-4294967296:value;
this.buffer[this.dataSize++] = (val) & 0xFF;
this.buffer[this.dataSize++] = (val >>> 8) & 0xFF;
this.buffer[this.dataSize++] = (val >>> 16) & 0xFF;
this.buffer[this.dataSize++] = (val >>> 24) & 0xFF;
};
CBinaryWriter.prototype.writeString = function(value)
{
let valueUtf8 = value.toUtf8();
this.checkAlloc(valueUtf8.length);
this.buffer.set(valueUtf8, this.dataSize);
this.dataSize += valueUtf8.length;
};
function CFile()
{
this.nativeFile = 0;
this.stream = -1;
this.stream_size = 0;
this.type = -1;
this.pages = [];
this.info = null;
this._isNeedPassword = false;
}
function CFile()
{
this.nativeFile = 0;
this.stream = -1;
this.stream_size = 0;
this.type = -1;
this.pages = [];
this.info = null;
this._isNeedPassword = false;
}
CFile.prototype["loadFromData"] = function(arrayBuffer)
{
var data = new Uint8Array(arrayBuffer);
var _stream = Module["_malloc"](data.length);
Module["HEAP8"].set(data, _stream);
this.nativeFile = Module["_Open"](_stream, data.length, 0);
var error = Module["_GetErrorCode"](this.nativeFile);
this.stream = _stream;
this.stream_size = data.length;
this.type = Module["_GetType"](_stream, data.length);
self.drawingFile = this;
this.getInfo();
this._isNeedPassword = (4 === error) ? true : false;
CFile.prototype["loadFromData"] = function(arrayBuffer)
{
var data = new Uint8Array(arrayBuffer);
var _stream = Module["_malloc"](data.length);
Module["HEAP8"].set(data, _stream);
this.nativeFile = Module["_Open"](_stream, data.length, 0);
var error = Module["_GetErrorCode"](this.nativeFile);
this.stream = _stream;
this.stream_size = data.length;
this.type = Module["_GetType"](_stream, data.length);
self.drawingFile = this;
this.getInfo();
this._isNeedPassword = (4 === error) ? true : false;
// 0 - ok
// 4 - password
// else - error
return error;
};
CFile.prototype["loadFromDataWithPassword"] = function(password)
{
if (0 != this.nativeFile)
Module["_Close"](this.nativeFile);
// 0 - ok
// 4 - password
// else - error
return error;
};
CFile.prototype["loadFromDataWithPassword"] = function(password)
{
if (0 != this.nativeFile)
Module["_Close"](this.nativeFile);
var passBuffer = password.toUtf8();
var passPointer = Module["_malloc"](passBuffer.length);
Module["HEAP8"].set(passBuffer, passPointer);
this.nativeFile = Module["_Open"](this.stream, this.stream_size, passPointer);
Module["_free"](passPointer);
var error = Module["_GetErrorCode"](this.nativeFile);
this.type = Module["_GetType"](this.stream, this.stream_size);
self.drawingFile = this;
this.getInfo();
this._isNeedPassword = (4 === error) ? true : false;
var passBuffer = password.toUtf8();
var passPointer = Module["_malloc"](passBuffer.length);
Module["HEAP8"].set(passBuffer, passPointer);
this.nativeFile = Module["_Open"](this.stream, this.stream_size, passPointer);
Module["_free"](passPointer);
var error = Module["_GetErrorCode"](this.nativeFile);
this.type = Module["_GetType"](this.stream, this.stream_size);
self.drawingFile = this;
this.getInfo();
this._isNeedPassword = (4 === error) ? true : false;
// 0 - ok
// 4 - password
// else - error
return error;
};
CFile.prototype["isNeedPassword"] = function()
{
return this._isNeedPassword;
};
CFile.prototype["isNeedCMap"] = function()
{
if (!this.nativeFile)
return false;
// 0 - ok
// 4 - password
// else - error
return error;
};
CFile.prototype["isNeedPassword"] = function()
{
return this._isNeedPassword;
};
CFile.prototype["isNeedCMap"] = function()
{
if (!this.nativeFile)
return false;
var isNeed = Module["_IsNeedCMap"](this.nativeFile);
return (isNeed === 1) ? true : false;
};
CFile.prototype["setCMap"] = function(memoryBuffer)
{
if (!this.nativeFile)
return;
var isNeed = Module["_IsNeedCMap"](this.nativeFile);
return (isNeed === 1) ? true : false;
};
CFile.prototype["setCMap"] = function(memoryBuffer)
{
if (!this.nativeFile)
return;
var pointer = Module["_malloc"](memoryBuffer.length);
Module.HEAP8.set(memoryBuffer, pointer);
Module["_SetCMapData"](this.nativeFile, pointer, memoryBuffer.length);
};
CFile.prototype["getInfo"] = function()
{
if (!this.nativeFile)
return false;
var pointer = Module["_malloc"](memoryBuffer.length);
Module.HEAP8.set(memoryBuffer, pointer);
Module["_SetCMapData"](this.nativeFile, pointer, memoryBuffer.length);
};
CFile.prototype["getInfo"] = function()
{
if (!this.nativeFile)
return false;
var _info = Module["_GetInfo"](this.nativeFile);
if (_info == 0)
return false;
var _info = Module["_GetInfo"](this.nativeFile);
if (_info == 0)
return false;
var lenArray = new Int32Array(Module["HEAP8"].buffer, _info, 4);
if (lenArray == null)
return false;
var lenArray = new Int32Array(Module["HEAP8"].buffer, _info, 4);
if (lenArray == null)
return false;
var len = lenArray[0];
len -= 4;
if (len <= 0)
return false;
var len = lenArray[0];
len -= 4;
if (len <= 0)
return false;
var buffer = new Uint8Array(Module["HEAP8"].buffer, _info + 4, len);
var reader = new CBinaryReader(buffer, 0, len);
var buffer = new Uint8Array(Module["HEAP8"].buffer, _info + 4, len);
var reader = new CBinaryReader(buffer, 0, len);
var _pages = reader.readInt();
for (var i = 0; i < _pages; i++)
{
var rec = {};
rec["W"] = reader.readInt();
rec["H"] = reader.readInt();
rec["Dpi"] = reader.readInt();
rec.fonts = [];
rec.text = null;
this.pages.push(rec);
}
var json_info = reader.readString();
try
{
this.info = JSON.parse(json_info);
} catch(err) {}
var _pages = reader.readInt();
for (var i = 0; i < _pages; i++)
{
var rec = {};
rec["W"] = reader.readInt();
rec["H"] = reader.readInt();
rec["Dpi"] = reader.readInt();
rec.fonts = [];
rec.text = null;
this.pages.push(rec);
}
var json_info = reader.readString();
try
{
this.info = JSON.parse(json_info);
} catch(err) {}
Module["_free"](_info);
return this.pages.length > 0;
};
CFile.prototype["close"] = function()
{
Module["_Close"](this.nativeFile);
this.nativeFile = 0;
this.pages = [];
this.info = null;
if (this.stream > 0)
Module["_free"](this.stream);
this.stream = -1;
self.drawingFile = null;
};
Module["_free"](_info);
return this.pages.length > 0;
};
CFile.prototype["close"] = function()
{
Module["_Close"](this.nativeFile);
this.nativeFile = 0;
this.pages = [];
this.info = null;
if (this.stream > 0)
Module["_free"](this.stream);
this.stream = -1;
self.drawingFile = null;
};
CFile.prototype["getPages"] = function()
{
return this.pages;
};
CFile.prototype["getPages"] = function()
{
return this.pages;
};
CFile.prototype["getDocumentInfo"] = function()
{
return this.info;
};
CFile.prototype["getDocumentInfo"] = function()
{
return this.info;
};
CFile.prototype["getPagePixmap"] = function(pageIndex, width, height, backgroundColor)
{
if (this.pages[pageIndex].fonts.length > 0)
{
// ждем загрузки шрифтов для этой страницы
return null;
}
CFile.prototype["getPagePixmap"] = function(pageIndex, width, height, backgroundColor)
{
if (this.pages[pageIndex].fonts.length > 0)
{
// ждем загрузки шрифтов для этой страницы
return null;
}
self.drawingFileCurrentPageIndex = pageIndex;
var retValue = Module["_GetPixmap"](this.nativeFile, pageIndex, width, height, backgroundColor === undefined ? 0xFFFFFF : backgroundColor);
self.drawingFileCurrentPageIndex = -1;
self.drawingFileCurrentPageIndex = pageIndex;
var retValue = Module["_GetPixmap"](this.nativeFile, pageIndex, width, height, backgroundColor === undefined ? 0xFFFFFF : backgroundColor);
self.drawingFileCurrentPageIndex = -1;
if (this.pages[pageIndex].fonts.length > 0)
{
// ждем загрузки шрифтов для этой страницы
Module["_free"](retValue);
retValue = null;
}
return retValue;
};
CFile.prototype["getGlyphs"] = function(pageIndex)
{
if (this.pages[pageIndex].fonts.length > 0)
{
// ждем загрузки шрифтов для этой страницы
return null;
}
if (this.pages[pageIndex].fonts.length > 0)
{
// ждем загрузки шрифтов для этой страницы
Module["_free"](retValue);
retValue = null;
}
return retValue;
};
CFile.prototype["getGlyphs"] = function(pageIndex)
{
if (this.pages[pageIndex].fonts.length > 0)
{
// ждем загрузки шрифтов для этой страницы
return null;
}
self.drawingFileCurrentPageIndex = pageIndex;
var retValue = Module["_GetGlyphs"](this.nativeFile, pageIndex);
// удалять результат не надо, этот буфер используется в качестве текстового буфера
// для текстовых команд других страниц. После получения ВСЕХ текстовых страниц -
// нужно вызвать destroyTextInfo()
self.drawingFileCurrentPageIndex = -1;
self.drawingFileCurrentPageIndex = pageIndex;
var retValue = Module["_GetGlyphs"](this.nativeFile, pageIndex);
// удалять результат не надо, этот буфер используется в качестве текстового буфера
// для текстовых команд других страниц. После получения ВСЕХ текстовых страниц -
// нужно вызвать destroyTextInfo()
self.drawingFileCurrentPageIndex = -1;
if (this.pages[pageIndex].fonts.length > 0)
{
// ждем загрузки шрифтов для этой страницы
retValue = null;
}
if (this.pages[pageIndex].fonts.length > 0)
{
// ждем загрузки шрифтов для этой страницы
retValue = null;
}
if (null == retValue)
return null;
if (null == retValue)
return null;
var lenArray = new Int32Array(Module["HEAP8"].buffer, retValue, 5);
var len = lenArray[0];
len -= 20;
var lenArray = new Int32Array(Module["HEAP8"].buffer, retValue, 5);
var len = lenArray[0];
len -= 20;
if (self.drawingFile.onUpdateStatistics)
self.drawingFile.onUpdateStatistics(lenArray[1], lenArray[2], lenArray[3], lenArray[4]);
if (self.drawingFile.onUpdateStatistics)
self.drawingFile.onUpdateStatistics(lenArray[1], lenArray[2], lenArray[3], lenArray[4]);
if (len <= 0)
{
return [];
}
if (len <= 0)
{
return [];
}
var textCommandsSrc = new Uint8Array(Module["HEAP8"].buffer, retValue + 20, len);
var textCommands = new Uint8Array(len);
textCommands.set(textCommandsSrc);
var textCommandsSrc = new Uint8Array(Module["HEAP8"].buffer, retValue + 20, len);
var textCommands = new Uint8Array(len);
textCommands.set(textCommandsSrc);
textCommandsSrc = null;
return textCommands;
};
CFile.prototype["destroyTextInfo"] = function()
{
Module["_DestroyTextInfo"]();
};
CFile.prototype["getLinks"] = function(pageIndex)
{
var res = [];
var ext = Module["_GetLinks"](this.nativeFile, pageIndex);
if (ext == 0)
return res;
textCommandsSrc = null;
return textCommands;
};
CFile.prototype["destroyTextInfo"] = function()
{
Module["_DestroyTextInfo"]();
};
CFile.prototype["getLinks"] = function(pageIndex)
{
var res = [];
var ext = Module["_GetLinks"](this.nativeFile, pageIndex);
if (ext == 0)
return res;
var lenArray = new Int32Array(Module["HEAP8"].buffer, ext, 4);
if (lenArray == null)
return res;
var lenArray = new Int32Array(Module["HEAP8"].buffer, ext, 4);
if (lenArray == null)
return res;
var len = lenArray[0];
len -= 4;
if (len <= 0)
return res;
var len = lenArray[0];
len -= 4;
if (len <= 0)
return res;
var buffer = new Uint8Array(Module["HEAP8"].buffer, ext + 4, len);
var reader = new CBinaryReader(buffer, 0, len);
var buffer = new Uint8Array(Module["HEAP8"].buffer, ext + 4, len);
var reader = new CBinaryReader(buffer, 0, len);
while (reader.isValid())
{
var rec = {};
rec["link"] = reader.readString();
rec["dest"] = reader.readDouble();
rec["x"] = reader.readDouble();
rec["y"] = reader.readDouble();
rec["w"] = reader.readDouble();
rec["h"] = reader.readDouble();
res.push(rec);
}
while (reader.isValid())
{
var rec = {};
rec["link"] = reader.readString();
rec["dest"] = reader.readDouble();
rec["x"] = reader.readDouble();
rec["y"] = reader.readDouble();
rec["w"] = reader.readDouble();
rec["h"] = reader.readDouble();
res.push(rec);
}
Module["_free"](ext);
return res;
};
CFile.prototype["getStructure"] = function()
{
var res = [];
var str = Module["_GetStructure"](this.nativeFile);
if (str == 0)
return res;
var lenArray = new Int32Array(Module["HEAP8"].buffer, str, 4);
if (lenArray == null)
return res;
var len = lenArray[0];
len -= 4;
if (len <= 0)
return res;
Module["_free"](ext);
return res;
};
CFile.prototype["getStructure"] = function()
{
var res = [];
var str = Module["_GetStructure"](this.nativeFile);
if (str == 0)
return res;
var lenArray = new Int32Array(Module["HEAP8"].buffer, str, 4);
if (lenArray == null)
return res;
var len = lenArray[0];
len -= 4;
if (len <= 0)
return res;
var buffer = new Uint8Array(Module["HEAP8"].buffer, str + 4, len);
var reader = new CBinaryReader(buffer, 0, len);
var buffer = new Uint8Array(Module["HEAP8"].buffer, str + 4, len);
var reader = new CBinaryReader(buffer, 0, len);
while (reader.isValid())
{
var rec = {};
rec["page"] = reader.readInt();
rec["level"] = reader.readInt();
rec["y"] = reader.readDouble();
rec["description"] = reader.readString();
res.push(rec);
}
while (reader.isValid())
{
var rec = {};
rec["page"] = reader.readInt();
rec["level"] = reader.readInt();
rec["y"] = reader.readDouble();
rec["description"] = reader.readString();
res.push(rec);
}
Module["_free"](str);
return res;
};
Module["_free"](str);
return res;
};
CFile.prototype.memory = function()
{
return Module["HEAP8"];
};
CFile.prototype.free = function(pointer)
{
Module["_free"](pointer);
};
CFile.prototype.memory = function()
{
return Module["HEAP8"];
};
CFile.prototype.free = function(pointer)
{
Module["_free"](pointer);
};
self["AscViewer"]["CDrawingFile"] = CFile;
self["AscViewer"]["CDrawingFile"] = CFile;
self["AscViewer"]["InitializeFonts"] = function() {
if (!window["g_fonts_selection_bin"])
return;
var memoryBuffer = window["g_fonts_selection_bin"].toUtf8();
var pointer = Module["_malloc"](memoryBuffer.length);
Module.HEAP8.set(memoryBuffer, pointer);
Module.HEAP8.set(memoryBuffer, pointer);
Module["_InitializeFontsBase64"](pointer, memoryBuffer.length);
Module["_free"](pointer);
delete window["g_fonts_selection_bin"];
// ranges
let rangesBuffer = new CBinaryWriter();
let ranges = AscFonts.FontPickerByCharacter.Ranges;
let rangesBuffer = new CBinaryWriter();
let ranges = AscFonts.FontPickerByCharacter.Ranges;
let rangesCount = ranges.length;
rangesBuffer.writeUint(rangesCount);
for (let i = 0; i < rangesCount; i++)
{
rangesBuffer.writeString(ranges[i].Name);
rangesBuffer.writeUint(ranges[i].Start);
rangesBuffer.writeUint(ranges[i].End);
}
let rangesCount = ranges.length;
rangesBuffer.writeUint(rangesCount);
for (let i = 0; i < rangesCount; i++)
{
rangesBuffer.writeString(ranges[i].Name);
rangesBuffer.writeUint(ranges[i].Start);
rangesBuffer.writeUint(ranges[i].End);
}
let rangesFinalLen = rangesBuffer.dataSize;
let rangesFinal = new Uint8Array(rangesBuffer.buffer.buffer, 0, rangesFinalLen);
pointer = Module["_malloc"](rangesFinalLen);
Module.HEAP8.set(rangesFinal, pointer);
Module["_InitializeFontsRanges"](pointer, rangesFinalLen);
Module["_free"](pointer);
let rangesFinalLen = rangesBuffer.dataSize;
let rangesFinal = new Uint8Array(rangesBuffer.buffer.buffer, 0, rangesFinalLen);
pointer = Module["_malloc"](rangesFinalLen);
Module.HEAP8.set(rangesFinal, pointer);
Module["_InitializeFontsRanges"](pointer, rangesFinalLen);
Module["_free"](pointer);
};
self["AscViewer"]["Free"] = function(pointer) {
self["AscViewer"]["Free"] = function(pointer) {
Module["_free"](pointer);
};
@ -454,114 +454,114 @@
return isFound;
}
self["AscViewer"]["CheckStreamId"] = function(data, status) {
var lenArray = new Int32Array(Module["HEAP8"].buffer, data, 4);
var len = lenArray[0];
len -= 4;
self["AscViewer"]["CheckStreamId"] = function(data, status) {
var lenArray = new Int32Array(Module["HEAP8"].buffer, data, 4);
var len = lenArray[0];
len -= 4;
var buffer = new Uint8Array(Module["HEAP8"].buffer, data + 4, len);
var reader = new CBinaryReader(buffer, 0, len);
var buffer = new Uint8Array(Module["HEAP8"].buffer, data + 4, len);
var reader = new CBinaryReader(buffer, 0, len);
var name = reader.readString();
var style = 0;
if (reader.readInt() != 0)
style |= 1;//AscFonts.FontStyle.FontStyleBold;
if (reader.readInt() != 0)
style |= 2;//AscFonts.FontStyle.FontStyleItalic;
var name = reader.readString();
var style = 0;
if (reader.readInt() != 0)
style |= 1;//AscFonts.FontStyle.FontStyleBold;
if (reader.readInt() != 0)
style |= 2;//AscFonts.FontStyle.FontStyleItalic;
var file = AscFonts.pickFont(name, style);
var fileId = file.GetID();
var fileStatus = file.GetStatus();
var file = AscFonts.pickFont(name, style);
var fileId = file.GetID();
var fileStatus = file.GetStatus();
if (fileStatus == 0)
{
// шрифт загружен.
fontToMemory(file, true);
}
else
{
self.fontStreams[fileId] = self.fontStreams[fileId] || {};
self.fontStreams[fileId].pages = self.fontStreams[fileId].pages || [];
addToArrayAsDictionary(self.fontStreams[fileId].pages, self.drawingFileCurrentPageIndex);
if (fileStatus == 0)
{
// шрифт загружен.
fontToMemory(file, true);
}
else
{
self.fontStreams[fileId] = self.fontStreams[fileId] || {};
self.fontStreams[fileId].pages = self.fontStreams[fileId].pages || [];
addToArrayAsDictionary(self.fontStreams[fileId].pages, self.drawingFileCurrentPageIndex);
if (self.drawingFile)
{
addToArrayAsDictionary(self.drawingFile.pages[self.drawingFileCurrentPageIndex].fonts, fileId);
}
if (self.drawingFile)
{
addToArrayAsDictionary(self.drawingFile.pages[self.drawingFileCurrentPageIndex].fonts, fileId);
}
if (fileStatus != 2)
{
// шрифт не грузится - надо загрузить
var _t = file;
file.LoadFontAsync("../../../../fonts/", function(){
fontToMemory(_t, true);
if (fileStatus != 2)
{
// шрифт не грузится - надо загрузить
var _t = file;
file.LoadFontAsync("../../../../fonts/", function(){
fontToMemory(_t, true);
var pages = self.fontStreams[fileId].pages;
delete self.fontStreams[fileId];
var pagesRepaint = [];
for (var i = 0, len = pages.length; i < len; i++)
{
var pageObj = self.drawingFile.pages[pages[i]];
var fonts = pageObj.fonts;
for (var j = 0, len_fonts = fonts.length; j < len_fonts; j++)
{
if (fonts[j] == fileId)
{
fonts.splice(j, 1);
break;
}
}
if (0 == fonts.length)
pagesRepaint.push(pages[i]);
}
var pages = self.fontStreams[fileId].pages;
delete self.fontStreams[fileId];
var pagesRepaint = [];
for (var i = 0, len = pages.length; i < len; i++)
{
var pageObj = self.drawingFile.pages[pages[i]];
var fonts = pageObj.fonts;
for (var j = 0, len_fonts = fonts.length; j < len_fonts; j++)
{
if (fonts[j] == fileId)
{
fonts.splice(j, 1);
break;
}
}
if (0 == fonts.length)
pagesRepaint.push(pages[i]);
}
if (pagesRepaint.length > 0)
{
if (self.drawingFile.onRepaintPages)
self.drawingFile.onRepaintPages(pagesRepaint);
}
});
}
}
if (pagesRepaint.length > 0)
{
if (self.drawingFile.onRepaintPages)
self.drawingFile.onRepaintPages(pagesRepaint);
}
});
}
}
var memoryBuffer = fileId.toUtf8();
var pointer = Module["_malloc"](memoryBuffer.length);
Module.HEAP8.set(memoryBuffer, pointer);
Module["HEAP8"][status] = (fileStatus == 0) ? 1 : 0;
return pointer;
};
var memoryBuffer = fileId.toUtf8();
var pointer = Module["_malloc"](memoryBuffer.length);
Module.HEAP8.set(memoryBuffer, pointer);
Module["HEAP8"][status] = (fileStatus == 0) ? 1 : 0;
return pointer;
};
function fontToMemory(file, isCheck)
{
var idBuffer = file.GetID().toUtf8();
var idPointer = Module["_malloc"](idBuffer.length);
Module["HEAP8"].set(idBuffer, idPointer);
function fontToMemory(file, isCheck)
{
var idBuffer = file.GetID().toUtf8();
var idPointer = Module["_malloc"](idBuffer.length);
Module["HEAP8"].set(idBuffer, idPointer);
if (isCheck)
{
var nExist = Module["_IsFontBinaryExist"](idPointer);
if (nExist != 0)
{
Module["_free"](idPointer);
return;
}
}
if (isCheck)
{
var nExist = Module["_IsFontBinaryExist"](idPointer);
if (nExist != 0)
{
Module["_free"](idPointer);
return;
}
}
var stream_index = file.GetStreamIndex();
var stream = AscFonts.getFontStream(stream_index);
var streamPointer = Module["_malloc"](stream.size);
Module["HEAP8"].set(stream.data, streamPointer);
var stream_index = file.GetStreamIndex();
var stream = AscFonts.getFontStream(stream_index);
var streamPointer = Module["_malloc"](stream.size);
Module["HEAP8"].set(stream.data, streamPointer);
// не скидываем стрим, чтобы можно было использовать его а fonts.js
//var streams = AscFonts.getFontStreams();
//streams[stream_index] = null;
//streams[stream_index] = AscFonts.updateFontStreamNative(streamPointer, stream.size);
// не скидываем стрим, чтобы можно было использовать его а fonts.js
//var streams = AscFonts.getFontStreams();
//streams[stream_index] = null;
//streams[stream_index] = AscFonts.updateFontStreamNative(streamPointer, stream.size);
Module["_SetFontBinary"](idPointer, streamPointer, stream.size);
Module["_SetFontBinary"](idPointer, streamPointer, stream.size);
Module["_free"](streamPointer);
Module["_free"](idPointer);
}
Module["_free"](streamPointer);
Module["_free"](idPointer);
}
})(window, undefined);