All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.lwjgl.glfw.GLFWNativeWGL Maven / Gradle / Ivy

Go to download

An multi-platform library for OpenGL, OpenGL ES and Vulkan development on the desktop. It provides a simple API for creating windows, contexts and surfaces, receiving input and events.

There is a newer version: 3.3.4
Show newest version
/*
 * Copyright LWJGL. All rights reserved.
 * License terms: https://www.lwjgl.org/license
 * MACHINE GENERATED FILE, DO NOT EDIT
 */
package org.lwjgl.glfw;

import org.lwjgl.system.*;

import static org.lwjgl.system.APIUtil.*;
import static org.lwjgl.system.Checks.*;
import static org.lwjgl.system.JNI.*;

import javax.annotation.*;
import org.lwjgl.opengl.GL;

import static org.lwjgl.system.MemoryUtil.*;

/** Native bindings to the GLFW library's WGL native access functions. */
public class GLFWNativeWGL {

    /** Contains the function pointers loaded from {@code GLFW.getLibrary()}. */
    public static final class Functions {

        private Functions() {}

        /** Function address. */
        public static final long
            GetWGLContext = apiGetFunctionAddress(GLFW.getLibrary(), "glfwGetWGLContext");

    }

    protected GLFWNativeWGL() {
        throw new UnsupportedOperationException();
    }

    // --- [ glfwGetWGLContext ] ---

    /**
     * Returns the {@code HGLRC} of the specified window.
     * 
     * 

The {@code HDC} associated with the window can be queried with the * GetDC function. * * HDC dc = GetDC(glfwGetWin32Window(window)); * This DC is private and does not need to be released.

* *

Note: This function may be called from any thread. Access is not synchronized.

* * @param window the GLFW window * * @return the {@code HGLRC} of the specified window, or {@code NULL} if an error occurred. * *

Possible errors include {@link GLFW#GLFW_NO_WINDOW_CONTEXT NO_WINDOW_CONTEXT} and {@link GLFW#GLFW_NOT_INITIALIZED NOT_INITIALIZED}.

* * @since version 3.0 */ @NativeType("HGLRC") public static long glfwGetWGLContext(@NativeType("GLFWwindow *") long window) { long __functionAddress = Functions.GetWGLContext; if (CHECKS) { check(window); } return invokePP(window, __functionAddress); } /** * Calls {@link #setPath(String)} with the path of the specified {@link SharedLibrary}. * *

Example usage: GLFWNativeWGL.setPath(GL.getFunctionProvider());

* * @param sharedLibrary a {@code FunctionProvider} instance that will be cast to {@code SharedLibrary} */ public static void setPath(FunctionProvider sharedLibrary) { if (!(sharedLibrary instanceof SharedLibrary)) { apiLog("GLFW OpenGL path override not set: Function provider is not a shared library."); return; } String path = ((SharedLibrary)sharedLibrary).getPath(); if (path == null) { apiLog("GLFW OpenGL path override not set: Could not resolve the shared library path."); return; } setPath(path); } /** * Overrides the OpenGL shared library that GLFW loads internally. * *

This is useful when there's a mismatch between the shared libraries loaded by LWJGL and GLFW.

* *

This method must be called before GLFW initializes OpenGL. The override is available only in the default GLFW build bundled with LWJGL. Using the * override with a custom GLFW build will produce a warning in {@code DEBUG} mode (but not an error).

* * @param path the OpenGL shared library path, or {@code null} to remove the override. */ public static void setPath(@Nullable String path) { long override = GLFW.getLibrary().getFunctionAddress("_glfw_opengl_library"); if (override == NULL) { apiLog("GLFW OpenGL path override not set: Could not resolve override symbol."); return; } long a = memGetAddress(override); if (a != NULL) { nmemFree(a); } memPutAddress(override, path == null ? NULL : memAddress(memUTF16(path))); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy