42 lines
1.1 KiB
TypeScript
42 lines
1.1 KiB
TypeScript
export interface IScreenInfo {
|
|
screen_width: number;
|
|
screen_height: number;
|
|
unit_width: number;
|
|
unit_height: number;
|
|
screen_rows: number;
|
|
screen_cols: number;
|
|
desktop_col: number;
|
|
desktop_row: number;
|
|
desktop_width: number;
|
|
desktop_height: number;
|
|
}
|
|
|
|
export class SpecialVideoHelper {
|
|
private static kScreenWidth = 3840;
|
|
private static kScreenHeight = 2160;
|
|
|
|
public static getScreenInfo(
|
|
wall_cols: number,
|
|
wall_rows: number
|
|
): IScreenInfo {
|
|
const desktp_row = Math.ceil(Math.sqrt(wall_rows * wall_cols));
|
|
const desktop_col = desktp_row;
|
|
const unit_width = SpecialVideoHelper.kScreenWidth / desktop_col;
|
|
const unit_height = SpecialVideoHelper.kScreenHeight / desktp_row;
|
|
const screen_width = wall_cols * unit_width;
|
|
const screen_height = wall_rows * unit_height;
|
|
return {
|
|
screen_width,
|
|
screen_height,
|
|
unit_width,
|
|
unit_height,
|
|
screen_rows: wall_rows,
|
|
screen_cols: wall_cols,
|
|
desktop_col,
|
|
desktop_row: desktop_col,
|
|
desktop_width: SpecialVideoHelper.kScreenWidth,
|
|
desktop_height: SpecialVideoHelper.kScreenHeight,
|
|
};
|
|
}
|
|
}
|