/**
   * Virtual constructor. Calls {@link #malloc} and initializes the returned {@link
   * java.nio.ByteBuffer} instance with the specified values.
   */
  public static ByteBuffer malloc(
      int width, int height, int redBits, int greenBits, int blueBits, int refreshRate) {
    ByteBuffer glfwvidmode = malloc();

    width(glfwvidmode, width);
    height(glfwvidmode, height);
    redBits(glfwvidmode, redBits);
    greenBits(glfwvidmode, greenBits);
    blueBits(glfwvidmode, blueBits);
    refreshRate(glfwvidmode, refreshRate);

    return glfwvidmode;
  }
Пример #2
0
  private void init() {
    // Setup an error callback. The default implementation
    // will print the error message in System.err.
    glfwSetErrorCallback(errorCallback = errorCallbackPrint(System.err));

    // Initialize GLFW. Most GLFW functions will not work before doing this.
    if (glfwInit() != GL11.GL_TRUE) throw new IllegalStateException("Unable to initialize GLFW");

    // Configure our window
    glfwDefaultWindowHints(); // optional, the current window hints are already the default
    glfwWindowHint(GLFW_VISIBLE, GL_FALSE); // the window will stay hidden after creation
    glfwWindowHint(GLFW_RESIZABLE, GL_TRUE); // the window will be resizable

    int WIDTH = 300;
    int HEIGHT = 300;

    // Create the window
    window = glfwCreateWindow(WIDTH, HEIGHT, "Hello World!", NULL, NULL);
    if (window == NULL) throw new RuntimeException("Failed to create the GLFW window");

    // Setup a key callback. It will be called every time a key is pressed, repeated or released.
    glfwSetKeyCallback(
        window,
        keyCallback =
            new GLFWKeyCallback() {
              @Override
              public void invoke(long window, int key, int scancode, int action, int mods) {
                if (key == GLFW_KEY_ESCAPE && action == GLFW_RELEASE)
                  glfwSetWindowShouldClose(
                      window, GL_TRUE); // We will detect this in our rendering loop
              }
            });

    // Get the resolution of the primary monitor
    ByteBuffer vidmode = glfwGetVideoMode(glfwGetPrimaryMonitor());
    // Center our window
    glfwSetWindowPos(
        window,
        (GLFWvidmode.width(vidmode) - WIDTH) / 2,
        (GLFWvidmode.height(vidmode) - HEIGHT) / 2);

    // Make the OpenGL context current
    glfwMakeContextCurrent(window);
    // Enable v-sync
    glfwSwapInterval(1);

    // Make the window visible
    glfwShowWindow(window);
  }
 public void setWidth(int width) {
   width(struct, width);
 }