Следующая демонстрация хорошо работает с собственной программой https://github.com/LWJGL/lwjgl3/blob/master/modules/samples/src/test/java/org/lwjgl/demo/stb/EasyFont.java
, но я просто не могу получить ее в своей игре. Я скопировал из строки 53 в строку 63 (сделайте это методом draw ()) в свою игру l oop,
и поместил другие вещи (например, перед l oop в исходном коде) в Метод init (),
public void init(){
ByteBuffer charBuffer = BufferUtils.createByteBuffer(text.length() * 270);
int quads = stb_easy_font_print(0, 0, getText(), null, charBuffer);
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(2, GL_FLOAT, 16, charBuffer);
glClearColor(43f / 255f, 43f / 255f, 43f / 255f, 0f); // BG color
glColor3f(169f / 255f, 183f / 255f, 198f / 255f); // Text color
}
public void draw(){
float scaleFactor = 1.0f + getScale() * 0.25f;
glPushMatrix();
// Zoom
glScalef(scaleFactor, scaleFactor, 1f);
// Scroll
glTranslatef(4.0f, 4.0f - getLineOffset() * getFontHeight(), 0f);
glDrawArrays(GL_QUADS, 0, quads * 4);
glPopMatrix();
}
, но я просто не вижу текста в своей игре, потому что я использую шейдер (я пытался отсоединить его, но не работал )
или камера (которая относится к "проекционной" форме Matrix4f в шейдере) или VBO?
или мне нужно заняться чем-нибудь привлекательным или glDisable? моя игра l oop выглядит так
glClear(GL_COLOR_BUFFER_BIT |GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
shader.bind();
mainCamera.getPosition().lerp(new Vector3f(0.64f*main.getPos().x,0.86f*main.getPos().y,0).mul(-1,new Vector3f()), 0.07f);
onEntitiesDraw();
input.update();
EasyFont.draw(); //much the same as in the while loop of original code
glfwSwapBuffers(window);
glfwPollEvents();