Desktop (LWJGL3) 🖥️
Comece sempre pelo desktop: é o loop de iteração rápida. Não há hot-reload de Java, mas o cold start é de segundos — você valida a UI antes de sofrer com ciclos de build mobile.
Rodar
gradlew :lwjgl3:run
O Lwjgl3Launcher cria a aplicação: new Main(true, getCommandline(args)) — canStart=true sobe a
UI imediatamente. mainClassName = dev.crossfly.lwjgl3.Lwjgl3Launcher.
Título, tamanho e rotação
Main.setDesktopTitle("Minha App"); // só tem efeito no desktop
main.rotate(); // simula rotação (troca width/height) no desktop
Dimensões e escala vêm de Screen (Screen.width/height/scale/minSize).
⚠️ Dois pré-requisitos do desktop
crossfly-lib(JNI) precisa estar nojava.library.path— oMain.create()chamaSharedLibraryLoader.load("crossfly-lib")no arranque (em todos os alvos, exceto WebGL).- macOS exige a flag da JVM
-XstartOnFirstThread(requisito do LWJGL3/GLFW no Mac). Sem ela, o app não abre janela.
Diagnóstico
- O handler global de exceções canaliza falhas (ver Erros e logging).
Debug.showFPS = truepara ver a taxa de quadros.- Gere screenshots (doc/loja):
Main.getScreenShot(true).toPng("prefixo_").
Boas práticas
- Desenvolva e valide a UI no desktop; só vá ao mobile quando a tela estiver pronta.
- Teste rotação (
rotate()) e diferentes tamanhos de janela para checar responsividade.
Erros comuns
- Esquecer
-XstartOnFirstThreadno macOS (janela não abre). crossfly-libfora dojava.library.path(falha no arranque).
Veja também
Esta página foi útil?Obrigado pelo feedback!