new design for rendertest #8

Merged
provod merged 28 commits from NightFox/HLRTest:master into master 2024-02-15 23:35:42 +01:00
Owner

Что сделано:

  • Удалёны gif, тесты заметно ускорились из-за этого, даже не смотря что делаются png из tga форсировано теперь.
  • Добавлены темы, но светлой уделялось мало внимания. С костылём на автотёмную тему не знаю как будет тёмная тема работать, не проверял.
  • Изменён дизайн, теперь таблица-список картинок вынесена в отдельную боковую панель.
  • Появились разные режимы и настройки (лень перечислять там и так всё видно).
  • Исправлена ошибка сортировки которая проявлялась на chrome-подобных браузерах.
  • Исправлена ошибка с ориентацией картинок (поймал у себя что они оказались перевёрнутые).
  • Произошла некоторая реорганизация кодовой базы, некоторые функции были расширены, а что-то исправлено по мелочи.
Что сделано: * Удалёны gif, тесты заметно ускорились из-за этого, даже не смотря что делаются png из tga форсировано теперь. * Добавлены темы, но светлой уделялось мало внимания. С костылём на автотёмную тему не знаю как будет тёмная тема работать, не проверял. * Изменён дизайн, теперь таблица-список картинок вынесена в отдельную боковую панель. * Появились разные режимы и настройки (лень перечислять там и так всё видно). * Исправлена ошибка сортировки которая проявлялась на chrome-подобных браузерах. * Исправлена ошибка с ориентацией картинок (поймал у себя что они оказались перевёрнутые). * Произошла некоторая реорганизация кодовой базы, некоторые функции были расширены, а что-то исправлено по мелочи.
NightFox added 1 commit 2024-02-12 15:02:51 +01:00
NightFox changed title from new design for rendertest to WIP: new design for rendertest 2024-02-12 17:31:10 +01:00
NightFox added 1 commit 2024-02-12 20:36:19 +01:00
NightFox added 1 commit 2024-02-13 00:10:38 +01:00
NightFox started working 2024-02-13 00:14:59 +01:00
NightFox canceled time tracking 2024-02-13 00:15:10 +01:00
NightFox added 1 commit 2024-02-13 13:50:25 +01:00
NightFox added 1 commit 2024-02-13 14:49:59 +01:00
NightFox added 1 commit 2024-02-14 15:16:52 +01:00
NightFox force-pushed master from d604f1a7c1 to ef4d806752 2024-02-14 15:19:09 +01:00 Compare
NightFox added 1 commit 2024-02-14 15:21:06 +01:00
NightFox added 1 commit 2024-02-14 18:31:57 +01:00
use hybrid emoji (different fonts for better UX)
add missing Twemoji.Mozilla license
NightFox added 1 commit 2024-02-14 18:35:56 +01:00
NightFox added 1 commit 2024-02-14 19:32:05 +01:00
NightFox added 1 commit 2024-02-14 20:35:13 +01:00
NightFox added 1 commit 2024-02-15 00:34:35 +01:00
NightFox added 1 commit 2024-02-15 00:54:12 +01:00
NightFox added 1 commit 2024-02-15 11:31:44 +01:00
NightFox added 1 commit 2024-02-15 15:15:19 +01:00
NightFox changed title from WIP: new design for rendertest to new design for rendertest 2024-02-15 15:17:24 +01:00
NightFox added 1 commit 2024-02-15 16:19:58 +01:00
NightFox added 1 commit 2024-02-15 16:23:39 +01:00
NightFox changed title from new design for rendertest to WIP: new design for rendertest 2024-02-15 16:24:23 +01:00
NightFox added 1 commit 2024-02-15 16:30:54 +01:00
NightFox changed title from WIP: new design for rendertest to new design for rendertest 2024-02-15 16:31:27 +01:00
NightFox added 1 commit 2024-02-15 17:16:43 +01:00
NightFox added 1 commit 2024-02-15 17:22:52 +01:00
NightFox added 1 commit 2024-02-15 17:28:21 +01:00
NightFox added 1 commit 2024-02-15 17:29:18 +01:00
NightFox added 1 commit 2024-02-15 17:35:32 +01:00
NightFox added 1 commit 2024-02-15 18:07:11 +01:00
NightFox added 1 commit 2024-02-15 21:12:58 +01:00
provod reviewed 2024-02-15 21:31:02 +01:00
render/index.js Outdated
@ -22,0 +77,4 @@
"diffuse": "🎆",
"specular": "💎",
"material": "🖌",
"indirect": "🏀",//🏀🏓🥏
Owner

