Skip to content

Commit

Permalink
#154 displayパッケージの移植(WIP)
Browse files Browse the repository at this point in the history
  • Loading branch information
ienaga committed Aug 2, 2024
1 parent 72ac6ea commit fbacb7a
Show file tree
Hide file tree
Showing 77 changed files with 10,572 additions and 4,971 deletions.
17 changes: 0 additions & 17 deletions @types/window.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,25 +6,8 @@ declare global {
// eslint-disable-next-line no-unused-vars
const next2d: Next2D;

// eslint-disable-next-line no-unused-vars
interface Location {
search: string;
origin: string;
}

// eslint-disable-next-line no-unused-vars
interface Window {
performance: Performance;
navigator: Navigator;
setTimeout: setTimeout;
Map: Map;
Number: Number;
Array: Array;
document: Document;
location: Location;
isNaN: isNaN;
Math: Math;
Event: Event;
next2d?: Next2D;
}

Expand Down
44 changes: 35 additions & 9 deletions packages/core/src/CoreUtil.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
// @ts-ignore
import RendererWorker from "@next2d/renderer?worker&inline";

/**
* @type {Worker}
* @public
*/
export const $rendererWorker: Worker = new RendererWorker();

/**
* @type {number}
* @const
Expand All @@ -22,15 +31,6 @@ export const $PREFIX: string = "__next2d__";
*/
export const $devicePixelRatio: number = window.devicePixelRatio;

// @ts-ignore
import RendererWorker from "@next2d/renderer?worker&inline";

/**
* @type {Worker}
* @public
*/
export const $rendererWorker: Worker = new RendererWorker();

/**
* @param {number} value
* @param {number} min
Expand All @@ -54,3 +54,29 @@ export const $clamp = (
: Math.min(Math.max(min, isNaN(number) ? 0 : number), max);
};

/**
* @type {number}
* @public
*/
export let $stageWidth: number = 0;

/**
* @type {number}
* @public
*/
export let $stageHeight: number = 0;

/**
* @description ステージサイズを設定
* Set stage size
*
* @param {number} width
* @return {void}
* @method
* @public
*/
export const $setStageSize = (width: number, height: number): void =>
{
$stageWidth = width;
$stageHeight = height;
};
12 changes: 4 additions & 8 deletions packages/core/src/Display.ts
Original file line number Diff line number Diff line change
@@ -1,33 +1,29 @@
import type { DisplayImpl } from "./interface/DisplayImpl";
import {
DisplayObject,
InteractiveObject,
DisplayObjectContainer,
Sprite,
MovieClip,
BitmapData,
BlendMode,
DisplayObject,
FrameLabel,
Graphics,
InteractiveObject,
Loader,
LoaderInfo,
Shape,
Stage,
TextField
} from "@next2d/display";

const display: DisplayImpl = {
DisplayObject,
InteractiveObject,
DisplayObjectContainer,
Sprite,
MovieClip,
BitmapData,
BlendMode,
DisplayObject,
FrameLabel,
Graphics,
InteractiveObject,
Loader,
LoaderInfo,
Shape,
Stage,
TextField
Expand Down
4 changes: 1 addition & 3 deletions packages/core/src/Next2D/CreateRootMovieClip.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,7 @@ export const execute = async (
$player.height = height | 0;
$player.frameRate = fps | 0;

$player
.setOptions(options)
.boot();
$player.boot(options);

const root: Sprite = $stage.addChild(new Sprite());

Expand Down
123 changes: 65 additions & 58 deletions packages/core/src/Next2D/LoadService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,10 @@ import type { PlayerOptionsImpl } from "../interface/PlayerOptionsImpl";
import type { StageDataImpl } from "../interface/StageDataImpl";
import { $player } from "../Player";
import { $clamp } from "../CoreUtil";
import {
Event,
IOErrorEvent
} from "@next2d/events";
import { URLRequest } from "@next2d/net";
import { IOErrorEvent } from "@next2d/events";
import {
Loader,
LoaderInfo,
$stage
} from "@next2d/display";

Expand All @@ -22,76 +19,86 @@ import {
* @method
* @protected
*/
export const execute = (url: string, options: PlayerOptionsImpl): Promise<void> =>
export const execute = async (url: string, options: PlayerOptionsImpl): Promise<void> =>
{
return new Promise((resolve: Function) =>
{
if (url === "develop") {
const path: string = location
.search
.slice(1)
.split("&")[0];

if (!path) {
return ;
}
url = `${location.origin}/${path}`;
}
if (url === "develop") {
const path: string = location
.search
.slice(1)
.split("&")[0];

if (!url) {
if (!path) {
return ;
}
url = `${location.origin}/${path}`;
}

if (url.charAt(1) === "/") {
url = url.slice(1);
}
if (!url) {
return ;
}

$player
.setOptions(options)
.boot();
if (url.charAt(1) === "/") {
url = url.slice(1);
}

const loader: Loader = new Loader();
$player.boot(options);

loader
.contentLoaderInfo
.addEventListener(IOErrorEvent.IO_ERROR, (event: IOErrorEvent): void =>
{
alert("Error: " + event.text);
resolve();
});
const loader: Loader = new Loader();

loader
.contentLoaderInfo
.addEventListener(Event.COMPLETE, (event: Event): void =>
{
const loaderInfo: LoaderInfo = event.target as NonNullable<LoaderInfo>;
const loaderInfo = loader.contentLoaderInfo;
loaderInfo.addEventListener(IOErrorEvent.IO_ERROR, (event: IOErrorEvent): void =>
{
alert("Error: " + event.text);
});

if (event.listener) {
loaderInfo
.removeEventListener(Event.COMPLETE, event.listener);
}
// loader
// .contentLoaderInfo
// .addEventListener(Event.COMPLETE, (event: Event): void =>
// {
// const loaderInfo: LoaderInfo = event.target as NonNullable<LoaderInfo>;

if (loaderInfo._$data) {
// if (event.listener) {
// loaderInfo
// .removeEventListener(Event.COMPLETE, event.listener);
// }

const stage: StageDataImpl = loaderInfo._$data.stage;
// if (loaderInfo._$data) {

$player.bgColor = stage.bgColor;
// $player._$setBackgroundColor(stage.bgColor);
// const stage: StageDataImpl = loaderInfo._$data.stage;

$stage.addChild(loaderInfo.content);
// $player.bgColor = stage.bgColor;
// // $player._$setBackgroundColor(stage.bgColor);

$player.width = stage.width;
$player.height = stage.height;
// $stage.addChild(loaderInfo.content);

// set fps fixed logic
$player.frameRate = $clamp(+stage.fps, 1, 60, 60);
}
// $player.width = stage.width;
// $player.height = stage.height;

// $player._$resize();
// // set fps fixed logic
// $player.frameRate = $clamp(+stage.fps, 1, 60, 60);
// }

resolve();
});
// // $player._$resize();

// loader.load(new URLRequest(url));
});
// resolve();
// });

await loader.load(new URLRequest(url));

if (!loaderInfo.data) {
return ;
}

const stage: StageDataImpl = loaderInfo.data.stage;

$player.bgColor = stage.bgColor;
// $player._$setBackgroundColor(stage.bgColor);

$stage.addChild(loaderInfo.content);

$player.rendererWidth = stage.width;
$player.rendererHeight = stage.height;

// set fps fixed logic
$player.frameRate = $clamp(stage.fps, 1, 60, 60);
};
Loading

0 comments on commit fbacb7a

Please sign in to comment.