or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

Files

docs

application.mdaudio.mdfiles.mdgraphics.mdindex.mdinput.mdnetworking.mdpreloader.mdwebaudio.mdwidgets.md

application.mddocs/

0

# Application Setup

1

2

The libGDX GWT backend provides core application initialization and lifecycle management for web deployment. The main entry point is `GwtApplication`, which must be extended to create a web-deployable libGDX application.

3

4

## Core Application Classes

5

6

### GwtApplication { .api }

7

8

```java

9

public abstract class GwtApplication implements EntryPoint, Application {

10

// Abstract methods that must be implemented

11

public abstract GwtApplicationConfiguration getConfig();

12

public abstract ApplicationListener createApplicationListener();

13

14

// Lifecycle methods

15

public void onModuleLoad();

16

17

// Core subsystem access

18

public Graphics getGraphics();

19

public Audio getAudio();

20

public Input getInput();

21

public Files getFiles();

22

public Net getNet();

23

24

// Logging

25

public void log(String tag, String message);

26

public void error(String tag, String message);

27

public void debug(String tag, String message);

28

public void setLogLevel(int logLevel);

29

public int getLogLevel();

30

31

// Preferences and storage

32

public Preferences getPreferences(String name);

33

public Clipboard getClipboard();

34

35

// Application control

36

public void postRunnable(Runnable runnable);

37

public void exit();

38

public ApplicationType getType(); // Returns ApplicationType.WebGL

39

public int getVersion();

40

41

// Memory information

42

public long getJavaHeap();

43

public long getNativeHeap();

44

public native double usedJSHeapSize();

45

46

// Browser detection

47

public static boolean isMobileDevice();

48

public static AgentInfo agentInfo();

49

50

// Canvas and preloader access

51

public String getBaseUrl();

52

public Preloader getPreloader();

53

public CanvasElement getCanvasElement();

54

55

// Loading and lifecycle listeners

56

public LoadingListener getLoadingListener();

57

public void setLoadingListener(LoadingListener loadingListener);

58

public void addLifecycleListener(LifecycleListener listener);

59

public void removeLifecycleListener(LifecycleListener listener);

60

}

61

```

62

63

### GwtApplicationConfiguration { .api }

64

65

```java

66

public class GwtApplicationConfiguration {

67

// Canvas dimensions

68

public final int width;

69

public final int height;

70

public final boolean usePhysicalPixels;

71

72

// Layout and spacing

73

public int padHorizontal = 10;

74

public int padVertical = 10;

75

76

// Audio configuration

77

public boolean disableAudio;

78

79

// Graphics settings

80

public boolean antialiasing = false;

81

public boolean stencil = false;

82

public boolean alpha = false;

83

public boolean premultipliedAlpha = false;

84

public boolean preserveDrawingBuffer = false;

85

public boolean useDebugGL = false;

86

public boolean useGL30 = false;

87

public boolean xrCompatible = false;

88

89

// Display settings

90

public OrientationLockType fullscreenOrientation;

91

public String canvasId;

92

public Panel rootPanel;

93

public TextArea log;

94

95

// Input settings

96

public boolean useAccelerometer = true;

97

public boolean useGyroscope = false;

98

99

// Browser settings

100

public boolean openURLInNewWindow = true;

101

public boolean fetchAvailableOutputDevices = false;

102

103

// Constructors

104

public GwtApplicationConfiguration();

105

public GwtApplicationConfiguration(boolean usePhysicalPixels);

106

public GwtApplicationConfiguration(int width, int height);

107

public GwtApplicationConfiguration(int width, int height, boolean usePhysicalPixels);

108

109

// Methods

110

public boolean isFixedSizeApplication();

111

}

112

```

113

114

### OrientationLockType { .api }

115

116

```java

117

public enum OrientationLockType {

118

LANDSCAPE("landscape"),

119

PORTRAIT("portrait"),

120

PORTRAIT_PRIMARY("portrait-primary"),

121

PORTRAIT_SECONDARY("portrait-secondary"),

122

LANDSCAPE_PRIMARY("landscape-primary"),

123

LANDSCAPE_SECONDARY("landscape-secondary");

124

125

private final String name;

126

127

private OrientationLockType(String name) {

128

this.name = name;

129

}

130

131

public String getName() {

132

return name;

133

}

134

}

135

```

136

137

## Inner Classes and Interfaces

138

139

### AgentInfo { .api }

140

141

```java

142

public static class AgentInfo extends JavaScriptObject {

143

public final native boolean isFirefox();

144

public final native boolean isChrome();

145

public final native boolean isSafari();

146

public final native boolean isOpera();

147

public final native boolean isIE();

148

public final native String getUserAgent();

149

}

150

```

151

152

### LoadingListener { .api }

153

154

```java

155

public interface LoadingListener {

156

void beforeSetup();

157

void afterSetup();

158

}

159

```

160

161

## Usage Examples

162

163

### Basic Application Setup

164

165

```java

166

public class MyGameGwt extends GwtApplication {

167

@Override

168

public GwtApplicationConfiguration getConfig() {

169

GwtApplicationConfiguration config = new GwtApplicationConfiguration(1024, 768);

170

config.antialiasing = true;

171

config.stencil = true;

172

return config;

173

}

174

175

@Override

176

public ApplicationListener createApplicationListener() {

177

return new MyGame();

178

}

179

}

180

```

181

182

### Full-Screen Application

183

184

```java

185

public class FullScreenGameGwt extends GwtApplication {

186

@Override

187

public GwtApplicationConfiguration getConfig() {

188

GwtApplicationConfiguration config = new GwtApplicationConfiguration(0, 0); // Use available space

189

config.fullscreenOrientation = OrientationLockType.LANDSCAPE;

190

config.antialiasing = true;

191

return config;

192

}

193

194

@Override

195

public ApplicationListener createApplicationListener() {

196

return new MyGame();

197

}

198

}

199

```

200

201

### Application with Custom Loading

202

203

```java

204

public class CustomLoadingGameGwt extends GwtApplication {

205

@Override

206

public GwtApplicationConfiguration getConfig() {

207

return new GwtApplicationConfiguration(800, 600);

208

}

209

210

@Override

211

public ApplicationListener createApplicationListener() {

212

return new MyGame();

213

}

214

215

@Override

216

public Preloader createPreloader() {

217

return new Preloader("assets.txt");

218

}

219

220

@Override

221

public LoadingListener getLoadingListener() {

222

return new LoadingListener() {

223

@Override

224

public void beforeSetup() {

225

// Custom pre-loading setup

226

}

227

228

@Override

229

public void afterSetup() {

230

// Custom post-loading setup

231

}

232

};

233

}

234

}

235

```

236

237

### Browser Detection and Device-Specific Logic

238

239

```java

240

public class AdaptiveGameGwt extends GwtApplication {

241

@Override

242

public GwtApplicationConfiguration getConfig() {

243

GwtApplicationConfiguration config;

244

245

if (GwtApplication.isMobileDevice()) {

246

config = new GwtApplicationConfiguration(0, 0); // Full screen on mobile

247

config.fullscreenOrientation = OrientationLockType.LANDSCAPE;

248

} else {

249

config = new GwtApplicationConfiguration(1024, 768);

250

}

251

252

AgentInfo info = GwtApplication.agentInfo();

253

if (info.isIE()) {

254

config.antialiasing = false; // Disable for IE compatibility

255

}

256

257

return config;

258

}

259

260

@Override

261

public ApplicationListener createApplicationListener() {

262

return new MyGame();

263

}

264

}

265

```