Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 10 additions & 2 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -92,14 +92,22 @@
<button class="progress-play" id="progress-play"><i class="fa fa-play"></i></button>
<button class="progress-pause" id="progress-pause"><i class="fa fa-pause"></i></button>
<button class="progress-stop" id="progress-stop"><i class="fa fa-stop"></i></button>
<div id="renderer-select" class="tab">
<div id="renderer-select" class="tab dropdown-container">
<div class="header">Render Backend</div>
<select id="renderer-dropdown">
<select id="renderer-dropdown" class="dropdown">
<option value="sw">Software</option>
<option value="gl">WebGL</option>
<option value="wg">WebGPU</option>
</select>
</div>

<div id="device-pixel-ratio-select" class="tab dropdown-container">
<div class="header">Device Pixel Ratio</div>
<select id="device-pixel-ratio-dropdown" class="dropdown">
<option value="true">Enable</option>
<option value="false" selected>Disable</option>
</select>
</div>
</div>
<div id="scene-graph" class="tab scrollable">
<div class="placeholder">No scene-tree information</br><small>Please load a resource first</small></div>
Expand Down
15 changes: 13 additions & 2 deletions main.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ var filename;
var filedata;
var size = 800;
var renderer = 'sw';
var enableDevicePixelRatio = false;

//console output
const ConsoleLogTypes = { None : '', Inner : 'console-type-inner', Error : 'console-type-error', Warning : 'console-type-warning' };
Expand Down Expand Up @@ -130,7 +131,8 @@ function initialize() {
document.getElementById("nav-files-list").addEventListener("click", onShowFilesList, false);
document.getElementById("nav-dark-mode").addEventListener("change", onDarkMode, false);
document.getElementById("nav-stats-mode").addEventListener("change", onStatsMode, false);
document.getElementById("renderer-dropdown").addEventListener("change", onRendererMode, false);
document.getElementById("renderer-dropdown").addEventListener("change", onRendererMode, false);
document.getElementById("device-pixel-ratio-dropdown").addEventListener("change", onDevicePixelRatioMode, false);
document.getElementById("nav-console").addEventListener("click", onConsoleWindow, false);

document.getElementById("console-bottom-scroll").addEventListener("click", onConsoleBottom, false);
Expand Down Expand Up @@ -218,7 +220,7 @@ function loadData(data, fileExtension) {
player.autoPlay = true;
player.loop = true;
player.wasmUrl = 'thorvg-wasm.wasm';
player.renderConfig = { renderer };
player.renderConfig = { renderer, enableDevicePixelRatio };
attachAllEventListeners();
document.querySelector('#image-area').appendChild(player);

Expand Down Expand Up @@ -436,6 +438,15 @@ function onRendererMode(event) {
loadData(filedata, filetype);
}

function onDevicePixelRatioMode(event) {
const devicePixelRatio = event.target.value;
enableDevicePixelRatio = devicePixelRatio === 'true';
if (!filedata) {
return;
}
loadData(filedata, filetype);
}

function onConsoleWindow(event) {
document.getElementById("console-area").classList.toggle("hidden");
}
Expand Down
49 changes: 29 additions & 20 deletions style.css
Original file line number Diff line number Diff line change
Expand Up @@ -691,48 +691,57 @@ lottie-player {
z-index: -1;
}

#renderer-select {
.dropdown-container {
display: flex;
flex-direction: column;
justify-content: center;
align-items: start;
width: 100%;
position: absolute;
top: 185px;
height: 64px;
}

#renderer-dropdown {
#renderer-select {
top: 185px;
}

#device-pixel-ratio-select {
top: 260px;
}

.dropdown {
width: 100%;
padding: 8px 20px;
margin-top: 4px;
height: 40px;
padding: 8px 40px 8px 20px;
margin-top: 4px;

/* Reset default styles */
border: none;
outline: none;
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;

/* Visual styling */
background-color: transparent;
color: #38435a;
font-size: 16px;
height: 40px;
cursor: pointer;
transition: color 0.2s;
outline: none;

/* Dropdown arrow */
background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
background-repeat: no-repeat;
background-position: right 12px center;
background-size: 16px;
}

#renderer-dropdown:hover {
.dropdown:hover {
color: #38435a;
background-color: #f1f4f7;
}

#renderer-dropdown:disabled {
.dropdown:disabled {
color: #999;
cursor: not-allowed;
}

#renderer-dropdown {
padding-right: 40px;
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
background-repeat: no-repeat;
background-position: right 12px center;
background-size: 16px;
}