GlDepthRange: Difference between revisions

From QB64 Phoenix Edition Wiki
Jump to navigation Jump to search
(Created page with "'''_glDepthRange:''' specify mapping of depth values from normalized device coordinates to window coordinates {{PageSyntax}} :: SUB _glDepthRange (BYVAL zNear AS DOUBLE, BYVAL zFar AS DOUBLE) :: void '''_glDepthRange'''(GLdouble {{Parameter|nearVal}}, GLdouble {{Parameter|farVal}}); :: void '''_glDepthRangef'''(GLfloat {{Parameter|nearVal}}, GLfloat {{Parameter|farVal}}); ; nearVal : Specifies the mapping of the near clipping plane to window coordinates. The init...")
 
No edit summary
Line 1: Line 1:
'''_glDepthRange:''' specify mapping of depth values from normalized device coordinates to window coordinates
{{DISPLAYTITLE:_glDepthRange}}
The '''_glDepthRange''' statement specifies the mapping of z values from normalized device coordinates to window coordinates.




{{PageSyntax}}
{{PageSyntax}}
: '''_glDepthRange''' GLclampd {{Parameter|zNear}}, GLclampd {{Parameter|zFar}}


::  SUB _glDepthRange (BYVAL zNear AS DOUBLE, BYVAL zFar AS DOUBLE)


::  void '''_glDepthRange'''(GLdouble {{Parameter|nearVal}}, GLdouble {{Parameter|farVal}});
{{PageParameters}}
::  void '''_glDepthRangef'''(GLfloat {{Parameter|nearVal}}, GLfloat {{Parameter|farVal}});
* OpenGL is using its own set of variable types to describe its command parameters.
 
* Use the following table to find the respective QB64 [[Variable Types]].
; nearVal
{{TextStart}}
: Specifies the mapping of the near clipping plane to window coordinates. The initial value is 0.
  '''OpenGL'''    |    '''C/C++'''        |        '''QB64'''
; farVal
------------+------------------+----------------------
: Specifies the mapping of the far clipping plane to window coordinates. The initial value is 1.
GLenum      |  unsigned int    |  [[_UNSIGNED]] [[LONG]]
GLboolean  |  unsigned char  |  [[_UNSIGNED]] [[_BYTE]]
GLbitfield  |  unsigned int    |  [[_UNSIGNED]] [[LONG]]
GLbyte      |  signed char    |  [[_BYTE]]
GLshort    |  short          |  [[INTEGER]]
GLint      |  int            |  [[LONG]]
GLsizei    |  int            |  [[LONG]]
GLubyte    |  unsigned char  |  [[_UNSIGNED]] [[_BYTE]]
GLushort    |  unsigned short  |  [[_UNSIGNED]] [[INTEGER]]
GLuint      |  unsigned int    |  [[_UNSIGNED]] [[LONG]]
GLfloat     | float          | [[SINGLE]]
GLclampf    |  float          |  [[SINGLE]]
GLdouble    |  double          |  [[DOUBLE]]
GLclampd    |  double          |  [[DOUBLE]]
GLvoid      |  void            |  no parameters used
{{TextEnd}}




{{PageDescription}}
{{PageDescription}}
 
* OpenGL's documentation is available in several places, so we won't reproduce it here for another time.
After clipping and division by ''w'', depth coordinates range from -1 to 1, corresponding to the near and far clipping planes. '''_glDepthRange''' specifies a linear mapping of the normalized depth coordinates in this range to window depth coordinates. Regardless of the actual depth buffer implementation, window coordinate depth values are treated as though they range from 0 through 1 (like color components). Thus, the values accepted by '''_glDepthRange''' are both clamped to this range before they are accepted.
* The full description for this command can be found at [https://docs.microsoft.com/en-us/windows/win32/opengl/gldepthrange Microsoft Docs] and is also valid for QB64 usage.
 
The setting of (0,1) maps the near plane to 0 and the far plane to 1. With this mapping, the depth buffer range is fully utilized.
 
 
{{PageNotes}}
 
It is not necessary that {{Parameter|nearVal}} be less than {{Parameter|farVal}}. Reverse mappings such as ''nearVal'' = 1, and ''farVal'' = 0 are acceptable.
 
The type of the {{Parameter|nearVal}} and {{Parameter|farVal}} parameters was changed from GLclampf to GLfloat for '''_glDepthRangef''' and from GLclampd to GLdouble for '''_glDepthRange'''. This change is transparent to user code.
 
 
{{PageUseWith}}
 
{{KW|_glGet}} with argument {{KW|_GL_DEPTH_RANGE}}




{{PageSeeAlso}}
{{PageSeeAlso}}
* [[_GL|SUB _GL]]


[[_GL|SUB _GL]]
{{KW|_glDepthFunc}}, {{KW|_glDepthRangeArray}}, {{KW|_glDepthRangeIndexed}}, {{KW|_glPolygonOffset}}, {{KW|_glViewport}}


{{PageNavigation}}


{{PageCopyright}}
[[Category:Final]]

Revision as of 17:07, 14 July 2022

The _glDepthRange statement specifies the mapping of z values from normalized device coordinates to window coordinates.


Syntax

_glDepthRange GLclampd zNear, GLclampd zFar


Parameters

  • OpenGL is using its own set of variable types to describe its command parameters.
  • Use the following table to find the respective QB64 Variable Types.
  OpenGL     |     C/C++        |        QB64
 ------------+------------------+----------------------
 GLenum      |  unsigned int    |  _UNSIGNED LONG
 GLboolean   |  unsigned char   |  _UNSIGNED _BYTE
 GLbitfield  |  unsigned int    |  _UNSIGNED LONG
 GLbyte      |  signed char     |  _BYTE
 GLshort     |  short           |  INTEGER
 GLint       |  int             |  LONG
 GLsizei     |  int             |  LONG
 GLubyte     |  unsigned char   |  _UNSIGNED _BYTE
 GLushort    |  unsigned short  |  _UNSIGNED INTEGER
 GLuint      |  unsigned int    |  _UNSIGNED LONG
 GLfloat     |  float           |  SINGLE
 GLclampf    |  float           |  SINGLE
 GLdouble    |  double          |  DOUBLE
 GLclampd    |  double          |  DOUBLE
 GLvoid      |  void            |  no parameters used


Description

  • OpenGL's documentation is available in several places, so we won't reproduce it here for another time.
  • The full description for this command can be found at Microsoft Docs and is also valid for QB64 usage.


See also



Navigation:
Main Page with Articles and Tutorials
Keyword Reference - Alphabetical
Keyword Reference - By usage
Report a broken link