2015-08-21 103 views
1

所以我正在观看这个关于LWJGL3的教程系列,当OpenGL被初始化为init函数时,它不会执行函数本身。OpenGL glfwInit()自动执行?

所以在这里检查,如果glfwInit()执行,如果没有它打印出一个错误代码。但是,glfwInit()实际上是如何执行的?

我没有任何地方调用它,又如何?

public void init() { 

    if(glfwInit() != GL_TRUE){ 
     System.err.println("Failed to initilaize OpenGL"); 
    } 

} 

下面

import static org.lwjgl.glfw.GLFW.*; 
import static org.lwjgl.opengl.GL11.*; 
import static org.lwjgl.system.MemoryUtil.*; 
import java.nio.ByteBuffer; 
import org.lwjgl.glfw.GLFWvidmode; 

public class Driver implements Runnable { 

    private Thread thread = new Thread(); 
    private boolean running = false; 

    public Driver() { 

    } 

    private synchronized void start() { 
     thread.start(); 
     running = true; 
    } 

    private synchronized void stop() { 
     try { 
      thread.join(); 
      running = false; 
     } catch(InterruptedException e) { 
      e.printStackTrace(); 
     } 
    } 

    public void run() { 
     init(); 
     while (running) { 

      System.out.println("The game is running..."); 

      render(); 
      update(); 
     } 
    } 

    public void update() { 

    } 

    public void render() { 

    } 

    public void init() { 

     if (glfwInit() != GL_TRUE) { 
      System.err.println("Failed to initilaize OpenGL"); 
     } 
    } 

    public static void main(String[] args) { 
     Driver game = new Driver(); 
     game.start(); 
     game.run(); 
    } 

} 

回答

2

glfwInit()的完整代码调用这个函数。

glfwInit() != GL_TRUE这个检查函数返回真实的,而不是其是否已执行与否,它被执行。