a
    i‚jÍ  ã                   @   s`   d Z ddlmZmZmZ ddlmZmZ ddlZddlm	Z	m
Z
 ddlT ddlmZ dd	„ ZdS )
aó  OpenGL extension NV.texgen_emboss

This module customises the behaviour of the 
OpenGL.raw.GL.NV.texgen_emboss to provide a more 
Python-friendly API

Overview (from the spec)
	
	This extension provides a new texture coordinate generation mode
	suitable for multitexture-based embossing (or bump mapping) effects.
	
	Given two texture units, this extension generates the texture
	coordinates of a second texture unit (an odd-numbered texture unit)
	as a perturbation of a first texture unit (an even-numbered texture
	unit one less than the second texture unit).  The perturbation is
	based on the normal, tangent, and light vectors.  The normal vector
	is supplied by glNormal; the light vector is supplied as a direction
	vector to a specified OpenGL light's position; and the tanget
	vector is supplied by the second texture unit's current texture
	coordinate.  The perturbation is also scaled by program-supplied
	scaling constants.
	
	If both texture units are bound to the same texture representing a
	height field, by subtracting the difference between the resulting two
	filtered texels, programs can achieve a per-pixel embossing effect.

The official definition of this extension is available here:
http://www.opengl.org/registry/specs/NV/texgen_emboss.txt
é    )ÚplatformÚconstantÚarrays)Ú
extensionsÚwrapperN)Ú_typesÚ_glgets)Ú*)Ú_EXTENSION_NAMEc                  C   s   ddl m}  |  t¡S )z=Return boolean indicating whether this extension is availabler   ©r   )ÚOpenGLr   ZhasGLExtensionr
   r   © r   úX/home/ghrups/robot-bench/.venv/lib/python3.9/site-packages/OpenGL/GL/NV/texgen_emboss.pyÚglInitTexgenEmbossNV%   s    r   )Ú__doc__r   r   r   r   r   r   ÚctypesZOpenGL.raw.GLr   r   ZOpenGL.raw.GL.NV.texgen_embossr
   r   r   r   r   r   Ú<module>   s   