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

graphics.mddocs/

0

# Graphics and Rendering

1

2

The GWT backend provides WebGL-based graphics rendering with full OpenGL ES 2.0 and 3.0 compatibility. The graphics system handles canvas management, WebGL context creation, and provides browser-optimized implementations of libGDX graphics interfaces.

3

4

## Core Graphics Classes

5

6

### GwtGraphics { .api }

7

8

```java

9

public class GwtGraphics extends AbstractGraphics {

10

// Display information

11

public int getWidth();

12

public int getHeight();

13

public int getBackBufferWidth();

14

public int getBackBufferHeight();

15

public float getBackBufferScale();

16

public int getSafeInsetLeft();

17

public int getSafeInsetTop();

18

public int getSafeInsetBottom();

19

public int getSafeInsetRight();

20

21

// Frame timing

22

public float getDeltaTime();

23

public float getRawDeltaTime();

24

public int getFramesPerSecond();

25

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

26

public float getPpiX();

27

public float getPpiY();

28

public float getPpcX();

29

public float getPpcY();

30

public float getDensity();

31

32

// Display modes (limited in browsers)

33

public boolean supportsDisplayModeChange();

34

public DisplayMode[] getDisplayModes();

35

public DisplayMode getDisplayMode();

36

public boolean setFullscreenMode(DisplayMode displayMode);

37

public boolean setWindowedMode(int width, int height);

38

39

// V-Sync (no-op in browsers)

40

public void setVSync(boolean vsync);

41

public BufferFormat getBufferFormat();

42

public boolean supportsExtension(String extension);

43

44

// OpenGL context

45

public GL20 getGL20();

46

public GL30 getGL30();

47

public void setGL20(GL20 gl20);

48

public void setGL30(GL30 gl30);

49

50

// Window management (web-specific)

51

public void setTitle(String title);

52

public void setUndecorated(boolean undecorated);

53

public void setResizable(boolean resizable);

54

public void setSystemCursor(Cursor.SystemCursor systemCursor);

55

public void setCursor(Cursor cursor);

56

57

// Monitor and display information

58

public Monitor getPrimaryMonitor();

59

public Monitor getMonitor();

60

public Monitor[] getMonitors();

61

public DisplayMode[] getDisplayModes(Monitor monitor);

62

public DisplayMode getDisplayMode(Monitor monitor);

63

64

// Screenshot capability

65

public void requestRendering();

66

public boolean isFullscreen();

67

68

// Cursor creation

69

public Cursor newCursor(Pixmap pixmap, int xHotspot, int yHotspot);

70

}

71

```

72

73

## OpenGL Implementations

74

75

### GwtGL20 { .api }

76

77

