Java 类org.lwjgl.glfw.GLFWErrorCallback 实例源码
项目:candlelight
文件:GLEngine.java
@Override
public boolean initialize()
{
System.out.println("OS " + System.getProperty("os.name"));
System.out.println("JAVA " + System.getProperty("java.version"));
System.out.println("LWJGL " + Version.getVersion());
System.out.println("GLFW " + GLFW.glfwGetVersionString());
System.out.println("JOML 1.9.2");
// Setup an error callback. The default implementation
// will print the error message in System.err.
GLFWErrorCallback.createPrint(System.err).set();
// Initialize GLFW. Most GLFW functions will not work before doing this.
if (!GLFW.glfwInit())
{
throw new IllegalStateException("Unable to initialize GLFW");
}
return true;
}
项目:gl3DGE
文件:LightingDemo.java
public void init(){
WIDTH = 1920;
HEIGHT = 1080;
Window.setErrorCallback(GLFWErrorCallback.createPrint(System.err));
w = new Window(WIDTH, HEIGHT, "gl3DGE", true, 4, 0);
w.setKeyCallback(new GLFWKeyCallback(){
@Override
public void invoke(long window, int key, int scancode, int action, int mods) {
// TODO Auto-generated method stub
if (key == GLFW_KEY_ESCAPE && action == GLFW_RELEASE)
glfwSetWindowShouldClose(window, true);
}
});
w.setCursorPos((double) WIDTH / 2, (double) HEIGHT / 2);
AudioEngine.initAudioEngine();
Resource.setGameObjectDir("/mesh/");
Resource.setOBJDir("/obj/");
Resource.setTexDir("/tex/");
Resource.setShaderDir("/shaders/");
}
项目:gl3DGE
文件:LightingDemo.java
public void init(){
WIDTH = 1920;
HEIGHT = 1080;
Window.setErrorCallback(GLFWErrorCallback.createPrint(System.err));
w = new Window(WIDTH, HEIGHT, "gl3DGE", true, 4, 0);
w.setKeyCallback(new GLFWKeyCallback(){
@Override
public void invoke(long window, int key, int scancode, int action, int mods) {
// TODO Auto-generated method stub
if (key == GLFW_KEY_ESCAPE && action == GLFW_RELEASE)
glfwSetWindowShouldClose(window, true);
}
});
w.setCursorPos((double) WIDTH / 2, (double) HEIGHT / 2);
AudioEngine.initAudioEngine();
Resource.setGameObjectDir("/mesh/");
Resource.setOBJDir("/obj/");
Resource.setTexDir("/tex/");
Resource.setShaderDir("/shaders/");
}
项目:lwjgl3-tutorial
文件:Game.java
/**
* Initializes the game.
*/
public void init() {
/* Set error callback */
errorCallback = GLFWErrorCallback.createPrint();
glfwSetErrorCallback(errorCallback);
/* Initialize GLFW */
if (!glfwInit()) {
throw new IllegalStateException("Unable to initialize GLFW!");
}
/* Create GLFW window */
window = new Window(640, 480, "Simple Game - Pong", true);
/* Initialize timer */
timer.init();
/* Initialize renderer */
renderer.init();
/* Initialize states */
initStates();
/* Initializing done, set running to true */
running = true;
}
项目:debug
文件:GLFW.java
public static boolean glfwInit() {
boolean ret;
if (Properties.VALIDATE.enabled) {
debug("Registering GLFWErrorCallback");
/* Set a GLFW error callback first and remember any possibly current callback to delegate to */
errorCallback = new GLFWErrorCallback() {
private final Map<Integer, String> ERROR_CODES = APIUtil.apiClassTokens((field, value) -> 0x10000 < value && value < 0x20000, null, org.lwjgl.glfw.GLFW.class);
public void invoke(int error, long description) {
String msg = getDescription(description);
System.err.printf("[LWJGL] %s error\n", ERROR_CODES.get(error));
System.err.println("\tDescription : " + msg);
System.err.println("\tStacktrace :");
StackTraceElement[] stack = Thread.currentThread().getStackTrace();
for (int i = 4; i < stack.length; i++) {
System.err.print("\t\t");
System.err.println(stack[i].toString());
}
if (userCallback != null) {
userCallback.invoke(error, description);
}
}
};
userCallback = org.lwjgl.glfw.GLFW.glfwSetErrorCallback(errorCallback);
ret = org.lwjgl.glfw.GLFW.glfwInit();
if (!ret) {
error("glfwInit returned false");
}
} else {
ret = org.lwjgl.glfw.GLFW.glfwInit();
}
RT.glfwInitialized = ret;
return ret;
}
项目:candlelight
文件:Window.java
public static void initializeGLFW()
{
if (initGLFW)
{
return;
}
else
{
initGLFW = true;
}
System.out.println("OS " + System.getProperty("os.name"));
System.out.println("JAVA " + System.getProperty("java.version"));
System.out.println("LWJGL " + Version.getVersion());
System.out.println("GLFW " + GLFW.glfwGetVersionString());
System.out.println("JOML 1.9.2");
// Setup an error callback. The default implementation
// will print the error message in System.err.
GLFWErrorCallback.createPrint(System.err).set();
// Initialize GLFW. Most GLFW functions will not work before doing this.
if (!GLFW.glfwInit())
{
throw new IllegalStateException("Unable to initialize GLFW");
}
}
项目:CommunityEngine-Java
文件:Window.java
public static Window createWindow(Scene scene, String title) {
if (!GLFW.glfwInit()) {
throw new IllegalStateException();
}
errorCallback = new GLFWErrorCallback() {
public void invoke(int error, long description) {
System.err.println("["+ error + "] " + description);
}
};
GLFW.glfwSetErrorCallback(errorCallback);
long window = GLFW.glfwCreateWindow(scene.getWidth(), scene.getHeight(), title, MemoryUtil.NULL, MemoryUtil.NULL);
if (window == MemoryUtil.NULL) {
System.err.println("Window returned NULL");
System.exit(-1);
}
GLFW.glfwMakeContextCurrent(window);
GLFW.glfwShowWindow(window);
GL.createCapabilities();
GLFW.glfwSwapInterval(1);
scene.setGLinitilized();
return new Window(window);
}
项目:zierfisch
文件:Application.java
private static void ensureGlfwLoaded() {
if(!glfwLoaded) {
GLFWErrorCallback.createPrint(System.err).set();
if (!glfwInit()) {
throw new IllegalStateException("Error initializing GLFW");
}
glfwLoaded = true;
}
}
项目:TorchEngine
文件:GLFW.java
public static void create()
{
LoggerInternal.log("Initializing GLFW");
glfwSetErrorCallback(GLFWErrorCallback.createPrint(System.err));
if(!glfwInit())
{
throw new RuntimeException("Unable to initialize GLFW");
}
LoggerInternal.log("GLFW Version: " + glfwGetVersionString());
}
项目:graphicslab
文件:GraphicsSystem.java
/**
* Creates and sets the GLFW error callback to {@link System.err}.
* Initializes the GLFW library.
*
* <b>This is required before the graphicslab windowing system is able to be
* used.</b>
*
* Returns true if successful or throws {@link IllegalStateException} in
* case GLFW failed to initialize.
*/
protected static boolean init() {
if (isActive()) {
return true;
}
errorCallback = GLFWErrorCallback.createPrint(System.err);
errorCallback.set();
if (!(isActive = glfwInit())) {
throw new IllegalStateException("Unable to initialize GLFW.");
}
return true;
}
项目:graphicslab
文件:GraphicsSystem.java
/**
* Destroys any remaining windows or cursors. Frees the error callback. Once
* this function is called, you must call init() again to use any of the
* windowing functions.
*
* Precondition: none
* Postcondition: the glfw callback will be freed
* the callback field will be set to null
* the glfw system will be terminated
* the variable will be set to inactive
*/
protected static void terminate() {
glfwTerminate();
GLFWErrorCallback previousCallback = glfwSetErrorCallback(null);
if (previousCallback != null) {
previousCallback.free();
}
errorCallback = null;
isActive = false;
}
项目:polvo
文件:MainThread.java
public static void initGlfwLib() {
// Setup an error callback. The default implementation
// will print the error message in System.err.
GLFWErrorCallback.createPrint(System.err).set();
// Initialize GLFW. Most GLFW functions will not work before doing this.
if (!glfwInit())
throw new IllegalStateException("Unable to initialize GLFW");
// Configure glfw
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
}
项目:glow
文件:Display.java
public static void setErrorCallback(Consumer<String> consumer) {
GLFWErrorCallback tmp = GLFWErrorCallback.createString(
(int err,String str) -> consumer.accept(""+err+": "+str)
);
GLFW.glfwSetErrorCallback(tmp);
errorCallback = tmp;
}
项目:glow
文件:Display.java
/** Convenience method to throw an IllegalStateException when an error occurs. */
public static void setErrorCallbackToThrowExceptions() {
//Temporary variable ensures no race conditions occur with GC for the old callback
GLFWErrorCallback tmp = GLFWErrorCallback.createThrow();
GLFW.glfwSetErrorCallback(tmp);
errorCallback = tmp;
}
项目:glow
文件:Display.java
/** Convenience method to print a message out to System.err when an error occurs */
public static void setErrorCallbackToLog(Logger log) {
GLFWErrorCallback tmp = GLFWErrorCallback.createString(
(int err,String str) -> log.error(""+err+": "+str)
);
GLFW.glfwSetErrorCallback(tmp);
errorCallback = tmp;
}
项目:oreon-engine
文件:CoreSystem.java
public void init(){
glfwSetErrorCallback(errorCallback = GLFWErrorCallback.createPrint(System.err));
if (!glfwInit())
throw new IllegalStateException("Unable to initialize GLFW");
window.create();
input.create(window.getId());
scenegraph.getCamera().init();
renderEngine.init();
}
项目:Quadria
文件:Main.java
public static void main(String... args)
{
GLFWErrorCallback errorCallback;
glfwSetCallback(errorCallback = errorCallbackPrint(System.err));
if (glfwInit() != GL_TRUE)
throw new RuntimeException("GLFW couldn't be initialized");
glfwDefaultWindowHints();
glfwWindowHint(GLFW_RESIZABLE, GL_FALSE);
glfwWindowHint(GLFW_VISIBLE, GL_FALSE);
long id = glfwCreateWindow(300, 300, "Boom", NULL, NULL);
glfwShowWindow(id);
while (glfwWindowShouldClose(id) != GL_TRUE)
{
glfwPollEvents();
}
glfwDestroyWindow(id);
errorCallback.release();
glfwTerminate();
}
项目:SilenceEngine
文件:GLFW3.java
/**
* Initializes the GLFW3 library. If you are not using the built-in Game class of the SilenceEngine, you should call
* this method as soon as you can after loading the LWJGL3 natives.
*
* @return True if initialised successful, or else False.
*/
public static boolean init()
{
if (isInitialized())
return true;
boolean state = glfwInit();
// Return immediately in case of error
if (!state)
return initialized = false;
// Error callback that does nothing
setErrorCallback(null);
glfwErrorCallback = GLFWErrorCallback.create((error, description) ->
errorCallback.invoke(error, MemoryUtil.memUTF8(description)));
// Joystick callback that does nothing
setJoystickCallback(null);
glfwJoystickCallback = GLFWJoystickCallback.create((joy, event) ->
joystickCallback.invoke(joy, event == GLFW_CONNECTED));
// Register the callback
glfwSetErrorCallback(glfwErrorCallback);
return initialized = true;
}
项目:lwjgl3_stuff
文件:Window.java
public static void setCallbacks() {
glfwSetErrorCallback(GLFWErrorCallback.createPrint(System.err));
}
项目:ChessMaster
文件:RenderLoop.java
private void init() {
ChessMaster.getLogger().info("Initializing GLFW");
errorCallback = GLFWErrorCallback.createPrint(System.err).set();
if (!glfwInit())
ChessMaster.getLogger().error("Cannot initialize GLFW!", new RuntimeException());
ChessMaster.getLogger().info("GLFW Creation complete");
glfwDefaultWindowHints();
glfwWindowHint(GLFW_VISIBLE, GLFW_FALSE);
glfwWindowHint(GLFW_RESIZABLE, GLFW_TRUE);
window = glfwCreateWindow(600, 600, "Chess Master", MemoryUtil.NULL, MemoryUtil.NULL);
if (window == MemoryUtil.NULL)
ChessMaster.getLogger().error("Cannot create window!", new RuntimeException());
glfwSetKeyCallback(window, (window, key, scancode, action, mods) -> {
switch (action) {
case GLFW_RELEASE:
ChessMaster.postEvent(new KeyEvent.Release(window, key, scancode, mods));
break;
case GLFW_PRESS:
ChessMaster.postEvent(new KeyEvent.Press(window, key, scancode, mods));
break;
case GLFW_REPEAT:
ChessMaster.postEvent(new KeyEvent.Repeat(window, key, scancode, mods));
}
});
glfwSetWindowSizeCallback(window, (window1, w, h) -> {
if (w > 0 && h > 0) {
width = w;
height = h;
}
});
try (MemoryStack stack = MemoryStack.stackPush()) {
IntBuffer pWidth = stack.mallocInt(1); // int*
IntBuffer pHeight = stack.mallocInt(1); // int*
// Get the window size passed to glfwCreateWindow
glfwGetWindowSize(window, pWidth, pHeight);
// Get the resolution of the primary monitor
GLFWVidMode vidmode = glfwGetVideoMode(glfwGetPrimaryMonitor());
// Center the window
glfwSetWindowPos(
window,
(vidmode.width() - pWidth.get(0)) / 2,
(vidmode.height() - pHeight.get(0)) / 2
);
}
// Make the OpenGL context current
glfwMakeContextCurrent(window);
glEnable(GL_TEXTURE_2D);
// Make the window visible
glfwShowWindow(window);
board = new Board();
ChessMaster.getLogger().info("Initialization Complete");
}
项目:lambda
文件:Window.java
private void init(int width, int height, String title) {
// Setup an error callback. The default implementation
// will print the error message in System.err.
GLFWErrorCallback.createPrint(System.err).set();
// Initialize GLFW
if(!glfwInit()){
throw new IllegalStateException("Unable to initialize GLFW");
}
// Specify OpenGL 3.2 core profile context, with forward compatibility (for Mac)
glfwDefaultWindowHints();
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GLFW_TRUE);
// Allows our window to be resizable
glfwWindowHint(GLFW_RESIZABLE, GL_TRUE);
// Create main window
window = glfwCreateWindow(width, height, title, NULL, NULL);
// Check if window was created
if(window == NULL){
System.err.println("Could not create our Window!");
}
// Get the resolution of the primary monitor
GLFWVidMode vidmode = glfwGetVideoMode(glfwGetPrimaryMonitor());
// Center window
glfwSetWindowPos(
window,
(vidmode.width() - width) / 2,
(vidmode.height() - height) / 2
);
// Set context current to this window
glfwMakeContextCurrent(window);
// Show the window
glfwShowWindow(window);
// vsync off
// glfwSwapInterval(0);
}
项目:Global-Gam-Jam-2017
文件:Main.java
public static void main(String[] args) throws Exception {
System.setProperty("org.lwjgl.librarypath", new File("libs").getAbsolutePath());
//Creation de la fenetre
//------------------------------------------------------------------------------------
errorCallback = new GLFWErrorCallback() {
public void invoke(int error, long description) {
System.err.println("ID : " + error + " | Description :" + description);
}
};
// glfwSetErrorCallback(errorCallback);
if(!glfwInit())throw new Exception("GLFW not init");
glfwDefaultWindowHints();
glfwWindowHint(GLFW_VISIBLE, GL11.GL_FALSE);
glfwWindowHint(GLFW_RESIZABLE, GL11.GL_FALSE);
glfwWindowHint(GLFW_SAMPLES, 4);//Activation du MSAA x4
// glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
// glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
// glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
// glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
windowID = glfwCreateWindow(WIDTH,HEIGHT,TITLE,NULL,NULL);
GLFWVidMode vidmode = glfwGetVideoMode(glfwGetPrimaryMonitor());
glfwSetWindowPos(windowID,(vidmode.width()-WIDTH)/2,(vidmode.height()-HEIGHT)/2);
glfwShowWindow(windowID);
glfwMakeContextCurrent(windowID);
GL.createCapabilities();
System.out.println("OpenGL Version :" + glGetString(GL_VERSION));
System.out.println("GLSL Shader Version :" + glGetString(GL20.GL_SHADING_LANGUAGE_VERSION));
//------------------------------------------------------------------------------------
//Creation du device audio
//------------------------------------------------------------------------------------
Audio.create();
//------------------------------------------------------------------------------------
//initialisation
//------------------------------------------------------------------------------------
//glEnable(GL_MULTISAMPLE);//Activation du MSAA
Input.init();
game = new MainMenuGame();
Camera.transform();
//------------------------------------------------------------------------------------
while(!glfwWindowShouldClose(windowID) && !isDestroy){
if(System.currentTimeMillis() - previousTicks >= 1000/120){//Update TICKS
glfwPollEvents();
Input.update();
game.update();
previousTicks = System.currentTimeMillis();
delta = (float)(System.currentTimeMillis() - previous)/1000.0f;
previous = System.currentTimeMillis();
TICKS++;
}else{//Update FPS
DisplayManager.clear();
DisplayManager.preRender2D();
DisplayManager.render2D();
DisplayManager.preRenderGUI();
DisplayManager.renderGUI();
glfwSwapBuffers(windowID);
FPS++;
}
if(System.currentTimeMillis() - previousInfo >= 1000){
glfwSetWindowTitle(windowID, TITLE + " | FPS:" + FPS + " TICKS:" + TICKS);
FPS = 0;
TICKS = 0;
previousInfo = System.currentTimeMillis();
}
}
}
项目:NanoUI
文件:App.java
public App(IState initialState) {
GLFW.glfwSetErrorCallback(GLFWErrorCallback.createPrint(System.err));
init(initialState);
}
项目:Assimp-Tutorial-LWJGL-3
文件:Window.java
public static void CreateWindow(int width, int height, String title)
{
try
{
if(!glfwInit()) throw new Exception("GLFW Initialization failed.");
glfwSetErrorCallback(m_errorCallback = GLFWErrorCallback.createPrint(System.err));
glfwDefaultWindowHints();
glfwWindowHint(GLFW_VISIBLE, GL_FALSE);
glfwWindowHint(GLFW_RESIZABLE, GL_FALSE);
glfwWindowHint(GLFW_REFRESH_RATE , GLFW_DONT_CARE);
glfwWindowHint(GLFW_DOUBLEBUFFER , GL_TRUE);
Window.WIDTH = width;
Window.HEIGHT = height;
m_window = glfwCreateWindow(width, height, title, NULL, NULL);
if(m_window == 0) throw new Exception("GLFW Window creation failed.");
GLFWVidMode vidmode = glfwGetVideoMode(glfwGetPrimaryMonitor());
// Center our window
glfwSetWindowPos(
m_window,
(vidmode.width() - WIDTH) / 2,
(vidmode.height() - HEIGHT) / 2
);
Mouse = window.new Mouse();
Mouse.Create(m_window);
glfwSetWindowSizeCallback(m_window, m_resizeCallBack = new GLFWWindowSizeCallback()
{
@Override
public void invoke(long arg0, int arg1, int arg2)
{
Window.WIDTH = arg1;
Window.HEIGHT = arg2;
}
});
glfwMakeContextCurrent(m_window);
glfwSwapInterval(0);
glfwShowWindow(m_window);
GL.createCapabilities();
int vao = GL30.glGenVertexArrays ();
GL30.glBindVertexArray (vao);
}
catch (Exception e)
{
e.printStackTrace();
System.exit(0);
}
}
项目:warp
文件:WindowManager.java
private GLFWErrorCallback setErrorPrintStream(PrintStream printStream) {
GLFWErrorCallback.createPrint(printStream).set();
return GLFWErrorCallback.createPrint(printStream).set();
}
项目:key-barricade
文件:VoxelTexRenderer.java
/**
* Initialize the renderer.
*/
public void init() {
// Show a status message
System.out.println("Initializing " + VoxelTex.ENGINE_NAME + " renderer...");
// Create and configure the error callback, make sure it was created successfully
glfwSetErrorCallback(errorCallback = GLFWErrorCallback.createPrint(System.err));
if(glfwInit() != GL11.GL_TRUE)
throw new IllegalStateException("Unable to initialize GLFW");
// Set the default window hints
this.window.glDefaultWindowHints();
// Set the visibility and resizability of the window
this.window.setHintVisible(false);
this.window.setHintResizable(true);
// Create the window
this.window.glCreateWindow();
// Initialize the input manager for this window
Input.init(this.window);
// Create the framebuffer size callback
glfwSetFramebufferSizeCallback(this.window.getWindowId(), fbCallback = new GLFWFramebufferSizeCallback() {
@Override
public void invoke(long windowId, int width, int height) {
// Update the window size
if(width > 0 && height > 0)
window.setSize(width, height);
}
});
// Center the window
this.window.centerWindow();
// Create an int buffer for the window
IntBuffer framebufferSize = BufferUtils.createIntBuffer(2);
nglfwGetFramebufferSize(this.window.getWindowId(), memAddress(framebufferSize), memAddress(framebufferSize) + 4);
// Set the window size
this.window.setSize(framebufferSize.get(0), framebufferSize.get(1));
// Make the window context
this.window.glMakeContextCurrent();
// Set the swap interval (V-sync)
glfwSwapInterval(0);
// Show the window
this.window.glShowWindow();
// Center the cursor
Input.centerMouseCursor();
// Create the rendering capabilities, required by LWJGL
GL.createCapabilities();
// Print the OpenGL version
System.out.println("OpenGL " + GL11.glGetString(GL11.GL_VERSION));
// Set the clear color
glClearColor(0.9f, 0.9f, 0.9f, 1.0f);
// Enable depth testing
glEnable(GL_DEPTH_TEST);
// Load the engine shaders
ShaderManager.load();
// Initialize the Time object
Time.init();
// Show a status message
System.out.println(VoxelTex.ENGINE_NAME + " renderer initialized successfully!");
}
项目:Laser-Amazer
文件:Window.java
/**
* Sets the error callback for the game
*/
public static void setCallbacks() {
glfwSetErrorCallback(GLFWErrorCallback.createPrint(System.err));
}
项目:gl3DGE
文件:Window.java
public static void setErrorCallback(GLFWErrorCallback ecb){
glfwSetErrorCallback(ecb);
}
项目:voxeltex-engine
文件:VoxelTexRenderer.java
/**
* Initialize the renderer.
*/
public void init() {
// Show a status message
System.out.println("Initializing " + VoxelTex.ENGINE_NAME + " renderer...");
// Create and configure the error callback, make sure it was created successfully
glfwSetErrorCallback(errorCallback = GLFWErrorCallback.createPrint(System.err));
if(glfwInit() != GL11.GL_TRUE)
throw new IllegalStateException("Unable to initialize GLFW");
// Set the default window hints
this.window.glDefaultWindowHints();
// Set the visibility and resizability of the window
this.window.setHintVisible(false);
this.window.setHintResizable(true);
// Create the window
this.window.glCreateWindow();
// Initialize the input manager for this window
Input.init(this.window);
// Create the framebuffer size callback
glfwSetFramebufferSizeCallback(this.window.getWindowId(), fbCallback = new GLFWFramebufferSizeCallback() {
@Override
public void invoke(long windowId, int width, int height) {
// Update the window size
if(width > 0 && height > 0)
window.setSize(width, height);
}
});
// Center the window
this.window.centerWindow();
// Create an int buffer for the window
IntBuffer framebufferSize = BufferUtils.createIntBuffer(2);
nglfwGetFramebufferSize(this.window.getWindowId(), memAddress(framebufferSize), memAddress(framebufferSize) + 4);
// Set the window size
this.window.setSize(framebufferSize.get(0), framebufferSize.get(1));
// Make the window context
this.window.glMakeContextCurrent();
// Set the swap interval (V-sync)
glfwSwapInterval(0);
// Show the window
this.window.glShowWindow();
// Center the cursor
Input.centerMouseCursor();
// Create the rendering capabilities, required by LWJGL
GL.createCapabilities();
// Print the OpenGL version
System.out.println("OpenGL " + GL11.glGetString(GL11.GL_VERSION));
// Set the clear color
glClearColor(0.9f, 0.9f, 0.9f, 1.0f);
// Enable depth testing
glEnable(GL_DEPTH_TEST);
// Load the engine shaders
ShaderManager.load();
// Initialize the Time object
Time.init();
// Show a status message
System.out.println(VoxelTex.ENGINE_NAME + " renderer initialized successfully!");
}
项目:glow
文件:Display.java
public static void setErrorCallback(GLFWErrorCallback callback) {
GLFW.glfwSetErrorCallback(callback);
errorCallback = callback;
//GLFWErrorCallback.createString((int err,String str) -> LOGGER.warning(""+err+": "+str));
}
项目:glow
文件:Display.java
/** Convenience method to print a message out to System.err when an error occurs */
public static void setErrorCallbackToPrintToSterr() {
GLFWErrorCallback tmp = GLFWErrorCallback.createPrint(System.err);
GLFW.glfwSetErrorCallback(tmp);
errorCallback = tmp;
}
项目:OpenAargon
文件:GameWindow.java
public void init() {
ar = Aargon.getInstance();
graphicsThread = ar.getThreadPool().submit(() -> {
try {
errorCb = GLFWErrorCallback.createPrint();
GLFW.glfwSetErrorCallback(errorCb);
if (GLFW.glfwInit() != GLFW.GLFW_TRUE)
throw new IllegalStateException("Could not initialize GLFW!");
GLFW.glfwDefaultWindowHints();
GLFW.glfwWindowHint(GLFW.GLFW_VISIBLE, GLFW.GLFW_FALSE);
GLFW.glfwWindowHint(GLFW.GLFW_RESIZABLE, GLFW.GLFW_FALSE);
winId = GLFW.glfwCreateWindow(DEF_WIDTH, DEF_HEIGHT, "OpenAargon", MemoryUtil.NULL, MemoryUtil.NULL);
if (winId == MemoryUtil.NULL)
throw new IllegalStateException("Could not initialize window!");
GLFW.glfwSetKeyCallback(winId, ar.getInputManager().getKeyCallback());
GLFW.glfwSetMouseButtonCallback(winId, ar.getInputManager().getMouseCallback());
GLFW.glfwSetCursorPosCallback(winId, ar.getInputManager().getCursorCallback());
windowSizeCb = new GLFWWindowSizeCallback() {
@Override
public void invoke(long id, int w, int h) {
windowSize.setX(w).setY(h);
windowResized.set(true);
}
};
GLFW.glfwSetWindowSizeCallback(winId, windowSizeCb);
GLFWVidMode vidMode = GLFW.glfwGetVideoMode(GLFW.glfwGetPrimaryMonitor());
GLFW.glfwSetWindowPos(winId, (vidMode.width() - DEF_WIDTH) / 2, (vidMode.height() - DEF_HEIGHT) / 2);
GLFW.glfwMakeContextCurrent(winId);
GLFW.glfwSwapInterval(1);
GL.createCapabilities();
vaoId = GL30.glGenVertexArrays();
GL30.glBindVertexArray(vaoId);
vboId = GL15.glGenBuffers();
GL30.glBindVertexArray(0);
initShaders();
GL11.glClearColor(0F, 0F, 0F, 1F);
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
GL11.glEnable(GL11.GL_LINE_SMOOTH);
GL11.glHint(GL11.GL_LINE_SMOOTH_HINT, GL11.GL_NICEST);
GL11.glViewport(0, 0, windowSize.getX(), windowSize.getY());
while (GLFW.glfwWindowShouldClose(winId) == GLFW.GLFW_FALSE) {
if (windowResized.getAndSet(false))
GL11.glViewport(0, 0, windowSize.getX(), windowSize.getY());
GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);
ar.bufferRenders(WORLD_WIDTH, WORLD_HEIGHT, (float)windowSize.getX() / (float)windowSize.getY());
render();
GLFW.glfwSwapBuffers(winId);
GLFW.glfwPollEvents();
}
} catch (Exception e) {
Aargon.getLogger().error("Graphics thread errored!");
e.printStackTrace();
} finally {
destruct();
new Thread(Main::exitRequested, "Exit Thread").run();
}
});
}
项目:ether
文件:GLFWPlatform.java
protected GLFWPlatform(IImageSupport imageSupport) {
this.errorCallback = GLFWErrorCallback.createPrint(System.err);
this.imageSupport = imageSupport;
this.mainThread = Thread.currentThread();
}
项目:Mavkit
文件:Display.java
@RequiresNonNull("this.mav")
@EnsuresNonNull("this.canvas")
@UIEffect
private void finishInitialization(boolean es) {
GLFWErrorCallback ecb = GLFWErrorCallback.createPrint(System.err);
mav.keepAlive(ecb);
glfwSetErrorCallback(ecb);
GLFWWindowSizeCallback scb = GLFWWindowSizeCallback.create(this::updateWindowSize);
mav.keepAlive(scb);
glfwSetWindowSizeCallback(window, scb);
updateWindowSize(window, DEFAULT_WIDTH, DEFAULT_HEIGHT);
String version = getGLVersion(es);
int major = version.charAt(0)-'0';
int minor = version.charAt(2)-'0';
if (es) {
if (major >= 3) {
log.info("Using OpenGL ES 3 rendering");
canvas = new NanoVGGLES3Canvas(mav);
} else if (major >= 2) {
log.info("Using OpenGL ES 2 rendering");
canvas = new NanoVGGLES2Canvas(mav);
} else {
throw new Panic("panic.noSuitableContext", I18n.get("panic.noSuitableContext.onlyGlEs", version));
}
} else {
if (major >= 3) {
log.info("Using OpenGL 3 rendering");
canvas = new NanoVGGL3Canvas(mav);
} else if (major >= 2) {
log.info("Using OpenGL 2 rendering");
canvas = new NanoVGGL2Canvas(mav);
} else {
throw new Panic("panic.noSuitableContext", I18n.get("panic.noSuitableContext.onlyGl", version));
}
}
glfwShowWindow(window);
if (glfwExtensionSupported("WGL_EXT_swap_control_tear") || glfwExtensionSupported("GLX_EXT_swap_control_tear")) {
log.info("Using tearing prevention");
glfwSwapInterval(-1);
} else {
glfwSwapInterval(1);
}
}
项目:lwjglbook
文件:Window.java
public void init() {
// Setup an error callback. The default implementation
// will print the error message in System.err.
GLFWErrorCallback.createPrint(System.err).set();
// Initialize GLFW. Most GLFW functions will not work before doing this.
if (!glfwInit()) {
throw new IllegalStateException("Unable to initialize GLFW");
}
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
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
// Create the window
windowHandle = glfwCreateWindow(width, height, title, NULL, NULL);
if (windowHandle == NULL) {
throw new RuntimeException("Failed to create the GLFW window");
}
// Setup resize callback
glfwSetFramebufferSizeCallback(windowHandle, (window, width, height) -> {
this.width = width;
this.height = height;
this.setResized(true);
});
// Setup a key callback. It will be called every time a key is pressed, repeated or released.
glfwSetKeyCallback(windowHandle, (window, key, scancode, action, mods) -> {
if (key == GLFW_KEY_ESCAPE && action == GLFW_RELEASE) {
glfwSetWindowShouldClose(window, true); // We will detect this in the rendering loop
}
});
// Get the resolution of the primary monitor
GLFWVidMode vidmode = glfwGetVideoMode(glfwGetPrimaryMonitor());
// Center our window
glfwSetWindowPos(
windowHandle,
(vidmode.width() - width) / 2,
(vidmode.height() - height) / 2
);
// Make the OpenGL context current
glfwMakeContextCurrent(windowHandle);
if (isvSync()) {
// Enable v-sync
glfwSwapInterval(1);
}
// Make the window visible
glfwShowWindow(windowHandle);
GL.createCapabilities();
// Set the clear color
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
glEnable(GL_DEPTH_TEST);
}
项目:lwjglbook
文件:Window.java
public void init() {
// Setup an error callback. The default implementation
// will print the error message in System.err.
GLFWErrorCallback.createPrint(System.err).set();
// Initialize GLFW. Most GLFW functions will not work before doing this.
if (!glfwInit()) {
throw new IllegalStateException("Unable to initialize GLFW");
}
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
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
// Create the window
windowHandle = glfwCreateWindow(width, height, title, NULL, NULL);
if (windowHandle == NULL) {
throw new RuntimeException("Failed to create the GLFW window");
}
// Setup resize callback
glfwSetFramebufferSizeCallback(windowHandle, (window, width, height) -> {
this.width = width;
this.height = height;
this.setResized(true);
});
// Setup a key callback. It will be called every time a key is pressed, repeated or released.
glfwSetKeyCallback(windowHandle, (window, key, scancode, action, mods) -> {
if (key == GLFW_KEY_ESCAPE && action == GLFW_RELEASE) {
glfwSetWindowShouldClose(window, true); // We will detect this in the rendering loop
}
});
// Get the resolution of the primary monitor
GLFWVidMode vidmode = glfwGetVideoMode(glfwGetPrimaryMonitor());
// Center our window
glfwSetWindowPos(
windowHandle,
(vidmode.width() - width) / 2,
(vidmode.height() - height) / 2
);
// Make the OpenGL context current
glfwMakeContextCurrent(windowHandle);
if (isvSync()) {
// Enable v-sync
glfwSwapInterval(1);
}
// Make the window visible
glfwShowWindow(windowHandle);
GL.createCapabilities();
// Set the clear color
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
glEnable(GL_DEPTH_TEST);
//glPolygonMode( GL_FRONT_AND_BACK, GL_LINE );
// Support for transparencies
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_CULL_FACE);
glCullFace(GL_BACK);
}
项目:lwjglbook
文件:Window.java
public void init() {
// Setup an error callback. The default implementation
// will print the error message in System.err.
GLFWErrorCallback.createPrint(System.err).set();
// Initialize GLFW. Most GLFW functions will not work before doing this.
if (!glfwInit()) {
throw new IllegalStateException("Unable to initialize GLFW");
}
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
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
// Create the window
windowHandle = glfwCreateWindow(width, height, title, NULL, NULL);
if (windowHandle == NULL) {
throw new RuntimeException("Failed to create the GLFW window");
}
// Setup resize callback
glfwSetFramebufferSizeCallback(windowHandle, (window, width, height) -> {
this.width = width;
this.height = height;
this.setResized(true);
});
// Setup a key callback. It will be called every time a key is pressed, repeated or released.
glfwSetKeyCallback(windowHandle, (window, key, scancode, action, mods) -> {
if (key == GLFW_KEY_ESCAPE && action == GLFW_RELEASE) {
glfwSetWindowShouldClose(window, true); // We will detect this in the rendering loop
}
});
// Get the resolution of the primary monitor
GLFWVidMode vidmode = glfwGetVideoMode(glfwGetPrimaryMonitor());
// Center our window
glfwSetWindowPos(
windowHandle,
(vidmode.width() - width) / 2,
(vidmode.height() - height) / 2
);
// Make the OpenGL context current
glfwMakeContextCurrent(windowHandle);
if (isvSync()) {
// Enable v-sync
glfwSwapInterval(1);
}
// Make the window visible
glfwShowWindow(windowHandle);
GL.createCapabilities();
// Set the clear color
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
glEnable(GL_DEPTH_TEST);
//glPolygonMode( GL_FRONT_AND_BACK, GL_LINE );
// Support for transparencies
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
}
项目:lwjglbook
文件:Window.java
public void init() {
// Setup an error callback. The default implementation
// will print the error message in System.err.
GLFWErrorCallback.createPrint(System.err).set();
// Initialize GLFW. Most GLFW functions will not work before doing this.
if (!glfwInit()) {
throw new IllegalStateException("Unable to initialize GLFW");
}
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
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
// Create the window
windowHandle = glfwCreateWindow(width, height, title, NULL, NULL);
if (windowHandle == NULL) {
throw new RuntimeException("Failed to create the GLFW window");
}
// Setup resize callback
glfwSetFramebufferSizeCallback(windowHandle, (window, width, height) -> {
this.width = width;
this.height = height;
this.setResized(true);
});
// Setup a key callback. It will be called every time a key is pressed, repeated or released.
glfwSetKeyCallback(windowHandle, (window, key, scancode, action, mods) -> {
if (key == GLFW_KEY_ESCAPE && action == GLFW_RELEASE) {
glfwSetWindowShouldClose(window, true); // We will detect this in the rendering loop
}
});
// Get the resolution of the primary monitor
GLFWVidMode vidmode = glfwGetVideoMode(glfwGetPrimaryMonitor());
// Center our window
glfwSetWindowPos(
windowHandle,
(vidmode.width() - width) / 2,
(vidmode.height() - height) / 2
);
// Make the OpenGL context current
glfwMakeContextCurrent(windowHandle);
if (isvSync()) {
// Enable v-sync
glfwSwapInterval(1);
}
// Make the window visible
glfwShowWindow(windowHandle);
GL.createCapabilities();
// Set the clear color
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
glEnable(GL_DEPTH_TEST);
}
项目:lwjglbook
文件:Window.java
public void init() {
// Setup an error callback. The default implementation
// will print the error message in System.err.
GLFWErrorCallback.createPrint(System.err).set();
// Initialize GLFW. Most GLFW functions will not work before doing this.
if (!glfwInit()) {
throw new IllegalStateException("Unable to initialize GLFW");
}
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
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
// Create the window
windowHandle = glfwCreateWindow(width, height, title, NULL, NULL);
if (windowHandle == NULL) {
throw new RuntimeException("Failed to create the GLFW window");
}
// Setup resize callback
glfwSetFramebufferSizeCallback(windowHandle, (window, width, height) -> {
this.width = width;
this.height = height;
this.setResized(true);
});
// Setup a key callback. It will be called every time a key is pressed, repeated or released.
glfwSetKeyCallback(windowHandle, (window, key, scancode, action, mods) -> {
if (key == GLFW_KEY_ESCAPE && action == GLFW_RELEASE) {
glfwSetWindowShouldClose(window, true); // We will detect this in the rendering loop
}
});
// Get the resolution of the primary monitor
GLFWVidMode vidmode = glfwGetVideoMode(glfwGetPrimaryMonitor());
// Center our window
glfwSetWindowPos(
windowHandle,
(vidmode.width() - width) / 2,
(vidmode.height() - height) / 2
);
// Make the OpenGL context current
glfwMakeContextCurrent(windowHandle);
if (isvSync()) {
// Enable v-sync
glfwSwapInterval(1);
}
// Make the window visible
glfwShowWindow(windowHandle);
GL.createCapabilities();
// Set the clear color
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
glEnable(GL_DEPTH_TEST);
}
项目:lwjglbook
文件:Window.java
public void init() {
// Setup an error callback. The default implementation
// will print the error message in System.err.
GLFWErrorCallback.createPrint(System.err).set();
// Initialize GLFW. Most GLFW functions will not work before doing this.
if (!glfwInit()) {
throw new IllegalStateException("Unable to initialize GLFW");
}
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
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
// Create the window
windowHandle = glfwCreateWindow(width, height, title, NULL, NULL);
if (windowHandle == NULL) {
throw new RuntimeException("Failed to create the GLFW window");
}
// Setup resize callback
glfwSetFramebufferSizeCallback(windowHandle, (window, width, height) -> {
this.width = width;
this.height = height;
this.setResized(true);
});
// Setup a key callback. It will be called every time a key is pressed, repeated or released.
glfwSetKeyCallback(windowHandle, (window, key, scancode, action, mods) -> {
if (key == GLFW_KEY_ESCAPE && action == GLFW_RELEASE) {
glfwSetWindowShouldClose(window, true); // We will detect this in the rendering loop
}
});
// Get the resolution of the primary monitor
GLFWVidMode vidmode = glfwGetVideoMode(glfwGetPrimaryMonitor());
// Center our window
glfwSetWindowPos(
windowHandle,
(vidmode.width() - width) / 2,
(vidmode.height() - height) / 2
);
// Make the OpenGL context current
glfwMakeContextCurrent(windowHandle);
if (isvSync()) {
// Enable v-sync
glfwSwapInterval(1);
}
// Make the window visible
glfwShowWindow(windowHandle);
GL.createCapabilities();
// Set the clear color
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
glEnable(GL_DEPTH_TEST);
}