хаха!

хаха!
Author
Owner

Мне нравится "🥏" но красиво оно смотрится только на шрифте винды, на других шрифтах так себе, увы, может потом ещё чего нарою где это красиво изображено.

Мне нравится "🥏" но красиво оно смотрится только на шрифте винды, на других шрифтах так себе, увы, может потом ещё чего нарою где это красиво изображено.
provod reviewed 2024-02-15 21:34:31 +01:00
@ -108,0 +350,4 @@
}
// TODO: simplification and bindings
gridContainer = Tag("div", {"class": "grid-container"}, null, [
Owner

Ничё ты тут хтмля прямо в жс нашвырял

Ничё ты тут хтмля прямо в жс нашвырял
Author
Owner

Сначала оно было в HTML, потом я подумал а почему бы не переиспользовать функционал, заодно сразу же подписаться на события, в итоге написал транслятор из HTML в твой вид. Что-то вроде такого (возможно это не самая последняя версия):

function markupToCode(markup) {
	const parser = new DOMParser();
	const doc = parser.parseFromString(markup, 'text/html');
	const root = doc.body.firstChild;

	function traverse(node, indentLevel = 0) {
		const indent = '\t'.repeat(indentLevel);
		const name = node.nodeName.toLowerCase();
		const attrs = {};
		const children = [];
		let body = '';

		for (let i = 0; i < node.attributes.length; i++) {
			const attr = node.attributes[i];
			if (attr.name === "id") {
				continue;
			}
			attrs[attr.name] = attr.value;
		}

		const isParent = node.childNodes.length > 1;
		
		if (isParent) {
			for (let i = 0; i < node.childNodes.length; i++) {
				console.log(node.childNodes);
				const child = node.childNodes[i];
				if (child.nodeType === Node.ELEMENT_NODE) {
					children.push(traverse(child, indentLevel + 1));
				} else if (child.nodeType === Node.TEXT_NODE && child.textContent.trim() !== '') {
					body = null;
					children.push(`\n${indent}\tText("${child.textContent}")`);
				}
			}
		} else {
			body = node.textContent;
		}

		let childrenCode = children.length > 0 ? children.map(c => typeof c === 'string' ? c : JSON.stringify(c)).join(', ') : '';
		let code = `\n${indent}Tag("${name}", ${Object.keys(attrs).length > 0 ? JSON.stringify(attrs, null, 1).replace("\n ", "").replaceAll("\n", "") : "null"}`;
		code += `${body ? ', "' + body + '"' : !children.length ? "" : ", null"}`;
		code += `${childrenCode ? ", [" + childrenCode + `\n${indent}]` : ""}`;
		code += ")";

		return code;
	}

	return traverse(root);
}

const markup = `<div>
	<b><span class="emoji">🌈</span> Show diff mode on</b>
	<label><input type="radio" id="diff-click" name="diff_mode" value="click" checked="checked"><span class="emoji">🖱</span> Click (LMB)</label>
	<label><input type="radio" id="diff-separate" name="diff_mode" value="separate"><span class="emoji">🎏</span> Separate</label>
</div>`;

const code = markupToCode(markup);
console.log(code);
Сначала оно было в HTML, потом я подумал а почему бы не переиспользовать функционал, заодно сразу же подписаться на события, в итоге написал транслятор из HTML в твой вид. Что-то вроде такого (возможно это не самая последняя версия): ```js function markupToCode(markup) { const parser = new DOMParser(); const doc = parser.parseFromString(markup, 'text/html'); const root = doc.body.firstChild; function traverse(node, indentLevel = 0) { const indent = '\t'.repeat(indentLevel); const name = node.nodeName.toLowerCase(); const attrs = {}; const children = []; let body = ''; for (let i = 0; i < node.attributes.length; i++) { const attr = node.attributes[i]; if (attr.name === "id") { continue; } attrs[attr.name] = attr.value; } const isParent = node.childNodes.length > 1; if (isParent) { for (let i = 0; i < node.childNodes.length; i++) { console.log(node.childNodes); const child = node.childNodes[i]; if (child.nodeType === Node.ELEMENT_NODE) { children.push(traverse(child, indentLevel + 1)); } else if (child.nodeType === Node.TEXT_NODE && child.textContent.trim() !== '') { body = null; children.push(`\n${indent}\tText("${child.textContent}")`); } } } else { body = node.textContent; } let childrenCode = children.length > 0 ? children.map(c => typeof c === 'string' ? c : JSON.stringify(c)).join(', ') : ''; let code = `\n${indent}Tag("${name}", ${Object.keys(attrs).length > 0 ? JSON.stringify(attrs, null, 1).replace("\n ", "").replaceAll("\n", "") : "null"}`; code += `${body ? ', "' + body + '"' : !children.length ? "" : ", null"}`; code += `${childrenCode ? ", [" + childrenCode + `\n${indent}]` : ""}`; code += ")"; return code; } return traverse(root); } const markup = `<div> <b><span class="emoji">🌈</span> Show diff mode on</b> <label><input type="radio" id="diff-click" name="diff_mode" value="click" checked="checked"><span class="emoji">🖱</span> Click (LMB)</label> <label><input type="radio" id="diff-separate" name="diff_mode" value="separate"><span class="emoji">🎏</span> Separate</label> </div>`; const code = markupToCode(markup); console.log(code); ```
Author
Owner

Вообще я бы мог даже странслировать с шаблона подобным подходом, но посчитал это уже излишне. По хорошему надо переписывать на нормальные шаблоны с биндингами и реактивным программированием. Может потом как будет нужда займусь этим в рамках этой кодобазы.

Вообще я бы мог даже странслировать с шаблона подобным подходом, но посчитал это уже излишне. По хорошему надо переписывать на нормальные шаблоны с биндингами и реактивным программированием. Может потом как будет нужда займусь этим в рамках этой кодобазы.
Owner

Интересно. А почему удобнее оказалось в коде, чем в HTML, или в шаблонной какой табличке, которая бы сгенерячила эти теги сама под капотом?

Оставить сейчас можно как есть, для мержа не нужно ничего менять в этом.

Интересно. А почему удобнее оказалось в коде, чем в HTML, или в шаблонной какой табличке, которая бы сгенерячила эти теги сама под капотом? Оставить сейчас можно как есть, для мержа не нужно ничего менять в этом.
Author
Owner

Интересно. А почему удобнее оказалось в коде, чем в HTML, или в шаблонной какой табличке, которая бы сгенерячила эти теги сама под капотом?

Пока я не навалил функционала казалось что так будет ок. Вообще там оживлять HTML тоже грязь будет без нормальных биндингов и реактивщины, а биндинги и т.п. мне что-то лень было делать, я подумал щас вообще быстренько закостыляю... а потом что-то много идей в голову пришло и это начало как лес расти. В общем это произошло самопроизвольно, я себе жётские дедлайны ставил.

> Интересно. А почему удобнее оказалось в коде, чем в HTML, или в шаблонной какой табличке, которая бы сгенерячила эти теги сама под капотом? Пока я не навалил функционала казалось что так будет ок. Вообще там оживлять HTML тоже грязь будет без нормальных биндингов и реактивщины, а биндинги и т.п. мне что-то лень было делать, я подумал щас вообще быстренько закостыляю... а потом что-то много идей в голову пришло и это начало как лес расти. В общем это произошло самопроизвольно, я себе жётские дедлайны ставил.
provod requested changes 2024-02-15 21:41:53 +01:00
provod left a comment
Owner

Всё круто, только шрифты жиробасные и правда, OpenMoji...ttf 10Мб один.
Давай их в lfs, и можно мержить, да.

Всё круто, только шрифты жиробасные и правда, OpenMoji...ttf 10Мб один. Давай их в lfs, и можно мержить, да.
Author
Owner

Всё круто, только шрифты жиробасные и правда, OpenMoji...ttf 10Мб один.
Давай их в lfs, и можно мержить, да.

У тебя там 114МБ скриншотов, а тебе 10МБ жалко? Вообще там по идее можно удалить OpenMoji-color-colr1_svg.ttf и переназначить на OpenMoji-color-colr1_svg.woff2 будет 2мб.
Чтобы нормально удалить надо переформатировать историю, надо вспомнить как это сделать.
Ща попробую короче.

> Всё круто, только шрифты жиробасные и правда, OpenMoji...ttf 10Мб один. > Давай их в lfs, и можно мержить, да. У тебя там 114МБ скриншотов, а тебе 10МБ жалко? Вообще там по идее можно удалить OpenMoji-color-colr1_svg.ttf и переназначить на OpenMoji-color-colr1_svg.woff2 будет 2мб. Чтобы нормально удалить надо переформатировать историю, надо вспомнить как это сделать. Ща попробую короче.
Owner

Да, если переносить в lfs, то мне надо будет сделать squash, чтобы из истории они пропали тоже.

Да, если переносить в lfs, то мне надо будет сделать squash, чтобы из истории они пропали тоже.
Owner

Всё круто, только шрифты жиробасные и правда, OpenMoji...ttf 10Мб один.
Давай их в lfs, и можно мержить, да.

У тебя там 114МБ скриншотов, а тебе 10МБ жалко? Вообще там по идее можно удалить OpenMoji-color-colr1_svg.ttf и переназначить на OpenMoji-color-colr1_svg.woff2 будет 2мб.
Чтобы нормально удалить надо переформатировать историю, надо вспомнить как это сделать.
Ща попробую короче.

Так скриншотов гигабайты как раз в lfs.
Проблема таскать жирные бинари в гите в том, что они засоряют историю.

> > Всё круто, только шрифты жиробасные и правда, OpenMoji...ttf 10Мб один. > > Давай их в lfs, и можно мержить, да. > > У тебя там 114МБ скриншотов, а тебе 10МБ жалко? Вообще там по идее можно удалить OpenMoji-color-colr1_svg.ttf и переназначить на OpenMoji-color-colr1_svg.woff2 будет 2мб. > Чтобы нормально удалить надо переформатировать историю, надо вспомнить как это сделать. > Ща попробую короче. Так скриншотов гигабайты как раз в lfs. Проблема таскать жирные бинари в гите в том, что они засоряют историю.
NightFox added 2 commits 2024-02-15 21:50:00 +01:00
Author
Owner

Проблема таскать жирные бинари в гите в том, что они засоряют историю.

Ну это да я забыл что они в лфс, голова плохо варит уже.

Да, если переносить в lfs, то мне надо будет сделать squash, чтобы из истории они пропали тоже.

Сейчас я попробую переформатировать историю этого пуллреквеста и сделать push force.

> Проблема таскать жирные бинари в гите в том, что они засоряют историю. Ну это да я забыл что они в лфс, голова плохо варит уже. > Да, если переносить в lfs, то мне надо будет сделать squash, чтобы из истории они пропали тоже. Сейчас я попробую переформатировать историю этого пуллреквеста и сделать push force.
NightFox force-pushed master from 142d783b97 to 131b2c5c1c 2024-02-15 23:13:53 +01:00 Compare
provod merged commit 25faf8b0e1 into master 2024-02-15 23:35:42 +01:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: Half-Life-RTX/HLRTest#8
No description provided.