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

org.lwjgl.opengl.NVPointSprite Maven / Gradle / Ivy

Go to download

The most widely adopted 2D and 3D graphics API in the industry, bringing thousands of applications to a wide variety of computer platforms.

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.opengl;

import java.nio.*;

import org.lwjgl.system.*;

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

/**
 * Native bindings to the NV_point_sprite extension.
 * 
 * 

Applications such as particle systems usually must use OpenGL quads rather than points to render their geometry, since they would like to use a * custom-drawn texture for each particle, rather than the traditional OpenGL round antialiased points, and each fragment in a point has the same texture * coordinates as every other fragment.

* *

Unfortunately, specifying the geometry for these quads can be quite expensive, since it quadruples the amount of geometry required, and it may also * require the application to do extra processing to compute the location of each vertex.

* *

The goal of this extension is to allow such apps to use points rather than quads. When {@link #GL_POINT_SPRITE_NV POINT_SPRITE_NV} is enabled, the state of point antialiasing * is ignored. For each texture unit, the app can then specify whether to replace the existing texture coordinates with point sprite texture coordinates, * which are interpolated across the point. Finally, the app can set a global parameter for the way to generate the R coordinate for point sprites; the R * coordinate can either be zero, the input S coordinate, or the input R coordinate. This allows applications to use a 3D texture to represent a point * sprite that goes through an animation, with filtering between frames, for example.

* *

Requires {@link EXTPointParameters EXT_point_parameters}.

*/ public class NVPointSprite { /** * Accepted by the {@code cap} parameter of Enable, Disable, and IsEnabled, by the {@code pname} parameter of GetBooleanv, GetIntegerv, GetFloatv, and * GetDoublev, and by the {@code target} parameter of TexEnvi, TexEnviv, TexEnvf, TexEnvfv, GetTexEnviv, and GetTexEnvfv. */ public static final int GL_POINT_SPRITE_NV = 0x8861; /** * When the {@code target} parameter of TexEnvf, TexEnvfv, TexEnvi, TexEnviv, GetTexEnvfv, or GetTexEnviv is POINT_SPRITE_NV, then the value of * {@code pname} may be. */ public static final int GL_COORD_REPLACE_NV = 0x8862; /** * Accepted by the {@code pname} parameter of PointParameteriNV, PointParameterfEXT, PointParameterivNV, PointParameterfvEXT, GetBooleanv, GetIntegerv, * GetFloatv, and GetDoublev. */ public static final int GL_POINT_SPRITE_R_MODE_NV = 0x8863; static { GL.initialize(); } protected NVPointSprite() { throw new UnsupportedOperationException(); } static boolean isAvailable(GLCapabilities caps) { return checkFunctions( caps.glPointParameteriNV, caps.glPointParameterivNV ); } // --- [ glPointParameteriNV ] --- public static native void glPointParameteriNV(@NativeType("GLenum") int pname, @NativeType("GLint") int param); // --- [ glPointParameterivNV ] --- public static native void nglPointParameterivNV(int pname, long params); public static void glPointParameterivNV(@NativeType("GLenum") int pname, @NativeType("GLint const *") IntBuffer params) { if (CHECKS) { check(params, 1); } nglPointParameterivNV(pname, memAddress(params)); } /** Array version of: {@link #glPointParameterivNV PointParameterivNV} */ public static void glPointParameterivNV(@NativeType("GLenum") int pname, @NativeType("GLint const *") int[] params) { long __functionAddress = GL.getICD().glPointParameterivNV; if (CHECKS) { check(__functionAddress); check(params, 1); } callPV(__functionAddress, pname, params); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy