LNXSDK/Kha/Tools/khamake/out/Exporters/PlayStationMobileExporter.js
2025-01-22 16:18:30 +01:00

146 lines
8.2 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PlayStationMobileExporter = void 0;
const fs = require("fs-extra");
const path = require("path");
const CSharpExporter_1 = require("./CSharpExporter");
const ImageTool_1 = require("../ImageTool");
const uuid = require('uuid');
class PlayStationMobileExporter extends CSharpExporter_1.CSharpExporter {
constructor(options) {
super(options);
this.files = [];
}
backend() {
return 'PSM';
}
exportSLN(projectUuid) {
fs.ensureDirSync(path.join(this.options.to, this.sysdir() + '-build'));
this.writeFile(path.join(this.options.to, this.sysdir() + '-build', 'Project.sln'));
const solutionUuid = uuid.v4();
this.p('Microsoft Visual Studio Solution File, Format Version 11.00');
this.p('# Visual Studio 2010');
this.p('Project("{' + solutionUuid.toString().toUpperCase() + '}") = "HaxeProject", "Project.csproj", "{' + projectUuid.toString().toUpperCase() + '}"');
this.p('EndProject');
this.p('Global');
this.p('GlobalSection(SolutionConfigurationPlatforms) = preSolution', 1);
this.p('Debug|Any CPU = Debug|Any CPU', 2);
this.p('Release|Any CPU = Release|Any CPU', 2);
this.p('EndGlobalSection', 1);
this.p('GlobalSection(ProjectConfigurationPlatforms) = postSolution', 1);
this.p('{" + projectUuid.toString().toUpperCase() + "}.Debug|Any CPU.ActiveCfg = Debug|Any CPU', 2);
this.p('{" + projectUuid.toString().toUpperCase() + "}.Debug|Any CPU.Build.0 = Debug|Any CPU', 2);
this.p('{" + projectUuid.toString().toUpperCase() + "}.Release|Any CPU.ActiveCfg = Release|Any CPU', 2);
this.p('{" + projectUuid.toString().toUpperCase() + "}.Release|Any CPU.Build.0 = Release|Any CPU', 2);
this.p('EndGlobalSection', 1);
this.p('GlobalSection(MonoDevelopProperties) = preSolution', 1);
this.p('StartupItem = Project.csproj', 2);
this.p('EndGlobalSection', 1);
this.p('EndGlobal');
this.closeFile();
}
exportResources() {
this.createDirectory(path.join(this.options.to, this.sysdir() + '-build', 'shaders'));
fs.writeFileSync(path.join(this.options.to, this.sysdir() + '-build', 'shaders', 'Simple.fcg'), 'void main(float4 out Color : COLOR, uniform float4 MaterialColor) {\n'
+ '\tColor = MaterialColor;\n'
+ '}\n');
fs.writeFileSync(path.join(this.options.to, this.sysdir() + '-build', 'shaders', 'Simple.vcg'), 'void main(float4 in a_Position : POSITION, float4 out v_Position : POSITION, uniform float4x4 WorldViewProj) {\n'
+ '\tv_Position = mul(a_Position, WorldViewProj);\n'
+ '}\n');
fs.writeFileSync(path.join(this.options.to, this.sysdir() + '-build', 'shaders', 'Texture.fcg'), 'void main(float2 in v_TexCoord : TEXCOORD0, float4 out Color : COLOR, uniform sampler2D Texture0 : TEXUNIT0) {\n'
+ '\tColor = tex2D(Texture0, v_TexCoord);\n'
+ '}\n');
fs.writeFileSync(path.join(this.options.to, this.sysdir() + '-build', 'shaders', 'Texture.vcg'), 'void main(float4 in a_Position : POSITION, float2 in a_TexCoord : TEXCOORD0, float4 out v_Position : POSITION, float2 out v_TexCoord : TEXCOORD0, uniform float4x4 WorldViewProj) {\n'
+ '\tv_Position = mul(a_Position, WorldViewProj);\n'
+ '\tv_TexCoord = a_TexCoord;\n'
+ '}\n');
let appxml = path.join(this.options.to, this.sysdir() + '-build', 'app.xml');
if (!fs.existsSync(appxml)) {
let appxmltext = fs.readFileSync(path.join(__dirname, 'Data', 'psm', 'app.xml'), { encoding: 'utf8' });
fs.writeFileSync(appxml.toString(), appxmltext);
}
}
exportCsProj(projectUuid) {
this.writeFile(path.join(this.options.to, this.sysdir() + '-build', 'Project.csproj'));
this.p('<?xml version="1.0" encoding="utf-8"?>');
this.p('<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">');
this.p('<PropertyGroup>', 1);
this.p('<Configuration Condition=" \'$(Configuration)\' == \'\' ">Debug</Configuration>', 2);
this.p('<Platform Condition=" \'$(Platform)\' == \'\' ">AnyCPU</Platform>', 2);
this.p('<ProductVersion>10.0.0</ProductVersion>', 2);
this.p('<SchemaVersion>2.0</SchemaVersion>', 2);
this.p('<ProjectGuid>{' + projectUuid.toString().toUpperCase() + '}</ProjectGuid>', 2);
this.p('<ProjectTypeGuids>{69878862-DA7D-4DC6-B0A1-50D8FAB4242F};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>', 2);
this.p('<OutputType>Exe</OutputType>', 2);
this.p('<RootNamespace>PSTest</RootNamespace>', 2);
this.p('<AssemblyName>PSTest</AssemblyName>', 2);
this.p('</PropertyGroup>', 1);
this.p('<PropertyGroup Condition=" \'$(Configuration)|$(Platform)\' == \'Debug|AnyCPU\' ">', 1);
this.p('<DebugSymbols>true</DebugSymbols>', 2);
this.p('<DebugType>full</DebugType>', 2);
this.p('<Optimize>false</Optimize>', 2);
this.p('<OutputPath>bin\\Debug</OutputPath>', 2);
this.p('<DefineConstants>DEBUG;</DefineConstants>', 2);
this.p('<ErrorReport>prompt</ErrorReport>', 2);
this.p('<WarningLevel>4</WarningLevel>', 2);
this.p('<ConsolePause>false</ConsolePause>', 2);
this.p('</PropertyGroup>', 1);
this.p('<PropertyGroup Condition=" \'$(Configuration)|$(Platform)\' == \'Release|AnyCPU\' ">', 1);
this.p('<DebugType>none</DebugType>', 2);
this.p('<Optimize>true</Optimize>', 2);
this.p('<OutputPath>bin\\Release</OutputPath>', 2);
this.p('<ErrorReport>prompt</ErrorReport>', 2);
this.p('<WarningLevel>4</WarningLevel>', 2);
this.p('<ConsolePause>false</ConsolePause>', 2);
this.p('</PropertyGroup>', 1);
this.p('<ItemGroup>', 1);
this.p('<Reference Include="System" />', 2);
this.p('<Reference Include="System.Xml" />', 2);
this.p('<Reference Include="System.Core" />', 2);
this.p('<Reference Include="Sce.PlayStation.Core" />', 2);
this.p('</ItemGroup>', 1);
this.p('<ItemGroup>', 1);
this.includeFiles(path.join(this.options.to, this.sysdir() + '-build', 'Sources', 'src'), path.join(this.options.to, this.sysdir() + '-build'));
this.p('</ItemGroup>', 1);
this.p('<ItemGroup>', 1);
this.p('<ShaderProgram Include="shaders\\Simple.fcg" />', 2);
this.p('<ShaderProgram Include="shaders\\Simple.vcg" />', 2);
this.p('<ShaderProgram Include="shaders\\Texture.fcg" />', 2);
this.p('<ShaderProgram Include="shaders\\Texture.vcg" />', 2);
this.p('</ItemGroup>', 1);
this.p('<ItemGroup>', 1);
this.p('<Folder Include="resources\\" />', 2);
this.p('</ItemGroup>', 1);
this.p('<ItemGroup>', 1);
for (let file of this.files) {
this.p('<Content Include="..\\' + this.sysdir() + '\\' + file.toString() + '">', 2);
this.p('<Link>resources\\' + file.toString() + '</Link>', 3);
this.p('</Content>', 2);
}
this.p('</ItemGroup>', 1);
this.p('<Import Project="$(MSBuildExtensionsPath)\\Sce\\Sce.Psm.CSharp.targets" />', 1);
this.p('</Project>');
this.closeFile();
}
/*copyMusic(platform, from, to, encoders, callback) {
callback();
}*/
async copySound(platform, from, to) {
return { files: [''], sizes: [1] };
}
async copyImage(platform, from, to, asset, cache) {
this.files.push(asset['file']);
let format = await (0, ImageTool_1.exportImage)(this.options.kha, this.options.kraffiti, from, path.join(this.options.to, this.sysdir(), to), asset, undefined, false, false, cache);
return { files: [to + '.' + format], sizes: [1] };
}
async copyBlob(platform, from, to) {
fs.copySync(from.toString(), path.join(this.options.to, this.sysdir(), to), { overwrite: true });
this.files.push(to);
return { files: [to], sizes: [1] };
}
async copyVideo(platform, from, to) {
return { files: [''], sizes: [1] };
}
}
exports.PlayStationMobileExporter = PlayStationMobileExporter;
//# sourceMappingURL=PlayStationMobileExporter.js.map