GlDepthFunc: Difference between revisions

From QB64 Phoenix Edition Wiki
Jump to navigation Jump to search
(Created page with "'''_glDepthFunc:''' specify the value used for depth buffer comparisons {{PageSyntax}} :: SUB _glDepthFunc (BYVAL func AS _UNSIGNED LONG) :: void '''_glDepthFunc'''(GLenum {{Parameter|func}}); ; func : Specifies the depth comparison function. Symbolic constants {{KW|_GL_NEVER}}, {{KW|_GL_LESS}}, {{KW|_GL_EQUAL}}, {{KW|_GL_LEQUAL}}, {{KW|_GL_GREATER}}, {{KW|_GL_NOTEQUAL}}, {{KW|_GL_GEQUAL}}, and {{KW|_GL_ALWAYS}} are accepted. The initial value is {{KW|_GL_LESS}}....")
 
No edit summary
Line 1: Line 1:
'''_glDepthFunc:''' specify the value used for depth buffer comparisons
{{DISPLAYTITLE:_glDepthFunc}}
The '''_glDepthFunc''' statement specifies the value used for depth-buffer comparisons.




{{PageSyntax}}
{{PageSyntax}}
: '''_glDepthFunc''' GLenum {{Parameter|func}}


::  SUB _glDepthFunc (BYVAL func AS _UNSIGNED LONG)
::  void '''_glDepthFunc'''(GLenum {{Parameter|func}});


 
{{PageParameters}}
; func
* OpenGL is using its own set of variable types to describe its command parameters.
: Specifies the depth comparison function. Symbolic constants {{KW|_GL_NEVER}}, {{KW|_GL_LESS}}, {{KW|_GL_EQUAL}}, {{KW|_GL_LEQUAL}}, {{KW|_GL_GREATER}}, {{KW|_GL_NOTEQUAL}}, {{KW|_GL_GEQUAL}}, and {{KW|_GL_ALWAYS}} are accepted. The initial value is {{KW|_GL_LESS}}.
* Use the following table to find the respective QB64 [[Variable Types]].
{{TextStart}}
  '''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
{{TextEnd}}




{{PageDescription}}
{{PageDescription}}
 
* OpenGL's documentation is available in several places, so we won't reproduce it here for another time.
'''_glDepthFunc''' specifies the function used to compare each incoming pixel depth value with the depth value present in the depth buffer. The comparison is performed only if depth testing is enabled. (See {{KW|_glEnable}} and {{KW|_glDisable}} of {{KW|_GL_DEPTH_TEST}}.)
* The full description for this command can be found at [https://docs.microsoft.com/en-us/windows/win32/opengl/gldepthfunc Microsoft Docs] and is also valid for QB64 usage.
 
{{Parameter|func}} specifies the conditions under which the pixel will be drawn. The comparison functions are as follows:
 
; {{KW|_GL_NEVER}}
: Never passes.
; {{KW|_GL_LESS}}
: Passes if the incoming depth value is less than the stored depth value.
; {{KW|_GL_EQUAL}}
: Passes if the incoming depth value is equal to the stored depth value.
; {{KW|_GL_LEQUAL}}
: Passes if the incoming depth value is less than or equal to the stored depth value.
; {{KW|_GL_GREATER}}
: Passes if the incoming depth value is greater than the stored depth value.
; {{KW|_GL_NOTEQUAL}}
: Passes if the incoming depth value is not equal to the stored depth value.
; {{KW|_GL_GEQUAL}}
: Passes if the incoming depth value is greater than or equal to the stored depth value.
; {{KW|_GL_ALWAYS}}
: Always passes.
The initial value of {{Parameter|func}} is {{KW|_GL_LESS}}. Initially, depth testing is disabled. If depth testing is disabled or if no depth buffer exists, it is as if the depth test always passes.
 
 
{{PageNotes}}
 
Even if the depth buffer exists and the depth mask is non-zero, the depth buffer is not updated if the depth test is disabled. In order to unconditionally write to the depth buffer, the depth test should be enabled and set to {{KW|_GL_ALWAYS}}.
 
 
{{PageErrors}}
 
{{KW|_GL_INVALID_ENUM}} is generated if {{Parameter|func}} is not an accepted value.
 
 
{{PageUseWith}}
 
{{KW|_glGet}} with argument {{KW|_GL_DEPTH_FUNC}}
 
{{KW|_glIsEnabled}} with argument {{KW|_GL_DEPTH_TEST}}




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


[[_GL|SUB _GL]]
{{KW|_glEnable|(GL_DEPTH_TEST)}}, {{KW|_glDepthRange}}, {{KW|_glPolygonOffset}}


{{PageNavigation}}


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

Revision as of 16:42, 14 July 2022

The _glDepthFunc statement specifies the value used for depth-buffer comparisons.


Syntax

_glDepthFunc GLenum func


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