```java

78

public class GwtGL20 implements GL20 {

79

// All standard GL20 methods

80

public void glActiveTexture(int texture);

81

public void glAttachShader(int program, int shader);

82

public void glBindAttribLocation(int program, int index, String name);

83

public void glBindBuffer(int target, int buffer);

84

public void glBindFramebuffer(int target, int framebuffer);

85

public void glBindRenderbuffer(int target, int renderbuffer);

86

public void glBindTexture(int target, int texture);

87

public void glBlendColor(float red, float green, float blue, float alpha);

88

public void glBlendEquation(int mode);

89

public void glBlendEquationSeparate(int modeRGB, int modeAlpha);

90

public void glBlendFunc(int sfactor, int dfactor);

91

public void glBlendFuncSeparate(int srcRGB, int dstRGB, int srcAlpha, int dstAlpha);

92

public void glBufferData(int target, int size, Buffer data, int usage);

93

public void glBufferSubData(int target, int offset, int size, Buffer data);

94

public int glCheckFramebufferStatus(int target);

95

public void glClear(int mask);

96

public void glClearColor(float red, float green, float blue, float alpha);

97

public void glClearDepthf(float depth);

98

public void glClearStencil(int s);

99

public void glColorMask(boolean red, boolean green, boolean blue, boolean alpha);

100

public void glCompileShader(int shader);

101

public void glCompressedTexImage2D(int target, int level, int internalformat, int width, int height, int border, int imageSize, Buffer data);

102

public void glCompressedTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, int imageSize, Buffer data);

103

public void glCopyTexImage2D(int target, int level, int internalformat, int x, int y, int width, int height, int border);

104

public void glCopyTexSubImage2D(int target, int level, int xoffset, int yoffset, int x, int y, int width, int height);

105

public int glCreateProgram();

106

public int glCreateShader(int type);

107

public void glCullFace(int mode);

108

public void glDeleteBuffers(int n, IntBuffer buffers);

109

public void glDeleteBuffer(int buffer);

110

public void glDeleteFramebuffers(int n, IntBuffer framebuffers);

111

public void glDeleteFramebuffer(int framebuffer);

112

public void glDeleteProgram(int program);

113

public void glDeleteRenderbuffers(int n, IntBuffer renderbuffers);

114

public void glDeleteRenderbuffer(int renderbuffer);

115

public void glDeleteShader(int shader);

116

public void glDeleteTextures(int n, IntBuffer textures);

117

public void glDeleteTexture(int texture);

118

public void glDepthFunc(int func);

119

public void glDepthMask(boolean flag);

120

public void glDepthRangef(float zNear, float zFar);

121

public void glDetachShader(int program, int shader);

122

public void glDisable(int cap);

123

public void glDisableVertexAttribArray(int index);

124

public void glDrawArrays(int mode, int first, int count);

125

public void glDrawElements(int mode, int count, int type, Buffer indices);

126

public void glEnable(int cap);

127

public void glEnableVertexAttribArray(int index);

128

public void glFinish();

129

public void glFlush();

130

public void glFramebufferRenderbuffer(int target, int attachment, int renderbuffertarget, int renderbuffer);

131

public void glFramebufferTexture2D(int target, int attachment, int textarget, int texture, int level);

132

public void glFrontFace(int mode);

133

public void glGenBuffers(int n, IntBuffer buffers);

134

public int glGenBuffer();

135

public void glGenerateMipmap(int target);

136

public void glGenFramebuffers(int n, IntBuffer framebuffers);

137

public int glGenFramebuffer();

138

public void glGenRenderbuffers(int n, IntBuffer renderbuffers);

139

public int glGenRenderbuffer();

140

public void glGenTextures(int n, IntBuffer textures);

141

public int glGenTexture();

142

public String glGetActiveAttrib(int program, int index, IntBuffer size, IntBuffer type);

143

public String glGetActiveUniform(int program, int index, IntBuffer size, IntBuffer type);

144

public void glGetAttachedShaders(int program, int maxcount, Buffer count, IntBuffer shaders);

145

public int glGetAttribLocation(int program, String name);

146

public void glGetBooleanv(int pname, Buffer params);

147

public void glGetBufferParameteriv(int target, int pname, IntBuffer params);

148

public int glGetError();

149

public void glGetFloatv(int pname, FloatBuffer params);

150

public void glGetFramebufferAttachmentParameteriv(int target, int attachment, int pname, IntBuffer params);

151

public void glGetIntegerv(int pname, IntBuffer params);

152

public String glGetProgramInfoLog(int program);

153

public void glGetProgramiv(int program, int pname, IntBuffer params);

154

public void glGetRenderbufferParameteriv(int target, int pname, IntBuffer params);

155

public String glGetShaderInfoLog(int shader);

156

public void glGetShaderiv(int shader, int pname, IntBuffer params);

157

public void glGetShaderPrecisionFormat(int shadertype, int precisiontype, IntBuffer range, IntBuffer precision);

158

public void glGetShaderSource(int shader, int bufsize, Buffer length, String source);

159

public String glGetString(int name);

160

public void glGetTexParameterfv(int target, int pname, FloatBuffer params);

161

public void glGetTexParameteriv(int target, int pname, IntBuffer params);

162

public int glGetUniformLocation(int program, String name);

163

public void glGetUniformfv(int program, int location, FloatBuffer params);

164

public void glGetUniformiv(int program, int location, IntBuffer params);

165

public void glGetVertexAttribfv(int index, int pname, FloatBuffer params);

166

public void glGetVertexAttribiv(int index, int pname, IntBuffer params);

167

public void glGetVertexAttribPointerv(int index, int pname, Buffer pointer);

168

public void glHint(int target, int mode);

169

public boolean glIsBuffer(int buffer);

170

public boolean glIsEnabled(int cap);

171

public boolean glIsFramebuffer(int framebuffer);

172

public boolean glIsProgram(int program);

173

public boolean glIsRenderbuffer(int renderbuffer);

174

public boolean glIsShader(int shader);

175

public boolean glIsTexture(int texture);

176

public void glLineWidth(float width);

177

public void glLinkProgram(int program);

178

public void glPixelStorei(int pname, int param);

179

public void glPolygonOffset(float factor, float units);

180

public void glReadPixels(int x, int y, int width, int height, int format, int type, Buffer pixels);

181

public void glReleaseShaderCompiler();

182

public void glRenderbufferStorage(int target, int internalformat, int width, int height);

183

public void glSampleCoverage(float value, boolean invert);

184

public void glScissor(int x, int y, int width, int height);

185

public void glShaderBinary(int n, IntBuffer shaders, int binaryformat, Buffer binary, int length);

186

public void glShaderSource(int shader, String string);

187

public void glStencilFunc(int func, int ref, int mask);

188

public void glStencilFuncSeparate(int face, int func, int ref, int mask);

189

public void glStencilMask(int mask);

190

public void glStencilMaskSeparate(int face, int mask);

191

public void glStencilOp(int fail, int zfail, int zpass);

192

public void glStencilOpSeparate(int face, int fail, int zfail, int zpass);

193

public void glTexImage2D(int target, int level, int internalformat, int width, int height, int border, int format, int type, Buffer pixels);

194

public void glTexParameterf(int target, int pname, float param);

195

public void glTexParameterfv(int target, int pname, FloatBuffer params);

196

public void glTexParameteri(int target, int pname, int param);

197

public void glTexParameteriv(int target, int pname, IntBuffer params);

198

public void glTexSubImage2D(int target, int level, int xoffset, int yoffset, int width, int height, int format, int type, Buffer pixels);

199

public void glUniform1f(int location, float x);

200

public void glUniform1fv(int location, int count, FloatBuffer v);

201

public void glUniform1fv(int location, int count, float[] v, int offset);

202

public void glUniform1i(int location, int x);

203

public void glUniform1iv(int location, int count, IntBuffer v);

204

public void glUniform1iv(int location, int count, int[] v, int offset);

205

public void glUniform2f(int location, float x, float y);

206

public void glUniform2fv(int location, int count, FloatBuffer v);

207

public void glUniform2fv(int location, int count, float[] v, int offset);

208

public void glUniform2i(int location, int x, int y);

209

public void glUniform2iv(int location, int count, IntBuffer v);

210

public void glUniform2iv(int location, int count, int[] v, int offset);

211

public void glUniform3f(int location, float x, float y, float z);

212

public void glUniform3fv(int location, int count, FloatBuffer v);

213

public void glUniform3fv(int location, int count, float[] v, int offset);

214

public void glUniform3i(int location, int x, int y, int z);

215

public void glUniform3iv(int location, int count, IntBuffer v);

216

public void glUniform3iv(int location, int count, int[] v, int offset);

217

public void glUniform4f(int location, float x, float y, float z, float w);

218

public void glUniform4fv(int location, int count, FloatBuffer v);

219

public void glUniform4fv(int location, int count, float[] v, int offset);

220

public void glUniform4i(int location, int x, int y, int z, int w);

221

public void glUniform4iv(int location, int count, IntBuffer v);

222

public void glUniform4iv(int location, int count, int[] v, int offset);

223

public void glUniformMatrix2fv(int location, int count, boolean transpose, FloatBuffer value);

224

public void glUniformMatrix2fv(int location, int count, boolean transpose, float[] value, int offset);

225

public void glUniformMatrix3fv(int location, int count, boolean transpose, FloatBuffer value);

226

public void glUniformMatrix3fv(int location, int count, boolean transpose, float[] value, int offset);

227

public void glUniformMatrix4fv(int location, int count, boolean transpose, FloatBuffer value);

228

public void glUniformMatrix4fv(int location, int count, boolean transpose, float[] value, int offset);

229

public void glUseProgram(int program);

230

public void glValidateProgram(int program);

231

public void glVertexAttrib1f(int indx, float x);

232

public void glVertexAttrib1fv(int indx, FloatBuffer values);

233

public void glVertexAttrib2f(int indx, float x, float y);

234

public void glVertexAttrib2fv(int indx, FloatBuffer values);

235

public void glVertexAttrib3f(int indx, float x, float y, float z);

236

public void glVertexAttrib3fv(int indx, FloatBuffer values);

237

public void glVertexAttrib4f(int indx, float x, float y, float z, float w);

238

public void glVertexAttrib4fv(int indx, FloatBuffer values);

239

public void glVertexAttribPointer(int indx, int size, int type, boolean normalized, int stride, Buffer ptr);

240

public void glVertexAttribPointer(int indx, int size, int type, boolean normalized, int stride, int ptr);

241

public void glViewport(int x, int y, int width, int height);

242

}

243

```

244

245

### GwtGL30 { .api }

246

247

```java

248

public class GwtGL30 extends GwtGL20 implements GL30 {

249

// Additional GL30 methods

250

public void glBeginQuery(int target, int id);

251

public void glBeginTransformFeedback(int primitiveMode);

252

public void glBindBufferBase(int target, int index, int buffer);

253

public void glBindBufferRange(int target, int index, int buffer, int offset, int size);

254

public void glBindSampler(int unit, int sampler);

255

public void glBindTransformFeedback(int target, int id);

256

public void glBindVertexArray(int array);

257

public void glBlitFramebuffer(int srcX0, int srcY0, int srcX1, int srcY1, int dstX0, int dstY0, int dstX1, int dstY1, int mask, int filter);

258

public void glClearBufferfi(int buffer, int drawbuffer, float depth, int stencil);

259

public void glClearBufferfv(int buffer, int drawbuffer, FloatBuffer value);

260

public void glClearBufferiv(int buffer, int drawbuffer, IntBuffer value);

261

public void glClearBufferuiv(int buffer, int drawbuffer, IntBuffer value);

262

public int glClientWaitSync(long sync, int flags, long timeout);

263

public void glCompressedTexImage3D(int target, int level, int internalformat, int width, int height, int depth, int border, int imageSize, Buffer data);

264

public void glCompressedTexSubImage3D(int target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, int format, int imageSize, Buffer data);

265

public void glCopyBufferSubData(int readTarget, int writeTarget, int readOffset, int writeOffset, int size);

266

public void glCopyTexSubImage3D(int target, int level, int xoffset, int yoffset, int zoffset, int x, int y, int width, int height);

267

public void glDeleteQueries(int n, int[] ids, int offset);

268

public void glDeleteQueries(int n, IntBuffer ids);

269

public void glDeleteQuery(int id);

270

public void glDeleteSamplers(int count, int[] samplers, int offset);

271

public void glDeleteSamplers(int count, IntBuffer samplers);

272

public void glDeleteSampler(int sampler);

273

public void glDeleteSync(long sync);

274

public void glDeleteTransformFeedbacks(int n, int[] ids, int offset);

275

public void glDeleteTransformFeedbacks(int n, IntBuffer ids);

276

public void glDeleteTransformFeedback(int id);

277

public void glDeleteVertexArrays(int n, int[] arrays, int offset);

278

public void glDeleteVertexArrays(int n, IntBuffer arrays);

279

public void glDeleteVertexArray(int array);

280

public void glDrawArraysInstanced(int mode, int first, int count, int instanceCount);

281

public void glDrawBuffers(int n, IntBuffer bufs);

282

public void glDrawElementsInstanced(int mode, int count, int type, Buffer indices, int instanceCount);

283

public void glDrawElementsInstanced(int mode, int count, int type, int indices, int instanceCount);

284

public void glDrawRangeElements(int mode, int start, int end, int count, int type, Buffer indices);

285

public void glDrawRangeElements(int mode, int start, int end, int count, int type, int offset);

286

public void glEndQuery(int target);

287

public void glEndTransformFeedback();

288

public long glFenceSync(int condition, int flags);

289

public void glFlushMappedBufferRange(int target, int offset, int length);

290

public void glFramebufferTextureLayer(int target, int attachment, int texture, int level, int layer);

291

public void glGenQueries(int n, int[] ids, int offset);

292

public void glGenQueries(int n, IntBuffer ids);

293

public int glGenQuery();

294

public void glGenSamplers(int count, int[] samplers, int offset);

295

public void glGenSamplers(int count, IntBuffer samplers);

296

public int glGenSampler();

297

public void glGenTransformFeedbacks(int n, int[] ids, int offset);

298

public void glGenTransformFeedbacks(int n, IntBuffer ids);

299

public int glGenTransformFeedback();

300

public void glGenVertexArrays(int n, int[] arrays, int offset);

301

public void glGenVertexArrays(int n, IntBuffer arrays);

302

public int glGenVertexArray();

303

public String glGetActiveUniformBlockName(int program, int uniformBlockIndex);

304

public void glGetActiveUniformBlockiv(int program, int uniformBlockIndex, int pname, IntBuffer params);

305

public void glGetActiveUniformsiv(int program, int uniformCount, IntBuffer uniformIndices, int pname, IntBuffer params);

306

public int glGetBufferParameteri(int target, int pname);

307

public int glGetFragDataLocation(int program, String name);

308

public void glGetInteger64v(int pname, LongBuffer params);

309

public void glGetIntegeri_v(int target, int index, IntBuffer data);

310

public void glGetInternalformativ(int target, int internalformat, int pname, int bufSize, IntBuffer params);

311

public void glGetQueryiv(int target, int pname, IntBuffer params);

312

public void glGetQueryObjectuiv(int id, int pname, IntBuffer params);

313

public void glGetSamplerParameterfv(int sampler, int pname, FloatBuffer params);

314

public void glGetSamplerParameteriv(int sampler, int pname, IntBuffer params);

315

public String glGetStringi(int name, int index);

316

public void glGetSynciv(long sync, int pname, int bufSize, IntBuffer length, IntBuffer values);

317

public void glGetTransformFeedbackVarying(int program, int index, int bufSize, IntBuffer length, IntBuffer size, IntBuffer type, byte[] name);

318

public int glGetUniformBlockIndex(int program, String uniformBlockName);

319

public void glGetUniformIndices(int program, String[] uniformNames, IntBuffer uniformIndices);

320

public void glGetUniformuiv(int program, int location, IntBuffer params);

321

public void glGetVertexAttribIiv(int index, int pname, IntBuffer params);

322

public void glGetVertexAttribIuiv(int index, int pname, IntBuffer params);

323

public void glInvalidateFramebuffer(int target, int numAttachments, IntBuffer attachments);

324

public void glInvalidateSubFramebuffer(int target, int numAttachments, IntBuffer attachments, int x, int y, int width, int height);

325

public boolean glIsQuery(int id);

326

public boolean glIsSampler(int sampler);

327

public boolean glIsSync(long sync);

328

public boolean glIsTransformFeedback(int id);

329

public boolean glIsVertexArray(int array);

330

public ByteBuffer glMapBufferRange(int target, int offset, int length, int access);

331

public void glPauseTransformFeedback();

332

public void glReadBuffer(int mode);

333

public void glRenderbufferStorageMultisample(int target, int samples, int internalformat, int width, int height);

334

public void glResumeTransformFeedback();

335

public void glSamplerParameterf(int sampler, int pname, float param);

336

public void glSamplerParameterfv(int sampler, int pname, FloatBuffer param);

337

public void glSamplerParameteri(int sampler, int pname, int param);

338

public void glSamplerParameteriv(int sampler, int pname, IntBuffer param);

339

public void glTexImage3D(int target, int level, int internalformat, int width, int height, int depth, int border, int format, int type, Buffer pixels);

340

public void glTexImage3D(int target, int level, int internalformat, int width, int height, int depth, int border, int format, int type, int offset);

341

public void glTexStorage2D(int target, int levels, int internalformat, int width, int height);

342

public void glTexStorage3D(int target, int levels, int internalformat, int width, int height, int depth);

343

public void glTexSubImage3D(int target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, int format, int type, Buffer pixels);

344

public void glTexSubImage3D(int target, int level, int xoffset, int yoffset, int zoffset, int width, int height, int depth, int format, int type, int offset);

345

public void glTransformFeedbackVaryings(int program, String[] varyings, int bufferMode);

346

public void glUniform1uiv(int location, int count, IntBuffer value);

347

public void glUniform2uiv(int location, int count, IntBuffer value);

348

public void glUniform3uiv(int location, int count, IntBuffer value);

349

public void glUniform4uiv(int location, int count, IntBuffer value);

350

public void glUniformBlockBinding(int program, int uniformBlockIndex, int uniformBlockBinding);

351

public void glUniformMatrix2x3fv(int location, int count, boolean transpose, FloatBuffer value);

352

public void glUniformMatrix2x4fv(int location, int count, boolean transpose, FloatBuffer value);

353

public void glUniformMatrix3x2fv(int location, int count, boolean transpose, FloatBuffer value);

354

public void glUniformMatrix3x4fv(int location, int count, boolean transpose, FloatBuffer value);

355

public void glUniformMatrix4x2fv(int location, int count, boolean transpose, FloatBuffer value);

356

public void glUniformMatrix4x3fv(int location, int count, boolean transpose, FloatBuffer value);

357

public boolean glUnmapBuffer(int target);

358

public void glVertexAttribDivisor(int index, int divisor);

359

public void glVertexAttribI4i(int index, int x, int y, int z, int w);

360

public void glVertexAttribI4iv(int index, IntBuffer v);

361

public void glVertexAttribI4ui(int index, int x, int y, int z, int w);

362

public void glVertexAttribI4uiv(int index, IntBuffer v);

363

public void glVertexAttribIPointer(int index, int size, int type, int stride, Buffer pointer);

364

public void glVertexAttribIPointer(int index, int size, int type, int stride, int offset);

365

public void glWaitSync(long sync, int flags, long timeout);

366

}

367

```

368

369

## Debug Implementations

370

371

### GwtGL20Debug { .api }

372

373

```java

374

public class GwtGL20Debug extends GwtGL20 {

375

// Wrapped GL20 implementation with error checking

376

// All GL20 methods with automatic glGetError() calls

377

}

378

```

379

380

### GwtGL30Debug { .api }

381

382

```java

383

public class GwtGL30Debug extends GwtGL30 {

384

// Wrapped GL30 implementation with error checking

385

// All GL30 methods with automatic glGetError() calls

386

}

387

```

388

389

## Cursor Support

390

391

### GwtCursor { .api }

392

393

```java

394

public class GwtCursor implements Cursor {

395

// Browser cursor implementation

396

}

397

```

398

399

## Usage Examples

400

401

### Basic Graphics Setup

402

403

```java

404

// In your ApplicationListener

405

public void create() {

406

// Get graphics instance

407

Graphics graphics = Gdx.graphics;

408

409

// Check WebGL support and version

410

if (graphics.getType() == GraphicsType.WebGL) {

411

GL20 gl = graphics.getGL20();

412

// Use GL20 for rendering

413

414

if (graphics.getGL30() != null) {

415

GL30 gl30 = graphics.getGL30();

416

// Use GL30 features if available

417

}

418

}

419

}

420

```

421

422

### Debug OpenGL Context

423

424

```java

425

public class MyGameGwt extends GwtApplication {

426

@Override

427

public GwtApplicationConfiguration getConfig() {

428

GwtApplicationConfiguration config = new GwtApplicationConfiguration(800, 600);

429

// Enable debug mode during development

430

return config;

431

}

432

433

@Override

434

public ApplicationListener createApplicationListener() {

435

return new ApplicationListener() {

436

@Override

437

public void create() {

438

// Enable GL debug mode

439

Graphics graphics = Gdx.graphics;

440

if (graphics.getGL30() != null) {

441

graphics.setGL30(new GwtGL30Debug(graphics.getGL30()));

442

} else {

443

graphics.setGL20(new GwtGL20Debug(graphics.getGL20()));

444

}

445

}

446

// ... other methods

447

};

448

}

449

}

450

```