Multiplatformowość, wszędzie teoretycznie jest bez problemu i zawsze działa … ale w teorii.

Mam projekt nad którym pracuję w wolnych chwilach od produkcyjnego kodowania, wykorzystującą libGdx’a, z założenia do wykonywania aplikacji wieloplatformowych Windows, Linux, MacOS, Android, oraz HTML/WebGL oraz dużo rzeczy wspomaga. I któreś to podejście do kompilacji projektu do Weba przy pomocy GWT i … nie działa ?

Po małej dywagacji, przeszukania neta,  spaleniu paru neuronów (reszta poszła na zadłużone L4) okazało się, że takie w sumie takie proste 😛

  • Nowa wersja GWT 2.7.0 niby fanie wspiera superDev mode, ale żeby działo odpalenie skryptów JS trzeba ręcznie dopisać w „head” wara, bo nie ruszy. W GWT 2.7.0 puścili z dymem kompilację „script”

Poprawny head:

<head>
   <title></title>
   <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
   <style>
      canvas {
         cursor: default;
         outline: solid;
      }
   </style>
   <script src="{pathPackLib}/soundmanager2-setup.js"></script>
   <script src="{pathPackLib}/soundmanager2-jsmin.js"></script>
 
</head>
  • dopisać do pliku XML, jak ja kocham konfigurację XML’i :\, niby jest domyślnie ustawione XSIFrame oraz ustawić ścieżkę absolutną do assetów, relatywna niby jest OK, ale nie działa
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit trunk//EN" "http://google-web-toolkit.googlecode.com/svn/trunk/distro-source/core/src/gwt-module.dtd">
<module>
   <inherits name='com.badlogic.gdx.backends.gdx_backends_gwt'></inherits>
   <inherits name='{MainPackage}'></inherits>
 
   <add -linker name="xsiframe"></add>
   <set -configuration-property name='xsiframe.failIfScriptTag' value='FALSE'></set>
   <set -configuration-property name="devModeRedirectEnabled" value="true"></set>
 
   <entry -point class='{ClassLauncher}'></entry>
   <set -configuration-property name="gdx.assetpath" value="{AbsolutePath}"></set>
</module>

To tylko takie pierdółki …