mirror of
https://github.com/misskey-dev/misskey.git
synced 2026-06-25 17:10:43 +00:00
wip
This commit is contained in:
parent
1469f890dd
commit
e90a53a851
8 changed files with 82 additions and 43 deletions
|
|
@ -3558,16 +3558,20 @@ _qr:
|
|||
raw: "テキスト"
|
||||
mfm: "MFM"
|
||||
|
||||
_room:
|
||||
_miWorld:
|
||||
separateRenderingThread: "描画を別スレッドに分離"
|
||||
separateRenderingThread_description: "有効にするとパフォーマンスが向上します。不安定になる場合は無効すると改善する可能性があります。"
|
||||
graphicsQuality: "グラフィックの品質"
|
||||
frameRate: "フレームレート"
|
||||
resolution: "解像度"
|
||||
failedToInitialize: "初期化に失敗しました"
|
||||
crushed_description: "バグ、またはデバイスのリソース不足の可能性が考えられます。"
|
||||
antialiasing: "アンチエイリアス"
|
||||
|
||||
_miRoom:
|
||||
snapToGrid: "グリッドにスナップ"
|
||||
gridScale: "グリッドサイズ"
|
||||
thereAreUnsavedChanges: "未保存の変更があります"
|
||||
revertAllChangesConfirmation: "全ての変更を取り消し、部屋を最後に保存した状態まで戻しますか?"
|
||||
graphicsQuality: "グラフィックの品質"
|
||||
frameRate: "フレームレート"
|
||||
resolution: "解像度"
|
||||
yourDeviceNotSupported_title: "お使いのデバイスはMisskeyRoomをサポートしていません。"
|
||||
yourDeviceNotSupported_description: "MisskeyRoomを動作させるには、WebGPUをサポートするデバイスが必要です。"
|
||||
failedToInitialize: "初期化に失敗しました"
|
||||
crushed_description: "バグ、またはデバイスのリソース不足の可能性が考えられます。"
|
||||
antialiasing: "アンチエイリアス"
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
これらのサムネイルはdev buildでRoomのカタログダイアログを表示し家具を選択した状態でブラウザのコンソールで`takeScreenshot();`を叩くと生成・ダウンロードできます
|
||||
これらのサムネイルはdev buildかつWorldのレンダリングを別スレッドにする設定を無効にした状態でRoomのカタログダイアログを表示し家具を選択した状態でブラウザのコンソールで`takeScreenshot();`を叩くと生成・ダウンロードできます
|
||||
|
|
|
|||
|
|
@ -124,7 +124,7 @@ const previewEngineControllerOptions = computed<PreviewEngineControllerOptions>(
|
|||
graphicsQuality: props.graphicsQuality,
|
||||
fps: null,
|
||||
resolution: 1,
|
||||
workerMode: false,
|
||||
workerMode: prefer.s['world.separateRenderingThread'],
|
||||
}));
|
||||
|
||||
const controller = markRaw(new PreviewEngineController(previewEngineControllerOptions.value));
|
||||
|
|
@ -141,7 +141,7 @@ onMounted(async () => {
|
|||
console.error(err);
|
||||
os.alert({
|
||||
type: 'error',
|
||||
title: i18n.ts._room.failedToInitialize,
|
||||
title: i18n.ts._miWorld.failedToInitialize,
|
||||
text: (err instanceof Error ? err.message : String(err)),
|
||||
});
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
<button :class="$style.topMenuButton" class="_button" @click="showOtherMenu"><i class="ti ti-dots"></i></button>
|
||||
</div>
|
||||
<div v-if="isModified" :class="$style.modified" class="_panel _shadow">
|
||||
<span :class="$style.modifiedText">{{ i18n.ts._room.thereAreUnsavedChanges }}</span>
|
||||
<span :class="$style.modifiedText">{{ i18n.ts._miRoom.thereAreUnsavedChanges }}</span>
|
||||
<button class="_button" style="color: var(--MI_THEME-error)" @click="revert">戻す</button>
|
||||
<button class="_button" style="color: var(--MI_THEME-accent)" @click="save">保存</button>
|
||||
</div>
|
||||
|
|
@ -185,7 +185,7 @@ const roomControllerOptions = computed<RoomControllerOptions>(() => ({
|
|||
resolution: resolution.value,
|
||||
antialias: antialias.value,
|
||||
useVirtualJoystick,
|
||||
workerMode: false,
|
||||
workerMode: prefer.s['world.separateRenderingThread'],
|
||||
}));
|
||||
|
||||
const controller = markRaw(new RoomController(props.room.def, roomControllerOptions.value));
|
||||
|
|
@ -196,8 +196,8 @@ onMounted(async () => {
|
|||
if (!await BABYLON.WebGPUEngine.IsSupportedAsync) {
|
||||
os.alert({
|
||||
type: 'warning',
|
||||
title: i18n.ts._room.yourDeviceNotSupported_title,
|
||||
text: i18n.ts._room.yourDeviceNotSupported_description,
|
||||
title: i18n.ts._miRoom.yourDeviceNotSupported_title,
|
||||
text: i18n.ts._miRoom.yourDeviceNotSupported_description,
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
|
@ -208,7 +208,7 @@ onMounted(async () => {
|
|||
console.error(err);
|
||||
os.alert({
|
||||
type: 'error',
|
||||
title: i18n.ts._room.failedToInitialize,
|
||||
title: i18n.ts._miWorld.failedToInitialize,
|
||||
text: (err instanceof Error ? err.message : String(err)),
|
||||
});
|
||||
return;
|
||||
|
|
@ -338,7 +338,7 @@ function toggleLight() {
|
|||
function showSnappingMenu(ev: PointerEvent) {
|
||||
os.popupMenu([{
|
||||
type: 'switch',
|
||||
text: i18n.ts._room.snapToGrid,
|
||||
text: i18n.ts._miRoom.snapToGrid,
|
||||
ref: computed({
|
||||
get: () => controller.gridSnapping.value.enabled,
|
||||
set: v => controller.setGridSnapping({ ...controller.gridSnapping.value, enabled: v }),
|
||||
|
|
@ -423,7 +423,7 @@ async function revert() {
|
|||
const { canceled } = await os.confirm({
|
||||
type: 'warning',
|
||||
title: i18n.ts.areYouSure,
|
||||
text: i18n.ts._room.revertAllChangesConfirmation,
|
||||
text: i18n.ts._miRoom.revertAllChangesConfirmation,
|
||||
});
|
||||
if (canceled) return;
|
||||
|
||||
|
|
@ -495,7 +495,7 @@ function impor() {
|
|||
function showOtherMenu(ev: PointerEvent) {
|
||||
os.popupMenu([{
|
||||
type: 'radio',
|
||||
text: i18n.ts._room.graphicsQuality,
|
||||
text: i18n.ts._miWorld.graphicsQuality,
|
||||
caption: graphicsQualityRaw.value == null ? i18n.ts.auto : graphicsQualityRaw.value === GRAPHICS_QUALITY.HIGH ? 'High' : graphicsQualityRaw.value === GRAPHICS_QUALITY.MEDIUM ? 'Medium' : 'Low',
|
||||
options: [{
|
||||
label: `${i18n.ts.auto} (${graphicsQualityAutoValue.value === GRAPHICS_QUALITY.HIGH ? 'High' : graphicsQualityAutoValue.value === GRAPHICS_QUALITY.MEDIUM ? 'Medium' : 'Low'})`,
|
||||
|
|
@ -513,7 +513,7 @@ function showOtherMenu(ev: PointerEvent) {
|
|||
ref: graphicsQualityRaw,
|
||||
}, {
|
||||
type: 'radio',
|
||||
text: i18n.ts._room.frameRate,
|
||||
text: i18n.ts._miWorld.frameRate,
|
||||
caption: fpsRaw.value == null ? i18n.ts.auto : fpsRaw.value === 'max' ? 'Max' : `~${fpsRaw.value}fps`,
|
||||
options: [{
|
||||
label: `${i18n.ts.auto} (${fpsAutoValue.value}fps)`,
|
||||
|
|
@ -534,7 +534,7 @@ function showOtherMenu(ev: PointerEvent) {
|
|||
ref: fpsRaw,
|
||||
}, {
|
||||
type: 'radio',
|
||||
text: i18n.ts._room.resolution,
|
||||
text: i18n.ts._miWorld.resolution,
|
||||
caption: resolutionRaw.value == null ? i18n.ts.auto : resolutionRaw.value + 'x',
|
||||
options: [{
|
||||
label: `${i18n.ts.auto} (${resolutionAutoValue.value}x)`,
|
||||
|
|
@ -552,7 +552,7 @@ function showOtherMenu(ev: PointerEvent) {
|
|||
ref: resolutionRaw,
|
||||
}, {
|
||||
type: 'switch',
|
||||
text: i18n.ts._room.antialiasing,
|
||||
text: i18n.ts._miWorld.antialiasing,
|
||||
ref: antialias,
|
||||
}, {
|
||||
type: 'divider',
|
||||
|
|
|
|||
|
|
@ -747,6 +747,26 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||
</MkFolder>
|
||||
</SearchMarker>
|
||||
|
||||
<SearchMarker v-slot="slotProps" :keywords="['world', 'room']">
|
||||
<MkFolder :defaultOpen="slotProps.isParentOfTarget">
|
||||
<template #label><SearchLabel>World / Room</SearchLabel></template>
|
||||
<template #icon><SearchIcon><i class="ti ti-buildings"></i></SearchIcon></template>
|
||||
|
||||
<div class="_gaps_m">
|
||||
<div class="_gaps_s">
|
||||
<SearchMarker :keywords="['rendering', 'thread']">
|
||||
<MkPreferenceContainer k="world.separateRenderingThread">
|
||||
<MkSwitch v-model="worldSeparateRenderingThread">
|
||||
<template #label><SearchLabel>{{ i18n.ts._miWorld.separateRenderingThread }}</SearchLabel></template>
|
||||
<template #caption>{{ i18n.ts._miWorld.separateRenderingThread_description }}</template>
|
||||
</MkSwitch>
|
||||
</MkPreferenceContainer>
|
||||
</SearchMarker>
|
||||
</div>
|
||||
</div>
|
||||
</MkFolder>
|
||||
</SearchMarker>
|
||||
|
||||
<SearchMarker v-slot="slotProps" :keywords="['other']">
|
||||
<MkFolder :defaultOpen="slotProps.isParentOfTarget">
|
||||
<template #label><SearchLabel>{{ i18n.ts.other }}</SearchLabel></template>
|
||||
|
|
@ -957,6 +977,7 @@ const useNativeUiForVideoAudioPlayer = prefer.model('useNativeUiForVideoAudioPla
|
|||
const contextMenu = prefer.model('contextMenu');
|
||||
const menuStyle = prefer.model('menuStyle');
|
||||
const makeEveryTextElementsSelectable = prefer.model('makeEveryTextElementsSelectable');
|
||||
const worldSeparateRenderingThread = prefer.model('world.separateRenderingThread');
|
||||
|
||||
const fontSize = ref(miLocalStorage.getItem('fontSize') as '1' | '2' | '3' | null);
|
||||
const useSystemFont = ref(miLocalStorage.getItem('useSystemFont') != null);
|
||||
|
|
@ -1016,6 +1037,7 @@ watch([
|
|||
showAvailableReactionsFirstInNote,
|
||||
animatedMfm,
|
||||
advancedMfm,
|
||||
worldSeparateRenderingThread,
|
||||
], () => {
|
||||
suggestReload();
|
||||
});
|
||||
|
|
|
|||
|
|
@ -545,6 +545,9 @@ export const PREF_DEF = definePreferences({
|
|||
'world.antialias': {
|
||||
default: true,
|
||||
},
|
||||
'world.separateRenderingThread': {
|
||||
default: true,
|
||||
},
|
||||
|
||||
'experimental.stackingRouterView': {
|
||||
default: false,
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ export abstract class EngineControllerBase<T extends RoomEngineBase> {
|
|||
os.alert({
|
||||
type: 'error',
|
||||
title: i18n.ts.somethingHappened,
|
||||
text: i18n.ts._room.crushed_description,
|
||||
text: i18n.ts._miWorld.crushed_description,
|
||||
});
|
||||
});
|
||||
await babylonEngine.initAsync();
|
||||
|
|
|
|||
|
|
@ -13278,7 +13278,41 @@ export interface Locale extends ILocale {
|
|||
*/
|
||||
"mfm": string;
|
||||
};
|
||||
"_room": {
|
||||
"_miWorld": {
|
||||
/**
|
||||
* 描画を別スレッドに分離
|
||||
*/
|
||||
"separateRenderingThread": string;
|
||||
/**
|
||||
* 有効にするとパフォーマンスが向上します。不安定になる場合は無効すると改善する可能性があります。
|
||||
*/
|
||||
"separateRenderingThread_description": string;
|
||||
/**
|
||||
* グラフィックの品質
|
||||
*/
|
||||
"graphicsQuality": string;
|
||||
/**
|
||||
* フレームレート
|
||||
*/
|
||||
"frameRate": string;
|
||||
/**
|
||||
* 解像度
|
||||
*/
|
||||
"resolution": string;
|
||||
/**
|
||||
* 初期化に失敗しました
|
||||
*/
|
||||
"failedToInitialize": string;
|
||||
/**
|
||||
* バグ、またはデバイスのリソース不足の可能性が考えられます。
|
||||
*/
|
||||
"crushed_description": string;
|
||||
/**
|
||||
* アンチエイリアス
|
||||
*/
|
||||
"antialiasing": string;
|
||||
};
|
||||
"_miRoom": {
|
||||
/**
|
||||
* グリッドにスナップ
|
||||
*/
|
||||
|
|
@ -13295,18 +13329,6 @@ export interface Locale extends ILocale {
|
|||
* 全ての変更を取り消し、部屋を最後に保存した状態まで戻しますか?
|
||||
*/
|
||||
"revertAllChangesConfirmation": string;
|
||||
/**
|
||||
* グラフィックの品質
|
||||
*/
|
||||
"graphicsQuality": string;
|
||||
/**
|
||||
* フレームレート
|
||||
*/
|
||||
"frameRate": string;
|
||||
/**
|
||||
* 解像度
|
||||
*/
|
||||
"resolution": string;
|
||||
/**
|
||||
* お使いのデバイスはMisskeyRoomをサポートしていません。
|
||||
*/
|
||||
|
|
@ -13315,17 +13337,5 @@ export interface Locale extends ILocale {
|
|||
* MisskeyRoomを動作させるには、WebGPUをサポートするデバイスが必要です。
|
||||
*/
|
||||
"yourDeviceNotSupported_description": string;
|
||||
/**
|
||||
* 初期化に失敗しました
|
||||
*/
|
||||
"failedToInitialize": string;
|
||||
/**
|
||||
* バグ、またはデバイスのリソース不足の可能性が考えられます。
|
||||
*/
|
||||
"crushed_description": string;
|
||||
/**
|
||||
* アンチエイリアス
|
||||
*/
|
||||
"antialiasing": string;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue