Browse Source

webgl upgrade

JimMarlowe 9 years ago
parent
commit
e4b8ba21a8

BIN
Data/AtomicEditor/Deployment/Web/Atomic_Logo_Header-i.png


BIN
Data/AtomicEditor/Deployment/Web/Atomic_Logo_Header-w.png


BIN
Data/AtomicEditor/Deployment/Web/atomic-gradient.jpg


BIN
Data/AtomicEditor/Deployment/Web/fav_atomic.ico


BIN
Data/AtomicEditor/Deployment/Web/fireworks.jpg


+ 29 - 0
Data/AtomicEditor/Deployment/Web/index-dark.html

@@ -0,0 +1,29 @@
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>Atomic Game Engine Web Player</title>
+<link rel='shortcut icon' href='favicon.ico' type='image/x-icon'/ >
+<style type="text/css">
+body {
+	background-color: #3b3b3b;
+}
+</style>
+</head>
+
+<body>
+<a href="http://atomicgameengine.com/"><img src="Atomic_Logo_Header-i.png"></a>
+<center>
+<iframe id="playerframe" src="AtomicPlayer.html" width="800" height="512", marginwidth="0", marginheight="0", frameborder="0", scrolling="no"></iframe>
+</center>
+<h4 style="color:tan;">Notes:</h4>
+<p style="color:tan;">* Run on <b>Firefox</b> for best results.</p>
+<p style="color:tan;">* Powered by the <a href="http://atomicgameengine.com/">Atomic Game Engine</a></p>
+</body>
+
+<script>
+function focus()
+{
+    var iframe = document.getElementById('playerframe');
+    iframe.contentWindow.focus();
+}
+window.setInterval(focus, 100);
+</script>

+ 31 - 0
Data/AtomicEditor/Deployment/Web/index-image.html

@@ -0,0 +1,31 @@
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>Atomic Game Engine Web Player</title>
+<link rel='shortcut icon' href='favicon.ico' type='image/x-icon'/ >
+<style type="text/css">
+body {
+  background-image: url("background.jpg");
+  background-size: cover;
+}
+</style>
+</head>
+
+<body>
+<a href="http://atomicgameengine.com/"><img src="Atomic_Logo_Header-i.png"></a>
+<center>
+<iframe id="playerframe" src="AtomicPlayer.html" width="800", height="512", marginwidth="0", marginheight="0", frameborder="0", scrolling="no"></iframe>
+</center>
+
+<h4 style="color:white;">Notes:</h4>
+<p style="color:white;">* Run on <b>Firefox</b> for best results.</p>
+<p style="color:white;">* Powered by the <a href="http://atomicgameengine.com/">Atomic Game Engine</a></p>
+</body>
+
+<script>
+function focus()
+{
+    var iframe = document.getElementById('playerframe');
+    iframe.contentWindow.focus();
+}
+window.setInterval(focus, 100);
+</script>

+ 29 - 0
Data/AtomicEditor/Deployment/Web/index-light.html

@@ -0,0 +1,29 @@
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>Atomic Game Engine Web Player</title>
+<link rel='shortcut icon' href='favicon.ico' type='image/x-icon'/ >
+<style type="text/css">
+body {
+	background-color: #d6d6d6;
+}
+</style>
+</head>
+
+<body>
+<a href="http://atomicgameengine.com/"><img src="Atomic_Logo_Header-w.png"></a>
+<center>
+<iframe id="playerframe" src="AtomicPlayer.html" width="800" height="512", marginwidth="0", marginheight="0", frameborder="0", scrolling="no"></iframe>
+</center>
+<h4 style="color:black;">Notes:</h4>
+<p style="color:black;">* Run on <b>Firefox</b> for best results.</p>
+<p style="color:black;">* Powered by the <a href="http://atomicgameengine.com/">Atomic Game Engine</a></p>
+</body>
+
+<script>
+function focus()
+{
+    var iframe = document.getElementById('playerframe');
+    iframe.contentWindow.focus();
+}
+window.setInterval(focus, 100);
+</script>

BIN
Data/AtomicEditor/Deployment/Web/ny-lake.jpg


+ 0 - 5
Resources/EditorData/AtomicEditor/editor/ui/buildsettings_android.tb.txt

@@ -16,11 +16,6 @@ TBLayout: axis: y, distribution: gravity, position: left
 		TBLayout: gravity: left right, distribution-position: right bottom
 			TBEditField: id: company_name, autofocus: 1
 				lp: min-width: 220
-	TBLayout: distribution: gravity
-		TBTextField: text: "Product Name:"
-		TBLayout: gravity: left right, distribution-position: right bottom
-			TBEditField: id: product_name, autofocus: 1
-				lp: min-width: 220
 	TBLayout: axis: y, position: left, distribution: gravity
 		TBLayout: gravity: left right, distribution-position: right bottom
 			TBButton: id: choose_icon, lp: min-width: 48, min-height: 48, max-width: 48, max-height: 48

+ 30 - 17
Resources/EditorData/AtomicEditor/editor/ui/buildsettings_html5.tb.txt

@@ -5,25 +5,38 @@ TBLayout: axis: y, distribution: gravity, position: left
 		TBLayout: gravity: left right, distribution-position: right bottom
 			TBEditField: id: app_name, autofocus: 1
 				lp: min-width: 220
+	TBSeparator: gravity: left right, skin: AESeparator
 	TBLayout: distribution: gravity
-		TBTextField: text: "App Identifier:"
+		TBTextField: text: "Game Width:"
 		TBLayout: gravity: left right, distribution-position: right bottom
-			TBEditField: id: app_identifier, autofocus: 0
-				lp: min-width: 220
+			TBEditField: id: web_game_width, autofocus: 0, text: 800
+				lp: min-width: 200
+				tooltip width of the game frame in pixels
 	TBLayout: distribution: gravity
-		TBTextField: text: "Company Name:"
+		TBTextField: text: "Game Height:"
 		TBLayout: gravity: left right, distribution-position: right bottom
-			TBEditField: id: company_name, autofocus: 0
-				lp: min-width: 220
-	TBLayout: distribution: gravity
-		TBTextField: text: "Product Name:"
+			TBEditField: id: web_game_height, autofocus: 0, text: 512
+				lp: min-width: 200
+				tooltip height of the game frame in pixels
+	TBLayout: axis: y, position: left, distribution: gravity
+		TBTextField: text: "Fav Icon:", id: favicon_text, skin: DarkGrayText
 		TBLayout: gravity: left right, distribution-position: right bottom
-			TBEditField: id: product_name, autofocus: 0
-				lp: min-width: 220
-	TBSeparator: gravity: left right, skin: AESeparator
-	TBTextField: text: "Icon:"
-	TBLayout: gravity: left right, distribution-position: right bottom
-		TBSkinImage: skin: LogoAtomic64
-	TBTextField: text: "Splash Screen:"
-	TBLayout: gravity: left right, distribution-position: right bottom
-		TBSkinImage: skin: LogoAtomic64
+			TBEditField: id: favicon_name, autofocus: 0
+				lp: min-width: 250
+			TBButton: text: "Choose", id: favicon_choose
+				tooltip Path to favicon.ico
+	TBTextField: text: "Web Page Theme:"
+	TBLayout: axis: y,  position: left
+		TBClickLabel: text: Editor Dark 
+			TBRadioButton: group-id: webtheme, id: web_dark, value: 1
+		TBClickLabel: text: Editor Light
+			TBRadioButton: group-id: webtheme, id: web_light
+		TBClickLabel: text: Atomic Gradient
+			TBRadioButton: group-id: webtheme, id: web_atomic
+		TBClickLabel: text: New York Lake
+			TBRadioButton: group-id: webtheme, id: web_lake
+		TBClickLabel: text: Fireworks
+			TBRadioButton: group-id: webtheme, id: web_fireworks
+		TBClickLabel: text: Retro
+			TBRadioButton: group-id: webtheme, id: web_retro
+

+ 0 - 3
Resources/EditorData/AtomicEditor/editor/ui/buildsettings_ios.tb.txt

@@ -36,6 +36,3 @@ TBLayout: axis: y, distribution: gravity, position: left
 	TBTextField: text: "Icon:"
 	TBLayout: gravity: left right, distribution-position: right bottom
 		TBSkinImage: skin: LogoAtomic64
-	TBTextField: text: "Splash Screen:"
-	TBLayout: gravity: left right, distribution-position: right bottom
-		TBSkinImage: skin: LogoAtomic64

+ 0 - 3
Resources/EditorData/AtomicEditor/editor/ui/buildsettings_mac.tb.txt

@@ -24,6 +24,3 @@ TBLayout: axis: y, distribution: gravity, position: left
 	TBTextField: text: "Icon:"
 	TBLayout: gravity: left right, distribution-position: right bottom
 		TBSkinImage: skin: LogoAtomic64
-	TBTextField: text: "Splash Screen:"
-	TBLayout: gravity: left right, distribution-position: right bottom
-		TBSkinImage: skin: LogoAtomic64

+ 0 - 3
Resources/EditorData/AtomicEditor/editor/ui/buildsettings_windows.tb.txt

@@ -24,6 +24,3 @@ TBLayout: axis: y, distribution: gravity, position: left
 	TBTextField: text: "Icon:"
 	TBLayout: gravity: left right, distribution-position: right bottom
 		TBSkinImage: skin: LogoAtomic64
-	TBTextField: text: "Splash Screen:"
-	TBLayout: gravity: left right, distribution-position: right bottom
-		TBSkinImage: skin: LogoAtomic64

+ 0 - 4
Script/AtomicEditor/ui/modal/build/platforms/AndroidSettingsWidget.ts

@@ -36,7 +36,6 @@ class AndroidSettingsWidget extends Atomic.UIWidget implements BuildSettingsWind
         this.sdkTargetSelect = <Atomic.UISelectDropdown>this.getWidget("sdk_target_select");
         this.appNameEdit = <Atomic.UIEditField>this.getWidget("app_name");
         this.packageNameEdit = <Atomic.UIEditField>this.getWidget("app_package");
-        this.productNameEdit = <Atomic.UIEditField>this.getWidget("product_name");
         this.companyNameEdit = <Atomic.UIEditField>this.getWidget("company_name");
 
 
@@ -190,7 +189,6 @@ class AndroidSettingsWidget extends Atomic.UIWidget implements BuildSettingsWind
 
         this.appNameEdit.text = this.settings.appName;
         this.packageNameEdit.text = this.settings.packageName;
-        this.productNameEdit.text = this.settings.productName;
         this.companyNameEdit.text = this.settings.companyName;
         this.iconNameEdit.text = this.settings.iconPath;
 
@@ -203,7 +201,6 @@ class AndroidSettingsWidget extends Atomic.UIWidget implements BuildSettingsWind
 
         this.settings.appName = this.appNameEdit.text;
         this.settings.packageName = this.packageNameEdit.text;
-        this.settings.productName = this.productNameEdit.text;
         this.settings.companyName = this.companyNameEdit.text;
         this.settings.sDKVersion = this.sdkTargetSelect.text;
         this.settings.iconPath = this.iconNameEdit.text;
@@ -229,7 +226,6 @@ class AndroidSettingsWidget extends Atomic.UIWidget implements BuildSettingsWind
 
     appNameEdit: Atomic.UIEditField;
     packageNameEdit: Atomic.UIEditField;
-    productNameEdit: Atomic.UIEditField;
     companyNameEdit: Atomic.UIEditField;
 
     releaseNameEdit : Atomic.UIEditField;

+ 79 - 14
Script/AtomicEditor/ui/modal/build/platforms/WebSettingsWidget.ts

@@ -33,39 +33,104 @@ class WebSettingsWidget extends Atomic.UIWidget implements BuildSettingsWindow.B
       this.load("AtomicEditor/editor/ui/buildsettings_html5.tb.txt");
 
       this.appNameEdit = <Atomic.UIEditField>this.getWidget("app_name");
-      this.packageNameEdit = <Atomic.UIEditField>this.getWidget("app_identifier");
-      this.productNameEdit = <Atomic.UIEditField>this.getWidget("product_name");
-      this.companyNameEdit = <Atomic.UIEditField>this.getWidget("company_name");
+      this.radioDark = <Atomic.UICheckBox>this.getWidget("web_dark");
+      this.radioLight = <Atomic.UICheckBox>this.getWidget("web_light");
+      this.radioAtomic = <Atomic.UICheckBox>this.getWidget("web_atomic");
+      this.radioLake = <Atomic.UICheckBox>this.getWidget("web_lake");
+      this.radioFireworks = <Atomic.UICheckBox>this.getWidget("web_fireworks");
+      this.radioRetro = <Atomic.UICheckBox>this.getWidget("web_retro");
+      this.faviconName = <Atomic.UIEditField>this.getWidget("favicon_name");
+      this.gameWidth = <Atomic.UIEditField>this.getWidget("web_game_width");
+      this.gameHeight = <Atomic.UIEditField>this.getWidget("web_game_height");
 
       this.refreshWidgets();
 
+      this.subscribeToEvent(this, "WidgetEvent", (ev) => this.handleWidgetEvent(ev));
     }
 
+    handleWidgetEvent(ev: Atomic.UIWidgetEvent): boolean {
+
+        if (ev.target.id == "favicon_choose") {
+            var fileUtils = new Editor.FileUtils();
+            var path = fileUtils.findFile("", "");
+            if ( path.length > 0 )
+                this.faviconName.text = path;
+            return true;
+        } 
+
+        if (ev.type == Atomic.UI_EVENT_TYPE_CLICK) {
+
+            if (ev.target.id == "web_dark") {
+                this.settings.pageTheme = 0;
+            }
+            if (ev.target.id == "web_light") {
+                this.settings.pageTheme = 1;
+            }
+            if (ev.target.id == "web_atomic") {
+                this.settings.pageTheme = 2;
+            }
+            if (ev.target.id == "web_lake") {
+                this.settings.pageTheme = 3;
+            }
+            if (ev.target.id == "web_fireworks") {
+                this.settings.pageTheme = 4;
+            }
+            if (ev.target.id == "web_retro") {
+                this.settings.pageTheme = 5;
+            }
+            return true;
+        }
+         return false;
+   }
+
     refreshWidgets() {
 
         this.appNameEdit.text = this.settings.appName;
-        this.packageNameEdit.text = this.settings.packageName;
-        this.productNameEdit.text = this.settings.productName;
-        this.companyNameEdit.text = this.settings.companyName;
+        this.faviconName.text = this.settings.faviconName;
+        this.gameWidth.text = this.settings.gameWidth;
+        this.gameHeight.text = this.settings.gameHeight;
+        if ( this.settings.pageTheme == 0 ) this.radioDark.value = 1;
+            else this.radioDark.value = 0;
+        if ( this.settings.pageTheme == 1 ) this.radioLight.value = 1;
+            else this.radioLight.value = 0;
+        if ( this.settings.pageTheme == 2 ) this.radioAtomic.value = 1;
+            else this.radioAtomic.value = 0;
+        if ( this.settings.pageTheme == 3 ) this.radioLake.value = 1;
+            else this.radioLake.value = 0;
+        if ( this.settings.pageTheme == 4 ) this.radioFireworks.value = 1;
+            else this.radioFireworks.value = 0;
+        if ( this.settings.pageTheme == 5 ) this.radioRetro.value = 1;
+            else this.radioRetro.value = 0;
     }
 
     storeValues() {
 
         this.settings.appName = this.appNameEdit.text;
-        this.settings.packageName = this.packageNameEdit.text;
-        this.settings.productName = this.productNameEdit.text;
-        this.settings.companyName = this.companyNameEdit.text;
-
+        this.settings.faviconName = this.faviconName.text;
+        this.settings.gameWidth = this.gameWidth.text;
+        this.settings.gameHeight = this.gameHeight.text;
+        if ( this.radioDark.value  == 1 ) this.settings.pageTheme = 0;
+        if ( this.radioLight.value == 1 ) this.settings.pageTheme = 1;
+        if ( this.radioAtomic.value == 1 ) this.settings.pageTheme = 2;
+        if ( this.radioLake.value == 1 ) this.settings.pageTheme = 3;
+        if ( this.radioFireworks.value == 1 ) this.settings.pageTheme = 4;
+        if ( this.radioRetro.value == 1 ) this.settings.pageTheme = 5;
     }
 
     appNameEdit: Atomic.UIEditField;
-    packageNameEdit: Atomic.UIEditField;
-    productNameEdit: Atomic.UIEditField;
-    companyNameEdit: Atomic.UIEditField;
+    radioRetro: Atomic.UICheckBox;
+    radioDark: Atomic.UICheckBox;
+    radioLight: Atomic.UICheckBox;
+    radioAtomic: Atomic.UICheckBox;
+    radioLake: Atomic.UICheckBox;
+    radioFireworks: Atomic.UICheckBox;
+    faviconChoose: Atomic.UIButton;
+    faviconName: Atomic.UIEditField;
+    gameWidth: Atomic.UIEditField;
+    gameHeight: Atomic.UIEditField;
 
     settings: ToolCore.WebBuildSettings;
 
-
 }
 
 export = WebSettingsWidget;

+ 4 - 4
Script/ToolCore/build/BuildSettings.ts

@@ -46,16 +46,16 @@ class WindowsBuildSettings {
 
 class WebBuildSettings {
     appName: string;
-    packageName: string;
-    companyName: string;
-    productName: string;
+    pageTheme: number;
+    gameWidth: string;
+    gameHeight: string;
+    faveIconName: string;
 }
 
 class AndroidBuildSettings {
     appName: string;
     packageName: string;
     companyName: string;
-    productName: string;
     sDKVersion: string;
     minSDKVersion: string;
     activityName: string;

+ 104 - 3
Source/ToolCore/Build/BuildWeb.cpp

@@ -19,6 +19,7 @@
 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 // THE SOFTWARE.
 //
+#include <stdlib.h>
 
 #include <Atomic/Core/StringUtils.h>
 #include <Atomic/IO/FileSystem.h>
@@ -28,6 +29,7 @@
 #include "../ToolSystem.h"
 #include "../ToolEnvironment.h"
 #include "../Project/Project.h"
+#include "../Project/ProjectBuildSettings.h"
 #include "../Assets/AssetDatabase.h"
 
 #include "BuildEvents.h"
@@ -75,6 +77,9 @@ void BuildWeb::Initialize()
 void BuildWeb::Build(const String& buildPath)
 {
     ToolEnvironment* tenv = GetSubsystem<ToolEnvironment>();
+    ToolSystem* toolSystem = GetSubsystem<ToolSystem>();
+    Project* project = toolSystem->GetProject();
+    WebBuildSettings* settings = project->GetBuildSettings()->GetWebBuildSettings();
 
     buildPath_ = AddTrailingSlash(buildPath) + GetBuildSubfolder();
 
@@ -105,11 +110,70 @@ void BuildWeb::Build(const String& buildPath)
         return;
     if (!BuildCopyFile(buildSourceDir + "/AtomicLoader.js", buildPath_ + "/AtomicLoader.js"))
         return;
-    if (!BuildCopyFile(buildSourceDir + "/index.html", buildPath_ + "/index.html"))
-        return;
-    if (!BuildCopyFile(buildSourceDir + "/Atomic_Logo_Header.png", buildPath_ + "/Atomic_Logo_Header.png"))
+        
+    // look to see if they specified an ico file, otherwise they get atomic     
+    String myIcon = settings->GetFaviconName();
+    if (myIcon.Empty())
+        myIcon = buildSourceDir + "/fav_atomic.ico";
+        
+    if (!BuildCopyFile( myIcon, buildPath_ + "/favicon.ico"))
         return;
 
+    // get the title
+    String myTitle = settings->GetAppName();
+   // get the (text) size
+    String myWidth = settings->GetGameWidth();    
+    String myHeight = settings->GetGameHeight();     
+
+    if ( settings->GetPageTheme() == 0) // editor dark theme
+    {
+        if (!ReadReplace ( buildSourceDir + "/index-dark.html", buildPath_ + "/index.html", myTitle, myWidth, myHeight))
+            return;
+         if (!BuildCopyFile(buildSourceDir + "/Atomic_Logo_Header-i.png", buildPath_ + "/Atomic_Logo_Header-i.png"))
+            return;        
+    }
+    else if ( settings->GetPageTheme() == 1) // editor light theme
+    {
+        if (!ReadReplace(buildSourceDir + "/index-light.html", buildPath_ + "/index.html", myTitle, myWidth, myHeight))
+            return;
+        if (!BuildCopyFile(buildSourceDir + "/Atomic_Logo_Header-w.png", buildPath_ + "/Atomic_Logo_Header-w.png"))
+            return;        
+    }
+    else if ( settings->GetPageTheme() == 2) // Atomic gradient theme
+    {
+        if (!ReadReplace(buildSourceDir + "/index-image.html", buildPath_ + "/index.html", myTitle, myWidth, myHeight))
+            return;
+        if (!BuildCopyFile(buildSourceDir + "/atomic-gradient.jpg", buildPath_ + "/background.jpg"))
+            return;
+        if (!BuildCopyFile(buildSourceDir + "/Atomic_Logo_Header-i.png", buildPath_ + "/Atomic_Logo_Header-i.png"))
+            return;        
+    }
+    else if ( settings->GetPageTheme() == 3) // NY Lake theme
+    {
+         if (!ReadReplace(buildSourceDir + "/index-image.html", buildPath_ + "/index.html", myTitle, myWidth, myHeight))
+            return;
+        if (!BuildCopyFile(buildSourceDir + "/ny-lake.jpg", buildPath_ + "/background.jpg"))
+            return;
+        if (!BuildCopyFile(buildSourceDir + "/Atomic_Logo_Header-i.png", buildPath_ + "/Atomic_Logo_Header-i.png"))
+            return;        
+    }
+    else if ( settings->GetPageTheme() == 4) // Fireworks theme
+    {
+        if (!ReadReplace(buildSourceDir + "/index-image.html", buildPath_ + "/index.html", myTitle, myWidth, myHeight))
+            return;
+        if (!BuildCopyFile(buildSourceDir + "/fireworks.jpg", buildPath_ + "/background.jpg"))
+            return;
+        if (!BuildCopyFile(buildSourceDir + "/Atomic_Logo_Header-i.png", buildPath_ + "/Atomic_Logo_Header-i.png"))
+            return;        
+    }
+    else // theme 5, the retro (original/old) theme
+    {
+        if (!BuildCopyFile(buildSourceDir + "/index.html", buildPath_ + "/index.html"))
+            return;
+        if (!BuildCopyFile(buildSourceDir + "/Atomic_Logo_Header.png", buildPath_ + "/Atomic_Logo_Header.png"))
+            return;
+    }
+    
     File file(context_, buildSourceDir + "/AtomicResources_js.template", FILE_READ);
     unsigned size = file.GetSize();
 
@@ -146,4 +210,41 @@ void BuildWeb::Build(const String& buildPath)
 
 }
 
+bool BuildWeb::ReadReplace ( String infile, String outfile, String title, String width, String height )
+{
+    File file(context_, infile, FILE_READ);
+    if (file.IsOpen())
+    {
+        unsigned size = file.GetSize();
+        SharedArrayPtr<char> buffer(new char[size + 1]);
+        file.Read(buffer.Get(), size);
+        buffer[size] = '\0';
+        String indexstr = (const char*) buffer.Get();
+        file.Close();
+
+        if (!title.Empty())
+            indexstr.Replace("Atomic Game Engine Web Player", title);
+        if (!width.Empty())
+        {
+            // see if the string resolves to a positive integer value
+            int num = atoi(width.CString());
+            if (num > 0 &&  num < 16384)
+                indexstr.Replace("width=\"800\"", "width=\""+ width + "\"" );
+        }
+        if (!height.Empty())
+        {
+            int num = atoi(height.CString());
+            if (num > 0 &&  num < 16384)
+                indexstr.Replace("height=\"512\"", "height=\""+ height + "\"" );
+        }
+
+        file.Open(outfile, FILE_WRITE);
+        file.Write(indexstr.CString(), indexstr.Length());
+        file.Close();
+        return true;
+    }
+    return false;
+}
+
+
 }

+ 2 - 1
Source/ToolCore/Build/BuildWeb.h

@@ -46,7 +46,8 @@ protected:
 
     void Initialize();
 
-
+    bool ReadReplace ( String infile, String outfile, String title, String width, String height );
+ 
 };
 
 }

+ 10 - 9
Source/ToolCore/Project/ProjectBuildSettings.cpp

@@ -88,9 +88,10 @@ void WebBuildSettings::Write(JSONValue& parent)
     JSONValue json;
 
     json.Set("appName", appName_);
-    json.Set("packageName", packageName_);
-    json.Set("companyName", companyName_);
-    json.Set("productName", productName_);
+    json.Set("gameWidth", gameWidth_);
+    json.Set("gameHeight", gameHeight_);
+    json.Set("faviconName", faviconName_);
+    json.Set("pageTheme", pageTheme_ );
 
     parent.Set("WebBuildSettings", json);
 
@@ -104,10 +105,10 @@ void WebBuildSettings::Read(JSONValue& parent)
         return;
 
     appName_ = json.Get("appName").GetString();
-    packageName_ = json.Get("packageName").GetString();
-    companyName_ = json.Get("companyName").GetString();
-    productName_ = json.Get("productName").GetString();
-
+    gameWidth_ = json.Get("gameWidth").GetString();
+    gameHeight_ = json.Get("gameHeight").GetString();
+    faviconName_ = json.Get("faviconName").GetString();
+    pageTheme_ = json.Get("pageTheme").GetInt();
 }
 
 void AndroidBuildSettings::Write(JSONValue& parent)
@@ -177,8 +178,8 @@ void IOSBuildSettings::Read(JSONValue& parent)
     companyName_ = json.Get("companyName").GetString();
     productName_ = json.Get("productName").GetString();
 
-    provisionFile_ = json.Get("provisionFile").GetString();;
-    appidPrefix_ = json.Get("appIDPrefix").GetString();;
+    provisionFile_ = json.Get("provisionFile").GetString();
+    appidPrefix_ = json.Get("appIDPrefix").GetString();
 
 }
 

+ 12 - 9
Source/ToolCore/Project/ProjectBuildSettings.h

@@ -68,14 +68,16 @@ public:
     WebBuildSettings() {}
 
     const String& GetAppName() const { return appName_; }
-    const String& GetPackageName() const { return packageName_; }
-    const String& GetCompanyName() const { return companyName_; }
-    const String& GetProductName() const { return productName_; }
+    const String& GetGameWidth() const { return gameWidth_; }
+    const String& GetGameHeight() const { return gameHeight_; }
+    const String& GetFaviconName() const { return faviconName_; }
+    int GetPageTheme() const { return pageTheme_; }
 
     void SetAppName(const String& name) { appName_ = name; }
-    void SetPackageName(const String& packageName) { packageName_ = packageName; }
-    void SetCompanyName(const String& companyName) { companyName_ = companyName; }
-    void SetProductName(const String& productName) { productName_ = productName; }
+    void SetGameWidth(const String& packageName) { gameWidth_ = packageName; }
+    void SetGameHeight(const String& companyName) { gameHeight_ = companyName; }
+    void SetFaviconName(const String& productName) { faviconName_ = productName; }
+    void SetPageTheme( int number ) { pageTheme_ = number; }
 
     void Write(JSONValue& parent);
     void Read(JSONValue& parent);
@@ -83,9 +85,10 @@ public:
 private:
 
     String appName_;
-    String packageName_;
-    String companyName_;
-    String productName_;
+    String gameWidth_;
+    String gameHeight_;
+    String faviconName_;
+    int pageTheme_;
 };
 
 class WindowsBuildSettings : public RefCounted