Opengl4.5 中文手冊—G


索引

      B     C      D     E     F     G  

      I       L     M     N

      P     Q      R     S     T   

U       V     W 

 

 

G

本部分含很多get函數,大部分用於獲取當前設置的狀態值,基本上不會用到

glGenBuffers 2.0

GLsizei n,

      GLuint * buffers

生成n個未使用的緩沖區對象名稱,之后可通過glBindBuffer與緩沖區對象關聯。

 

glGenerateMipmap 3.0

GLenum target :指定紋理對象目標,可以為:GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_TEXTURE_1D_ARRAY, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_CUBE_MAP, or GL_TEXTURE_CUBE_MAP_ARRAY

 

glGenerateTextureMipmap (         GLuint texture) 4.5+  直接指定紋理對象

glGenFramebuffers 3.0

GLsizei n,

      GLuint *ids

 生成n個幀緩沖區對象名稱,可通過glBindFramebuffer綁定

glGenProgramPipelines 4.1

GLsizei n,

      GLuint *pipelines

生成n個管線對象名稱,可通過glBindProgramPipeline綁定

glGenQueries 2.0

GLsizei n,

      GLuint * ids

生成n個查詢對象名稱,可通過glBeginQuery綁定

glGenRenderbuffers 3.0

GLsizei n,

      GLuint *renderbuffers

生成n個渲染緩沖區名稱,可通過glBindRenderbuffer(GL_RENDERBUFFER, id)綁定

glGenSamplers 3.2

生成n個紋理采樣器對象名稱

glGenTextures 2.0

生成n個紋理對象名稱

glGenTransformFeedbacks 4.0

生成n個變換反饋對象名稱

glGenVertexArrays 3.0

生成n個頂點數組對象名稱

glGet

獲取opengl所有狀態設置和功能指標數據

glGetFloat/Integer/Boolean/Doublev(GLenum pname,         GLfloat… * data)

…i_v(GLenum target,  GLuint index,         GLboolean * data) 指定索引

…Integer64v 64位整數

 

當函數類型與對應查詢狀態不匹配時,數字轉換為bool時僅0為GL_FALSE, bool轉數字時對應值GL_TRUE/GL_FALSE。 顏色或者法線轉換為整數時,1.0線性映射為整數最大值,-1.0線性映射為負最大值

 

各枚舉常量:

GL_ACTIVE_TEXTURE 當前活動的紋理單元,初始值為GL_TEXTURE0, 可通過glActiveTexture設置

 

GL_ALIASED_LINE_WIDTH_RANGE 反鋸齒線寬度范圍

 

GL_ARRAY_BUFFER_BINDING   當前通過glBindBuffer綁定到GL_ARRAY_BUFFER的緩沖區對象名

GL_DISPATCH_INDIRECT_BUFFER_BINDING  當前綁定的GL_DISPATCH_INDIRECT_BUFFER

GL_ELEMENT_ARRAY_BUFFER_BINDING

GL_PIXEL_PACK_BUFFER_BINDING

GL_PIXEL_UNPACK_BUFFER_BINDING

GL_TEXTURE_BINDING_BUFFER

GL_TRANSFORM_FEEDBACK_BUFFER_BINDING

GL_UNIFORM_BUFFER_BINDING

 

GL_VERTEX_ARRAY_BINDING

GL_RENDERBUFFER_BINDING

GL_SAMPLER_BINDING

GL_TEXTURE_BINDING_1D

GL_TEXTURE_BINDING_1D_ARRAY

GL_TEXTURE_BINDING_2D

GL_TEXTURE_BINDING_2D_ARRAY

GL_TEXTURE_BINDING_2D_MULTISAMPLE

GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY

GL_TEXTURE_BINDING_3D

GL_TEXTURE_BINDING_BUFFER

GL_TEXTURE_BINDING_CUBE_MAP

GL_TEXTURE_BINDING_RECTANGLE

 

GL_BLEND       是否開啟混合

GL_BLEND_COLOR 當前的混合顏色,通過glBlendColor設置

GL_BLEND_SRC_RGB/ALPHA  混合函數

GL_BLEND_DST_RGB/ALPHA

GL_BLEND_EQUATION_RGB/ALPHA 混合等式

 

GL_COLOR_CLEAR_VALUE    當前的清除色,由glClearColor設置,默認(0,0,0,0)

 

GL_COLOR_LOGIC_OP 是否開啟顏色邏輯操作,默認 GL_FALSE,由glLogicOp設置

GL_LOGIC_OP_MODE  顏色邏輯操作模式,默認GL_COPY

 

GL_COLOR_WRITEMASK 顏色寫標記,默認(GL_TRUE,GL_TRUE,GL_TREUE,GL_TURE),由glColorMask 設置

 

GL_COMPRESSED_TEXTURE_FORMATS 獲取支持的壓縮格式列表,共GL_NUM_COMPRESSED_TEXTURE_FORMATS個

 

GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS  最大的單個計算shader可訪問的存儲塊數量

GL_MAX_COMPUTE_UNIFORM_BLOCKS最大的單個計算shader可訪問的uniform塊數量,最小值14

GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS 最大的紋理單元個數,最少為16

GL_MAX_COMPUTE_UNIFORM_COMPONENTS 最大的uniform變量個數,最小為1024

GL_MAX_COMPUTE_ATOMIC_COUNTERS 最大的原子計數

GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS最大的原子計數緩沖區

 

GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS 單個工作組可發起調用數(dim.x*y*z)

GL_MAX_COMPUTE_WORK_GROUP_COUNT 可發起工作組維數,通過index版本0/1/2,分別獲取x/y/z維數

GL_MAX_COMPUTE_WORK_GROUP_SIZE    可編譯的工作組維數,與GL_MAX_COMPUTE_WORK_GROUP_COUNT類似

 

GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS 所有的計算shader可訪問的總存儲塊數量

GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS 所有shader可用的uniform變量數

GL_MAX_COMBINED_ATOMIC_COUNTERS

GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS

GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS

GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 頂點和片段總紋理數,最少48

 

GL_MAX_COMBINED_UNIFORM_BLOCKS 單個程序最大uniform塊個數,最少70

GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 所有頂點uniform 塊中uniform變量最大個數(word單位)

 

GL_MAX_DEBUG_GROUP_STACK_DEPTH 調試相關

GL_DEBUG_GROUP_STACK_DEPTH

GL_CONTEXT_FLAGS

 

GL_CULL_FACE      glCullFace設置

 

GL_CURRENT_PROGRAM     glUseGrogram設置

 

GL_DEPTH_CLEAR_VALUE 深度清除值[-1,1],默認1,glClearDepth設置

GL_DEPTH_FUNC  默認GL_LESS, glDepthFunc設置

GL_DEPTH_RANGE

GL_DEPTH_TEST

GL_DEPTH_WRITEMASK

 

GL_DITHER 是否支持抖動,默認GL_TRUE

GL_DOUBLEBUFFER 是否支持雙緩沖

GL_STEREO

GL_DRAW_BUFFER 默認GL_BACK, 單緩沖為GL_FRONT, 通過glDrawBuffer設置

GL_DRAW_BUFFER I 由glDrawBuffers設置

 

GL_DRAW_FRAMEBUFFER_BINDING 通過glBindFrameBuffer綁定的幀緩沖區

GL_READ_FRAMEBUFFER_BINDING

 

GL_FRAGMENT_SHADER_DERIVATIVE_HINT glHint設置,默認GL_DONT_CARE

 

GL_IMPLEMENTATION_COLOR_READ_FORMAT  讀取時推薦的數據格式、類型?參考glReadPixels

GL_IMPLEMENTATION_COLOR_READ_TYPE

 

GL_LAYER_PROVOKING_VERTEX flat着色時所使用的頂點,參考glProvokingVertex

GL_PROVOKING_VERTEX

 

GL_MAJOR_VERSION 當前上下文主版本號

GL_MINOR_VERSION

 

GL_MAX_3D_TEXTURE_SIZE  單一值, 最大的3d紋理大小,最小64

GL_MAX_CUBE_MAP_TEXTURE_SIZE 立方圖大小,最小1024

GL_MAX_ARRAY_TEXTURE_LAYERS  最大的紋理數組層,最小256

 

GL_MAX_CLIP_DISTANCES 最大的裁剪距離個數,至少8個

 

GL_MAX_COLOR_TEXTURE_SAMPLES  最大的多采樣紋理采樣數        

GL_MAX_DEPTH_TEXTURE_SAMPLES  深度采樣數

GL_MAX_INTEGER_SAMPLES         整數類型采樣數

GL_MAX_SAMPLE_MASK_WORDS

 

GL_SAMPLE_BUFFERS 參考glSampleCoverage

GL_SAMPLE_COVERAGE_VALUE

GL_SAMPLE_COVERAGE_INVERT

GL_SAMPLES

 

GL_MAX_DRAW_BUFFERS 片段程序最大輸出個數,最少8,參考glDrawBuffers

GL_MAX_DUAL_SOURCE_DRAW_BUFFERS  雙源混合時最大個數(混合時混合系數使用了第二個顏色輸入【比如源顏色*目標顏色】),參考glBlendFunc

 

GL_MAX_ELEMENTS_VERTICES 最大頂點數

GL_MAX_ELEMENTS_INDICES  最大頂點索引個數

 

GL_MAX_FRAGMENT_ATOMIC_COUNTERS

GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS

GL_MAX_FRAGMENT_INPUT_COMPONENTS  最少128

GL_MAX_FRAGMENT_UNIFORM_COMPONENTS最少1024

GL_MAX_FRAGMENT_UNIFORM_VECTORS最少1024/4

GL_MAX_FRAGMENT_UNIFORM_BLOCKS最少12

 

GL_MAX_FRAMEBUFFER_WIDTH 最少16k

GL_MAX_FRAMEBUFFER_HEIGHT

GL_MAX_FRAMEBUFFER_LAYERS 最少2048

GL_MAX_FRAMEBUFFER_SAMPLES 最少4

 

GL_MAX_GEOMETRY_ATOMIC_COUNTERS

GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS

GL_MAX_GEOMETRY_INPUT_COMPONENTS 64

GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 128

GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 16

GL_MAX_GEOMETRY_UNIFORM_BLOCKS 12

GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 1024

 

GL_MIN_MAP_BUFFER_ALIGNMENT glMapBuffer/Range最小的對齊字節數,至少64

 

GL_MAX_LABEL_LENGTH  glObjectLabel最大label長度

 

GL_MAX_PROGRAM_TEXEL_OFFSET 紋理查找最大像素偏移,最小7

GL_MIN_PROGRAM_TEXEL_OFFSET 最小-8

 

GL_MAX_RECTANGLE_TEXTURE_SIZE  最小1024

GL_MAX_RENDERBUFFER_SIZE

GL_MAX_TEXTURE_BUFFER_SIZE 最小64k

GL_MAX_TEXTURE_SIZE

GL_MAX_TEXTURE_IMAGE_UNITS 最小16

GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS 最小8

 

GL_MAX_TEXTURE_LOD_BIAS

 

GL_MAX_SERVER_WAIT_TIMEOUT 最大超時值,參考glWaitSync

 

GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS

GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS

GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS

GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS

 

GL_MAX_UNIFORM_BUFFER_BINDINGS

GL_MAX_UNIFORM_BLOCK_SIZE 至少16k

GL_MAX_UNIFORM_LOCATIONS 至少1024

GL_MAX_VARYING_COMPONENTS 至少60

GL_MAX_VARYING_VECTORS  至少60/4

GL_MAX_VARYING_FLOATS  至少32

 

GL_MAX_VERTEX_ATOMIC_COUNTERS

GL_MAX_VERTEX_ATTRIBS 至少16

GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS

GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS至少16

GL_MAX_VERTEX_UNIFORM_COMPONENTS 1024

GL_MAX_VERTEX_UNIFORM_VECTORS 256

GL_MAX_VERTEX_OUTPUT_COMPONENTS 64

GL_MAX_VERTEX_UNIFORM_BLOCKS 12

 

GL_MAX_VIEWPORT_DIMS

GL_MAX_VIEWPORTS 16

 

GL_NUM_COMPRESSED_TEXTURE_FORMATS

 

GL_NUM_EXTENSIONS

 

GL_NUM_PROGRAM_BINARY_FORMATS 個數

GL_PROGRAM_BINARY_FORMATS 格式

GL_NUM_SHADER_BINARY_FORMATS

 

GL_PACK_ALIGNMENT 默認4,參考glPixelStore

GL_PACK_IMAGE_HEIGHT

GL_PACK_LSB_FIRST false

GL_PACK_ROW_LENGTH

GL_PACK_SKIP_IMAGES

GL_PACK_SKIP_PIXELS

GL_PACK_SKIP_ROWS

GL_PACK_SWAP_BYTES

 

GL_POINT_FADE_THRESHOLD_SIZE 點最小截取值,默認1.0,參考glPointParameter

 

GL_PRIMITIVE_RESTART_INDEX

 

GL_PROGRAM_PIPELINE_BINDING 當前綁定的程序管線對象

 

GL_PROGRAM_POINT_SIZE 是否啟用gl_PointSize

GL_POINT_SIZE glPointSize

GL_POINT_SIZE_GRANULARITY

GL_POINT_SIZE_RANGE

 

GL_LINE_SMOOTH       

GL_LINE_SMOOTH_HINT  參考glHint

GL_LINE_WIDTH             參考glLineWidth

GL_SMOOTH_LINE_WIDTH_RANGE

GL_SMOOTH_LINE_WIDTH_GRANULARITY

 

GL_POLYGON_OFFSET_FACTOR 參考glPolygonOffset

GL_POLYGON_OFFSET_UNITS

GL_POLYGON_OFFSET_FILL

GL_POLYGON_OFFSET_LINE

GL_POLYGON_OFFSET_POINT

GL_POLYGON_SMOOTH

GL_POLYGON_SMOOTH_HINT

 

GL_READ_BUFFER

 

GL_SCISSOR_BOX

GL_SCISSOR_TEST

 

GL_SHADER_STORAGE_BUFFER_BINDING

GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT

GL_SHADER_STORAGE_BUFFER_START

GL_SHADER_STORAGE_BUFFER_SIZE

 

GL_STENCIL_BACK_FAIL

GL_STENCIL_BACK_FUNC

GL_STENCIL_BACK_PASS_DEPTH_FAIL

GL_STENCIL_BACK_PASS_DEPTH_PASS

GL_STENCIL_BACK_REF

GL_STENCIL_BACK_VALUE_MASK

GL_STENCIL_BACK_WRITEMASK

GL_STENCIL_CLEAR_VALUE

GL_STENCIL_FAIL

GL_STENCIL_FUNC

GL_STENCIL_PASS_DEPTH_FAIL

GL_STENCIL_PASS_DEPTH_PASS

GL_STENCIL_REF

GL_STENCIL_TEST

GL_STENCIL_VALUE_MASK

GL_STENCIL_WRITEMASK

 

GL_TIMESTAMP

 

GL_TRANSFORM_FEEDBACK_BUFFER_START glBindBufferRange

GL_TRANSFORM_FEEDBACK_BUFFER_SIZE

GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT

GL_UNIFORM_BUFFER_BINDING

GL_UNIFORM_BUFFER_SIZE

GL_UNIFORM_BUFFER_START

GL_UNPACK_ALIGNMENT      glPixelStore

GL_UNPACK_IMAGE_HEIGHT

GL_UNPACK_LSB_FIRST

GL_UNPACK_LSB_FIRST

GL_UNPACK_ROW_LENGTH

GL_UNPACK_SKIP_IMAGES

GL_UNPACK_SKIP_PIXELS

GL_UNPACK_SKIP_ROWS

GL_UNPACK_SWAP_BYTES

 

GL_VERTEX_BINDING_DIVISOR

GL_VERTEX_BINDING_OFFSET

GL_VERTEX_BINDING_STRIDE

GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET

GL_MAX_VERTEX_ATTRIB_BINDINGS

 

GL_VIEWPORT

GL_VIEWPORT_BOUNDS_RANGE

GL_VIEWPORT_INDEX_PROVOKING_VERTEX

GL_VIEWPORT_SUBPIXEL_BITS

 

GL_MAX_ELEMENT_INDEX

 

glGetActiveAtomicCounterBufferiv 4.2

獲取指定程序指定的Atomic Counter Buffer信息

Gluint program,

      GLuint bufferIndex,

      GLenum pname,

                    GL_ATOMIC_COUNTER_BUFFER_BINDING 綁定點索引

                                                                          _DATA_SIZE 緩沖區對象大小

                                                                               _ACTIVE_ATOMIC_COUNTERS 計數器個數

                                                                               _ACTIVE_ATOMIC_COUNTER_INDICES 獲取各計數器指示索引列表

_REFERENCED_BY_VERTEX/TESS_CONTROL/FRAGMENT/…_SHADER 是否給頂點、片段…程序引用

      GLint *params

glGetActiveAttrib 2.0

獲取程序的指定的屬性信息名稱、類型、大小,包括內置gl_屬性和自定義屬性

GLuint program,

      GLuint index, 屬性索引

      GLsizei bufSize, 存儲屬性名稱的緩沖區長度

      GLsizei *length, 獲取的名稱長度(不包括\0), 不需要返回時可傳遞0  

      GLint *size,     屬性大小(size個type)

      GLenum *type,  屬性類型

      GLchar *name   屬性名稱

程序屬性個數可通過glGetProgram(program, GL_ACTIVE_ATTRIBUTES, &attrCount)獲取

 

    GLint attrCount;

    glGetProgramiv(program, GL_ACTIVE_ATTRIBUTES, &attrCount);

    char attrName[255];

    GLint attrSize;

    GLenum attrType;

    for(GLint i=0; i<attrCount; ++i)

    {

         glGetActiveAttrib(program, i, 255, 0, &attrSize, &attrType, attrName);

         std::cout << i << '\t' << attrSize << "\t" << attrName << std::endl;

    }

glGetActiveSubroutineName 4.0

獲取子程序名稱

GLuint program,

      GLenum shadertype, :

GL_VERTEX_SHADER, GL_TESS_CONTROL_SHADER, GL_TESS_EVALUATION_SHADER, GL_GEOMETRY_SHADER or GL_FRAGMENT_SHADER

      GLuint index,

      GLsizei bufsize,   名稱緩沖區大小

      GLsizei *length,  返回名稱長度

      GLchar *name   返回名稱

glGetActiveSubroutineUniformiv 4.0

獲取子程序uniform信息

GLuint program,

      GLenum shadertype,

      GLuint index,

      GLenum pname:

GL_NUM_COMPATIBLE_SUBROUTINES,  uniform匹配的子程序個數

GL_COMPATIBLE_SUBROUTINES,       獲取匹配的子程序索引列表

GL_UNIFORM_SIZE                                   uniform大小,非數組時為1,數組時為數組長度

GL_UNIFORM_NAME_LENGTH        名稱長度,包含\0

      GLint *values

glGetActiveSubroutineUniformName 4.0

獲取SubroutineUniform名稱

GLuint program,

      GLenum shadertype,

      GLuint index,

      GLsizei bufsize,

      GLsizei *length,

      GLchar *name

glGetActiveUniform 2.0

獲取Uniform變量名稱、類型、大小信息,與glGetActiveAttrib類似

GLuint program,

      GLuint index,

      GLsizei bufSize,

      GLsizei *length,

      GLint *size,

      GLenum *type,

      GLchar *name

獲取數據使用 glGetUniform

 

    std::cout << "uniforms:\n" ;

    GLint uniformCount;

    glGetProgramiv(program, GL_ACTIVE_UNIFORMS, &uniformCount);

    char uniformName[255];

    GLint uniformSize;

    GLenum uniformType;

    for(GLint i=0; i<uniformCount; ++i)

    {

         glGetActiveUniform(program, i, 255, 0, &uniformSize, &uniformType, uniformName);

         std::cout << '\t' << i << '\t' << uniformSize << '\t' << uniformName << std::endl;

    }

glGetActiveUniformsiv 3.1

一次獲取多個Uniform變量名稱、類型、大小信息,與glGetActiveUniform類似

GLuint program,

      GLsizei uniformCount,

      const GLuint *uniformIndices,

      GLenum pname,

      GLint *params

glGetActiveUniformName 3.1

獲取Uniform變量名稱

GLuint program,

      GLuint uniformIndex,

      GLsizei bufSize,

      GLsizei *length,

      GLchar *uniformName

glGetActiveUniformBlockiv 3.1

獲取uniformBlock信息, 與 glGetActiveAtomicCounterBufferiv類似

GLuint program,

      GLuint uniformBlockIndex,

      GLenum pname,

                  GL_UNIFORM_BLOCK_BINDING 綁定點

GL_UNIFORM_BLOCK_DATA_SIZE 塊大小

GL_UNIFORM_BLOCK_NAME_LENGTH 塊名稱長度

GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 塊中 uniform變量個數

GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 塊中 uniform變量對應的索引列表,有用嗎?

GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX/TESS_CONTROL/TESS_EVALUATION/GEOMETRY/FRAGMENT/COMPUTE_SHADER 是否被各shader引用

 

      GLint *params

glGetActiveUniformBlockName 3.1

獲取名稱

GLuint program,

      GLuint uniformBlockIndex,

      GLsizei bufSize,

      GLsizei *length,

      GLchar *uniformBlockName

glGetAttachedShaders 2.1

獲取program關聯的所有shader

GLuint program,

      GLsizei maxCount,

      GLsizei *count, //返回個數,不需要可以傳入0

      GLuint *shaders

glGetAttribLocation 2.0

根據名稱獲取屬性的位置

GLuint program,

      const GLchar *name

保留的gl_名稱前綴返回-1

glGetBufferParameteriv 2.0

獲取Buffer信息,大小、訪問標識、鎖定范圍等等

GLenum target, GL_ARRAY_BUFFER  GL_ATOMIC_COUNTER_BUFFER…等等

      GLenum value,

                          GL_BUFFER_ACCESS  GL_BUFFER_ACCESS_FLAGS   glMapBuffer、glMapBufferRange訪問標識

GL_BUFFER_IMMUTABLE_STORAGE 是否immutable(不可改變)

GL_BUFFER_MAPPED 是否被mapped

GL_BUFFER_MAP_LENGTH  GL_BUFFER_MAP_OFFSET map范圍

GL_BUFFER_SIZE 大小

GL_BUFFER_STORAGE_FLAGS 存儲訪問標識:GL_MAP_READ_BIT | GL_MAP_WRITE_BIT | GL_DYNAMIC_STORAGE_BIT | GL_MAP_WRITE_BIT

GL_BUFFER_USAGE         用途GL_STREAM/STATIC/DYNAMIC_DRAW/READ/COPY,參考glBufferData

      GLint * data

 

glGetBufferParameteri64v  3.2

glGetNamedBufferParameteriv 4.5

glGetBufferPointerv 2.0

獲取mapped數據指針,未map返回0,(與glMapBuffer返回值相同?)

GLenum target,   GL_ARRAY_BUFFER  GL_ATOMIC_COUNTER_BUFFER…等等

      GLenum pname,  固定的GL_BUFFER_MAP_POINTER

      GLvoid ** params

 

GlGetNamedBufferPointerv 4.5

glGetBufferSubData 2.0

直接獲取buffer數據,如果已經mapped則產生錯誤

GLenum target,  GL_ARRAY_BUFFER  GL_ATOMIC_COUNTER_BUFFER…等等

      GLintptr offset,

      GLsizeiptr size,

      GLvoid * data

 

glGetNamedBufferSubData 4.5

glGetCompressedTexImage 2.0

獲取壓縮紋理數據

GLenum target, GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X…等等

      GLint level,

      GLvoid * pixels  目標數據地址,當GL_PIXEL_PACK_BUFFER不為0時,表示對應緩沖區偏移量

 

可以使用glGetTexLevelParameter查詢紋理是否壓縮,以及所使用的壓縮格式和大小

 

glGetnCompressedTexImage 4.5指定數據大小

glGetCompressedTextureImage 4.5 指定紋理id

 

glGetCompressedTextureSubImage 4.5

獲取壓縮紋理子區域,與getCompressedTexImage類似

GLuint texture,

      GLint level,

      GLint xoffset,

      GLint yoffset,

      GLint zoffset, //cube map時使用[0,5]指定對應的面+x –x +y –y +z - z

      GLsizei width,

      GLsizei height,

      GLsizei depth,

      GLsizei bufSize,

      void *pixels

 

偏移和寬高必須為壓縮塊大小的整數倍GL_PACK_COMPRESSED_BLOCK_WIDTH/HEIGHT/DEPTH

 

glGetDebugMessageLog 4.3

獲取日志信息

glGetError 2.0

返回錯誤代碼

 

調用后錯誤代碼將重置為GL_NO_ERROR,當同時存在多個錯誤時,一次調用僅重置一個錯誤位

GL_NO_ERROR

GL_INVALID_ENUM 無效的枚舉

GL_INVALID_VALUE 無效的數值,超界

GL_INVALID_OPERATION 無效的操作,當前狀態不允許

GL_INVALID_FRAMEBUFFER_OPERATION 幀緩沖區未准備好

 

GL_OUT_OF_MEMORY

GL_STACK_UNDERFLOW

GL_STACK_OVERFLOW

glGetFragDataIndex 3.3

獲取片段輸出數據對應索引, 返回0/1分別對應顏色混合等式的第一、第二個輸入項

GLuint program,

      const char * name

參考glBindFragDataLocationIndexed

glGetFragDataLocation

返回片段程序輸出變量對應的顏色緩沖區索引

GLuint program,

      const char * name

參考glBindFragDataLocation

glGetFramebufferAttachmentParameteriv 3.0

獲取幀緩沖區附件類型、大小等信息,包括默認繪制緩沖區

GLenum target, : GL_DRAW_FRAMEBUFFER, GL_READ_FRAMEBUFFER or GL_FRAMEBUFFER

      GLenum attachment,

                  如果查詢幀緩沖區對象為:GL_DEPTH_ATTACHMENT, GL_STENCIL_ATTACHMENT GL_DEPTH_STENCIL_ATTACHMENT, or GL_COLOR_ATTACHMENTi,

                  如果是默認緩沖區則為:GL_FRONT_LEFT, GL_FRONT_RIGHT, GL_BACK_LEFT, GL_BACK_RIGHT, GL_DEPTH or GL_STENCIL

      GLenum pname,

                  GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 附件類型:GL_NONE, GL_FRAMEBUFFER_DEFAULT, GL_TEXTURE, or GL_RENDERBUFFER

                  GL_FRAMEBUFFER_ATTACHMENT_RED/GREEN/BLUE/ALPHA/DEPTH/STENCIL_SIZE 各成分大小(位)

GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 成分類型:GL_FLOAT, GL_INT, GL_UNSIGNED_INT, GL_SIGNED_NORMALIZED,

GL_UNSIGNED_NORMALIZED

                  GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: 顏色編碼GL_LINEAR or GL_SRGB

GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 如果是renderbuffer或texture則為其id

GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 用於texture類型附件

GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE cubemap texture時所使用的面

GL_FRAMEBUFFER_ATTACHMENT_LAYERED  是否使用多層紋理

GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 僅使用多層紋理某一層時獲取對應層號(GL_FRAMEBUFFER_ATTACHMENT_LAYERED==GL_FALSE)

 

      GLint *params

 

glGetNamedFramebufferAttachmentParameteriv 4.5

glGetFramebufferParameteriv 4.3

獲取幀緩沖區對象相關信息,包括默認繪制緩沖區

GLenum target, GL_DRAW_FRAMEBUFFER, GL_READ_FRAMEBUFFER

      GLenum pname,

                  幀緩沖區對象可以查詢:

                          GL_FRAMEBUFFER_DEFAULT_WIDTH

                                                                               _HEIGHT

                                                                               _LAYERS

                                                                               _SAMPLES

                                                                               _FIXED_SAMPLE_LOCATIONS

                  默認緩沖區和幀緩沖區可查詢:

                          GL_DOUBLEBUFFER 是否雙緩沖

GL_STEREO 是否支持立體

GL_IMPLEMENTATION_COLOR_READ_FORMAT 實現最優的顏色讀取格式、類型

GL_IMPLEMENTATION_COLOR_READ_TYPE   

GL_SAMPLES

GL_SAMPLE_BUFFERS

      GLint *params

參考glFramebufferParameteri

glGetGraphicsResetStatus 4.5

獲取上下文reset 狀態,返回:

GL_NO_ERROR 上一次調用以來未reset

GL_GUILTY_CONTEXT_RESET 由當前上下文引起

GL_INNOCENT_CONTEXT_RESET 不是當前上下文引起

GL_UNKNOWN_CONTEXT_RESET 未知

 

Reset通知在上下文創建時確定,如果GetIntegerv(GL_RESET_NOTIFICATION_STRATEGY)返回 GL_NO_RESET_NOTIFICATION,則接收不到通知,函數永遠返回GL_NO_ERROR

glGetInternalformativ 4.2

獲取內部格式的支持情況

         GLenum target,

      GLenum internalformat,

      GLenum pname,

                          GL_NUM_SAMPLE_COUNTS 支持的采樣數個數,比如只支持4像素采樣,則返回1

GL_SAMPLES  采樣數列表,從大往小排,共GL_NUM_SAMPLE_COUNTS返回的個數

GL_INTERNALFORMAT_SUPPORTED 是否支持該格式

GL_INTERNALFORMAT_PREFERRED internalformat是否是推薦的格式

GL_INTERNALFORMAT_RED/GREEN/BLUE/ALPHA/DEPTH/STENCIL/SHARED_SIZE 各成分大小,壓縮格式時為非壓縮時大小,不存在或不支持返回0

GL_INTERNALFORMAT_RED/GREEN/BLUE/ALPHA/DEPTH/STENCIL_TYPE 各成分類型

GL_MAX_WIDTH, GL_MAX_HEIGHT, GL_MAX_DEPTH, or GL_MAX_LAYERS 改格式紋理對應的最大值

GL_MAX_COMBINED_DIMENSIONS?

GL_COLOR_COMPONENTS GL_DEPTH_COMPONENTS or GL_STENCIL_COMPONENTS是否含顏色、深度或者模板數據

GL_COLOR_RENDERABLE, GL_DEPTH_RENDERABLE or GL_STENCIL_RENDERABLE ?是否是可渲染的顏色、深度或者模板數據

GL_FRAMEBUFFER_RENDERABLE or GL_FRAMEBUFFER_RENDERABLE_LAYERED:返回GL_FULL_SUPPORT, GL_CAVEAT_SUPPORT or GL_NONE,表示對格式是支持、有限的支持,或者不支持

GL_FRAMEBUFFER_BLEND 是否支持混合

GL_READ_PIXELS  返回GL_FULL_SUPPORT, GL_CAVEAT_SUPPORT or GL_NONE,表示對格式是支持、有限的支持,或者不支持讀取

GL_READ_PIXELS_FORMAT or GL_READ_PIXELS_TYPE 獲取推薦的用於glReadPixel的讀取格式和類型

GL_TEXTURE_IMAGE_FORMAT or GL_TEXTURE_IMAGE_TYPE 獲取推薦的用於glTexImage2D的源數據格式和類型

GL_GET_TEXTURE_IMAGE_FORMAT or GL_GET_TEXTURE_IMAGE_TYPE獲取推薦的用於glGetTexImage2D的源數據格式和類型

GL_MIPMAP 是否支持mipmap

GL_GENERATE_MIPMAP or GL_AUTO_GENERATE_MIPMAP 返回GL_FULL_SUPPORT, GL_CAVEAT_SUPPORT and GL_NONE表示支持程度

GL_COLOR_ENCODING 顏色編碼GL_LINEAR or GL_SRGB或者GL_NONE(深度、模板。。)

GL_SRGB_READ, or GL_SRGB_WRITE  srgb讀寫支持,返回GL_FULL_SUPPORT, GL_CAVEAT_SUPPORT, or GL_NONE

GL_FILTER 是否支持過濾,僅GL_NEAREST or GL_NEAREST_MIPMAP之外過濾模式

GL_IMAGE_TEXEL_SIZE 作為紋理時的大小?

GL_IMAGE_COMPATIBILITY_CLASS 作為紋理時所屬類別(各成分size,如GL_IMAGE_CLASS_4_X_8、GL_IMAGE_CLASS_10_10_10_2)

GL_IMAGE_PIXEL_FORMAT or GL_IMAGE_PIXEL_TYPE 作為紋理時的格式和類型

GL_IMAGE_FORMAT_COMPATIBILITY_TYPE, 作為紋理時匹配類別:GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE/CLASS.

GL_TEXTURE_COMPRESSED 是否是壓縮格式

GL_TEXTURE_COMPRESSED_BLOCK_WIDTH, GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT or GL_TEXTURE_COMPRESSED_BLOCK_SIZE 壓縮塊的寬高、大小

GL_TEXTURE_VIEW 對glTextureView的支持程度

GL_VIEW_COMPATIBILITY_CLASS 作為texture view時的類別, GL_VIEW_CLASS_128_BITS, GL_VIEW_CLASS_S3TC_DXT1_RGB。。等等

 

GL_CLEAR_BUFFER 對glClearBufferData and glClearBufferSubData的支持程度

GL_CLEAR_TEXTURE 對glClearTexImage and glClearTexSubImage的支持程度

GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST or GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST 同時作為紋理和深度或模板測試時的支持程度

GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE or GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE同時作為紋理和深度或模板寫時的支持程度

GL_VERTEX_TEXTURE, GL_TESS_CONTROL_TEXTURE, GL_TESS_EVALUATION_TEXTURE, GL_GEOMETRY_TEXTURE, GL_FRAGMENT_TEXTURE, or GL_COMPUTE_TEXTURE 作為紋理的支持程度,返回GL_FULL_SUPPORT, GL_CAVEAT_SUPPORT, or GL_NONE

GL_TEXTURE_SHADOW, GL_TEXTURE_GATHER or GL_TEXTURE_GATHER_SHADOW 對陰影、gather指令的支持程度返回GL_FULL_SUPPORT…

GL_SHADER_IMAGE_LOAD, GL_SHADER_IMAGE_STORE or GL_SHADER_IMAGE_ATOMIC 返回對加載、存儲. Atomic的支持程度

 

 

      GLsizei bufSize, 返回的緩沖區大小

      GLint *params

glGetMultisamplefv 3.2

獲取采樣的相對位置信息,返回值為兩個浮點數,(0.5, 0.5)表示對應像素中心

GLenum pname, GL_SAMPLE_POSITION

      GLuint index, 采樣索引, 范圍為[0,  glGet(GL_SAMPLES))

      GLfloat *val

glGetObjectLabel 4.3

獲取對象標記

         GLenum identifier, 類別:GL_BUFFER, GL_SHADER, GL_PROGRAM, GL_VERTEX_ARRAY, GL_QUERY, GL_PROGRAM_PIPELINE, GL_TRANSFORM_FEEDBACK, GL_SAMPLER, GL_TEXTURE, GL_RENDERBUFFER, GL_FRAMEBUFFER

      GLuint name,          名稱/id

      GLsizei bifSize, 緩沖區大小

      GLsizei * length,

      char * label

 

設置標記使用glObjectLabel

glGetObjectPtrLabel 4.3

獲取ptr指定的同步對象標記

void * ptr,

      GLsizei bifSize,

      GLsizei * length,

      char * label

設置標記使用glObjectPtrLabel

glGetPointerv 4.3

獲取debug callback函數指針或者debug callback自定義參數指針

GLenum pname, GL_DEBUG_CALLBACK_FUNCTION or GL_DEBUG_CALLBACK_USER_PARAM

      GLvoid ** params

glGetProgramiv 2.0

獲取程序對象相關信息

GLuint program,

GLenum pname,:

         GL_DELETE_STATUS 是否標記為刪除

         GL_LINK_STATUS 是否連接成功

GL_VALIDATE_STATUS 是否驗證成功

GL_INFO_LOG_LENGTH log信息長度,包含\0

GL_ATTACHED_SHADERS 關聯的shader個數

GL_ACTIVE_ATOMIC_COUNTER_BUFFERS  ATOMIC_COUNTER_BUFFER個數

GL_ACTIVE_ATTRIBUTES 屬性個數

GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 最大的屬性名稱長度

GL_ACTIVE_UNIFORMS uniform變量個數

GL_ACTIVE_UNIFORM_MAX_LENGTH  最大的uniform屬性名稱長度

GL_PROGRAM_BINARY_LENGTH 編譯后的程序長度

GL_COMPUTE_WORK_GROUP_SIZE 返回3個整數對應程序的計算shader dim.xyz

GL_TRANSFORM_FEEDBACK_BUFFER_MODE : GL_SEPARATE_ATTRIBS or GL_INTERLEAVED_ATTRIBS

GL_TRANSFORM_FEEDBACK_VARYINGS 變換反饋捕獲的變量個數

GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 變換反饋捕獲的最長變量名稱長度,包括\0

GL_GEOMETRY_VERTICES_OUT 最大的輸出頂點數

GL_GEOMETRY_INPUT_TYPE 輸入圖元類型

GL_GEOMETRY_OUTPUT_TYPE 輸出圖元類型

 

GLint *params

glGetProgramBinary 4.1

獲取程序編譯鏈接后的二進制數據

GLuint program,

      GLsizei bufsize,

      GLsizei *length,

      GLenum *binaryFormat, 二進制格式,可能和實現相關        

      void *binary

 

獲取的二進制數據可使用glProgramBinary加載到程序

長度可通過glGetProgram(GL_PROGRAM_BINARY_LENGTH)獲取           

glGetProgramInfoLog 2.0

獲取最后鏈接或驗證程序時產生的日志信息

GLuint program,

      GLsizei maxLength,

      GLsizei *length,

      GLchar *infoLog

返回長度包括\0, 可通過glGetProgram(GL_INFO_LOG_LENGTH)獲取

glGetProgramInterface 4.3

獲取程序的所有接口信息

GLuint program,

      GLenum programInterface,接口標識:

                  GL_UNIFORM

GL_UNIFORM_BLOCK

GL_ATOMIC_COUNTER_BUFFER

GL_PROGRAM_INPUT 第一個shader階段輸入

GL_PROGRAM_OUTPUT 最后一個shader階段輸出

GL_VERTEX_SUBROUTINE, GL_TESS_CONTROL_SUBROUTINE, GL_TESS_EVALUATION_SUBROUTINE, GL_GEOMETRY_SUBROUTINE, GL_FRAGMENT_SUBROUTINE, GL_COMPUTE_SUBROUTINE 各子程序

GL_VERTEX_SUBROUTINE_UNIFORM, GL_TESS_CONTROL_SUBROUTINE_UNIFORM, GL_TESS_EVALUATION_SUBROUTINE_UNIFORM, GL_GEOMETRY_SUBROUTINE_UNIFORM, GL_FRAGMENT_SUBROUTINE_UNIFORM, GL_COMPUTE_SUBROUTINE_UNIFORM各子程序uniform

GL_TRANSFORM_FEEDBACK_VARYING

GL_BUFFER_VARIABLE

GL_SHADER_STORAGE_BLOCK

GL_TRANSFORM_FEEDBACK_BUFFER

      GLenum pname, 信息類型:

                  GL_ACTIVE_RESOURCES 返回對應的數據

GL_MAX_NAME_LENGTH 最長的名稱長度,不可用於GL_ATOMIC_COUNTER_BUFFER

GL_MAX_NUM_ACTIVE_VARIABLES 最大的變量個數,用於GL_UNIFORM_BLOCK, GL_ATOMIC_COUNTER_BUFFER, or GL_SHADER_STORAGE_BLOCK

GL_MAX_NUM_COMPATIBLE_SUBROUTINES  用於各_SUBROUTINE_UNIFORM

 

      GLint * params

glGetProgramPipeline 4.1

獲取管線對象活動程序和各shader以及日志信息長度

GLuint pipeline,

GLenum pname,:

         GL_ACTIVE_PROGRAM

GL_VERTEX_SHADER GL_TESS_CONTROL_SHADER GL_TESS_EVALUATION_SHADER GL_TESS_EVALUATION_SHADER

GL_GEOMETRY_SHADER  GL_FRAGMENT_SHADER

GL_INFO_LOG_LENGTH

GLint *params

glGetProgramPipelineInfoLog 4.1

獲取日志信息

GLuint pipeline,

      GLsizei bufSize,

      GLsizei *length,

      GLchar *infoLog

glGetProgramResource 4.3

相比glGetProgramInterface提供了更多的信息,一次獲取接口的屬性個數、屬性列表、屬性長度

GLuint program,

      GLenum programInterface,

      GLuint index,

      GLsizei propCount,

      const Glenum * props, //返回屬性類型

GL_NAME_LENGTH  

GL_TYPE

GL_ARRAY_SIZE

GL_OFFSET

GL_BLOCK_INDEX

GL_ARRAY_STRIDE

GL_MATRIX_STRIDE  

GL_IS_ROW_MAJOR

GL_ATOMIC_COUNTER_BUFFER_INDEX  

GL_TEXTURE_BUFFER

GL_BUFFER_BINDING

GL_BUFFER_DATA_SIZE

GL_NUM_ACTIVE_VARIABLES

GL_ACTIVE_VARIABLES

GL_REFERENCED_BY_VERTEX_SHADER

GL_REFERENCED_BY_TESS_CONTROL_SHADE

GL_REFERENCED_BY_TESS_EVALUATION_SHADER

GL_REFERENCED_BY_GEOMETRY_SHADER

GL_REFERENCED_BY_FRAGMENT_SHADER

GL_REFERENCED_BY_COMPUTE_SHADER  

GL_NUM_COMPATIBLE_SUBROUTINES  

GL_COMPATIBLE_SUBROUTINES

GL_TOP_LEVEL_ARRAY_SIZE

GL_TOP_LEVEL_ARRAY_STRIDE

GL_LOCATION

GL_LOCATION_INDEX

GL_IS_PER_PATCH

GL_LOCATION_COMPONENT

GL_TRANSFORM_FEEDBACK_BUFFER_INDEX  

GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE

      GLsizei bufSize,

      GLsizei * length,

      GLint * params

glGetProgramResourceIndex 4.3

根據名稱查詢對應的索引

glGetProgramResourceLocation 4.3

根據名稱查詢對應位置

glGetProgramResourceName 4.3

根據索引查詢名稱

glGetProgramStage 4.0

查詢程序各階段子程序信息

GLuint program,

    GLenum shadertype,:GL_VERTEX_SHADER, GL_TESS_CONTROL_SHADER, GL_TESS_EVALUATION_SHADER, GL_GEOMETRY_SHADER ,GL_FRAGMENT_SHADER

      GLenum pname,: GL_ACTIVE_SUBROUTINE_UNIFORMS, GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS, GL_ACTIVE_SUBROUTINES,

GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH, or GL_ACTIVE_SUBROUTINE_MAX_LENGTH

      GLint *values

glGetQueryIndexediv 4.0

根據索引獲取查詢信息:查詢ID或使用的位數, 參考glBeginQueryIndexed

GLenum target,  GL_SAMPLES_PASSED, GL_ANY_SAMPLES_PASSED, GL_ANY_SAMPLES_PASSED_CONSERVATIVE GL_PRIMITIVES_GENERATED,

GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN, GL_TIME_ELAPSED, or GL_TIMESTAMP

      GLuint index,

      GLenum pname,

GL_CURRENT_QUERY  查詢id

GL_QUERY_COUNTER_BITS 位數

      GLint * params

glGetQueryiv 2.0

獲取查詢信息:ID或使用的位數

GLenum target,  GL_SAMPLES_PASSED, GL_ANY_SAMPLES_PASSED, GL_ANY_SAMPLES_PASSED_CONSERVATIVE GL_PRIMITIVES_GENERATED,

GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN, GL_TIME_ELAPSED, or GL_TIMESTAMP

      GLenum pname,

GL_CURRENT_QUERY  查詢id

GL_QUERY_COUNTER_BITS 位數

      GLint * params

glGetQueryObjectiv 2.0

獲取查詢結果

GLuint id,

      GLenum pname,:

GL_QUERY_RESULT  獲取查詢結果,會等待查詢之間渲染完成

GL_QUERY_RESULT_AVAILABLE 查詢結果是否可用

GL_QUERY_RESULT_NO_WAIT  獲取查詢采樣通過數,但不等待,不可用時params值不會被修改

      GLint * params 如果綁定了GL_QUERY_RESULT_BUFFER,此參數為偏移量,否則為客戶端數據地址

 

參考glBeginQuery\glBeginConditionRender

glGetRenderbufferParameteriv 3.0

獲取Renderbuffer相關信息

GLenum target, : GL_RENDERBUFFER

      GLenum pname,

GL_RENDERBUFFER_WIDTH, GL_RENDERBUFFER_HEIGHT,  寬高

GL_RENDERBUFFER_INTERNAL_FORMAT 格式

GL_RENDERBUFFER_SAMPLES 采樣數

GL_RENDERBUFFER_RED/GREEN/BLUE/ALPHA/DEPTH/STENCIL_SIZE 各成分大小

      GLint *params

參考glBindRenderbuffer、glRenderbufferStorage

glGetSamplerParameteri/fv 3.0

獲取采樣器參數

         GLuint sampler,

      GLenum pname,:

GL_TEXTURE_MAG_FILTER,  :GL_NEAREST/GL_LINEAR 默認GL_LINEAR.

GL_TEXTURE_MIN_FILTER,  :GL_NEAREST,GL_LINEAR ,GL_NEAREST/ LINEAR._MIPMAP_NEAREST/ LINEAR., 默認GL_NEAREST_MIPMAP_LINEAR

GL_TEXTURE_MIN_LOD,  默認-1000

GL_TEXTURE_MAX_LOD, 默認1000

GL_TEXTURE_LOD_BIAS, 默認0

GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, :

GL_REPEAT, GL_MIRRORED_REPEAT, GL_CLAMP_TO_EDGE/BOARDER, or GL_MIRROR_CLAMP_TO_EDGE(4.4).默認GL_REPEAT

GL_TEXTURE_BORDER_COLOR, 默認(0, 0, 0, 0).

GL_TEXTURE_COMPARE_MODE,:

 GL_COMPARE_REF_TO_TEXTURE ,  用於比較深度紋理紋理采樣,當紋理坐標r<=采樣值時返回1,其它返回0, ,<=為默認的compare func

默認GL_NONE,用於普通紋讀取紋理采樣值

GL_TEXTURE_COMPARE_FUNC默認GL_LEQUAL

      GLint * params

glGetShaderiv 2.0

獲取shader基本信息

GLuint shader,

      GLenum pname,

GL_SHADER_TYPE,  :類型 GL_VERTEX/ GEOMETRY/FRAGMENT_SHADER

GL_DELETE_STATUS,  是否標記為刪除

GL_COMPILE_STATUS,  編譯狀態

GL_INFO_LOG_LENGTH,  日志信息長度, 獲取信息使用glGetShaderInfoLog

GL_SHADER_SOURCE_LENGTH. 代碼長度, 獲取代碼使用glGetShaderSource

      GLint *params

glGetShaderInfoLog 2.0

獲取shader編譯日志信息

GLuint shader,

      GLsizei maxLength,

      GLsizei *length,

      GLchar *infoLog

glGetShaderPrecisionFormat 4.1

獲取頂點、片段程序精度

GLenum shaderType, :GL_VERTEX_SHADER or GL_FRAGMENT_SHADER

      GLenum precisionType, :GL_LOW_FLOAT, GL_MEDIUM_FLOAT GL_HIGH_FLOAT, GL_LOW_INT, GL_MEDIUM_INT, or GL_HIGH_INT

      GLint *range, 兩個整數range[0] = floor(log2(|min|)) and range[1] = floor(log2(|max|))

      GLint *precision floor(-log2(eps)). Eps為最小的大於1的數-1,即最小的大於1的數為1+eps

glGetShaderSource 2.0

獲取shader代碼

         GLuint shader,

      GLsizei bufSize,

      GLsizei *length,

      GLchar *source

glGetString 2.0

獲取顯卡、驅動相關信息

GLenum name:

         GL_VENDOR, GL_RENDERER,

GL_VERSION(不同於glGet查詢的當前上下文版本),

GL_SHADING_LANGUAGE_VERSION

glGetSubroutineIndex 4.0

根據名稱查詢子例程索引

         GLuint program,

      GLenum shadertype, : GL_VERTEX_SHADER, GL_TESS_CONTROL/EVALUATION_SHADER, GL_GEOMETRY_SHADER or GL_FRAGMENT_SHADER

      const GLchar *name

glGetSubroutineUniformLocation 4.0

根據名稱獲取子例程位置

         GLuint program,

      GLenum shadertype, : GL_VERTEX_SHADER, GL_TESS_CONTROL/EVALUATION_SHADER, GL_GEOMETRY_SHADER or GL_FRAGMENT_SHADER

      const GLchar *name

參考glUniformSubroutinesuiv

glGetSynciv 3.2

獲取同步對象信息

GLsync sync,

      GLenum pname,信息類型:

                  GL_OBJECT_TYPE 類型,只能為GL_SYNC_FENCE

GL_SYNC_STATUS 狀態,GL_SIGNALED or GL_UNSIGNALED

GL_SYNC_CONDITION 同步條件,只能為GL_SYNC_GPU_COMMANDS_COMPLETE

GL_SYNC_FLAGS 同步標記,尚未使用

      GLsizei bufSize,

      GLsizei *length,

      GLint *values

glGetTexImage 2.0

獲取紋理圖數據

GLenum target, GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_TEXTURE_CUBE_MAP_POSITIVE_X,  GL_TEXTURE_CUBE_MAP_ARRAY….

      GLint level,

      GLenum format,: GL_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL, GL_RED, GL_GREEN, GL_BLUE, GL_RG, GL_RGB, GL_RGBA, GL_BGR,

GL_BGRA, GL_RED_INTEGER, GL_GREEN_INTEGER, GL_BLUE_INTEGER, GL_RG_INTEGER, GL_RGB_INTEGER, GL_RGBA_INTEGER,

GL_BGR_INTEGER, GL_BGRA_INTEGER

      GLenum type, : GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_HALF_FLOAT, GL_FLOAT,

GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV,

GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1,

GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2,

GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_INT_24_8, GL_UNSIGNED_INT_10F_11F_11F_REV, GL_UNSIGNED_INT_5_9_9_9_REV,

and GL_FLOAT_32_UNSIGNED_INT_24_8_REV

      GLvoid * pixels  如果GL_PIXEL_PACK_BUFFER不為0,則為對應buffer偏移量

 

?將四成分紋理數據提取到同樣大小的rgba緩沖區時,不會產生像素傳輸?

雙成分的紋理數據提取到rgba緩沖區時,將填充RA,GB為0

glGetTextureSubImage 4.5

獲取紋理區域數據,不能用於緩沖區或多重采樣紋理

         GLuint texture,

      GLint level,

      GLint xoffset,

      GLint yoffset,

      GLint zoffset,

      GLsizei width,

      GLsizei height,

      GLsizei depth,

      GLenum format,

      GLenum type,

      GLsizei bufSize,

      void *pixels

其它與glGetTexImage類似

glGetTexLevelParameteri/fv 2.0

獲取紋理層信息(紋理數據相關)

GLenum target, , GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_TEXTURE_CUBE_MAP_POSITIVE_X,  GL_TEXTURE_CUBE_MAP_ARRAY….

      GLint level,

      GLenum pname, :

GL_TEXTURE_WIDTH, GL_TEXTURE_HEIGHT, GL_TEXTURE_DEPTH, 紋理大小

GL_TEXTURE_INTERNAL_FORMAT,

GL_TEXTURE_RED/GREEN/BLUE/ALPHA/DEPTH_TYPE 各成分類型:GL_NONE, GL_SIGNED_NORMALIZED, GL_UNSIGNED_NORMALIZED, GL_FLOAT,

                                                                                                                           GL_INT,

GL_TEXTURE_RED/GREEN/BLUE/ALPHA/DEPTH_SIZE  各成分大小

GL_TEXTURE_COMPRESSED,  是否壓縮

GL_TEXTURE_COMPRESSED_IMAGE_SIZE,  大小

GL_TEXTURE_BUFFER_OFFSET、GL_TEXTURE_BUFFER_SIZE 對應buffer區域大小、偏移,參考glTexBufferRange 4.3

 

      GLfloat * params

glGetTexParameteri/fv 2.0

獲取紋理信息(紋理采樣相關)

GLenum target, : GL_TEXTURE_1D, GL_TEXTURE_1D_ARRAY, GL_TEXTURE_2D, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_2D_MULTISAMPLE,

GL_TEXTURE_2D_MULTISAMPLE_ARRAY, GL_TEXTURE_3D, GL_TEXTURE_CUBE_MAP, GL_TEXTURE_RECTANGLE, and GL_TEXTURE_CUBE_MAP_ARRAY

      GLenum pname,: GL_DEPTH_STENCIL_TEXTURE_MODE, GL_TEXTURE_BASE_LEVEL,

GL_TEXTURE_BORDER_COLOR, GL_TEXTURE_COMPARE_MODE, GL_TEXTURE_COMPARE_FUNC, GL_TEXTURE_IMMUTABLE_LEVELS, GL_TEXTURE_LOD_BIAS, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MAX_LEVEL, GL_TEXTURE_MAX_LOD, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_SWIZZLE_R, GL_TEXTURE_SWIZZLE_G, GL_TEXTURE_SWIZZLE_B, GL_TEXTURE_SWIZZLE_A, GL_TEXTURE_SWIZZLE_RGBA GL_TEXTURE_VIEW_MIN_LAYER, GL_TEXTURE_VIEW_MIN_LEVEL, GL_TEXTURE_VIEW_NUM_LAYERS, GL_TEXTURE_VIEW_NUM_LEVELS, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, and GL_TEXTURE_WRAP_R

參數:,GL_TEXTURE_TARGET, GL_TEXTURE_IMMUTABLE_FORMAT,,GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 不是通過glTexParameter設置

      GLint * params

參考glT exParameter

glGetTransformFeedbackiv/i_v/i64_v 4.5

獲取變換反饋信息:

GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 當前綁定的變換反饋

GL_TRANSFORM_FEEDBACK_PAUSED  是否暫定

GL_TRANSFORM_FEEDBACK_ACTIVE 是否正在執行

GL_TRANSFORM_FEEDBACK_BUFFER_START/SIZE 綁定的緩沖區起始、大小

glGetTransformFeedbackVarying 3.0

根據索引查詢變換反饋的變量名稱、類型、大小

GLuintprogram,

      GLuint index,

      GLsizei bufSize,

      GLsizei *length, 名稱長度

      GLsizei *size,   大小(type為單位)

      GLenum *type,  類型

      char *name 名稱

參考glTransformFeedbackVaryings

glGetUniformi/fv 2.0

獲取Uniform變量值

GLuint program,

      GLint location,

      GLfloat *params

數組、結構成員需要逐個獲取

glGetUniformBlockIndex 3.1

返回Uniform塊對應的索引

         GLuint program,

      const GLchar *uniformBlockName

參考glUniformBlockBinding

glGetUniformIndices 3.1

根據名稱一次獲取多個uniform索引

         GLuint program,

      GLsizei uniformCount,

      const GLchar **uniformNames,

      GLuint *uniformIndices

不存在的名稱對應索引為GL_INVALID_INDEX

根據索引可以使用glGetActiveUniform獲取uniform變量相關信息:名稱、類型、大小

 

索引(index)和位置(location)的區別:  索引用於直接獲取變量本身信息,對應的是順序號,location用於設置獲取變量對應數據,對應的是數據地址

glGetUniformLocation 2.0

根據名稱獲取uniform變量地址

GLuint program,

      const GLchar *name

數組或者結構可以通過[index]和.fieldName獲取

glGetUniformSubroutineuiv 4.0

根據location獲取當前程序suroutine uniform值

GLenum shadertype, :GL_VERTEX_SHADER, GL_TESS_CONTROL/EVALUATION_SHADER, GL_GEOMETRY_SHADER or GL_FRAGMENT_SHADER

      GLint location,

      GLuint *values

glGetVertexArrayIndexediv/64iv 4.5

根據索引獲取VAO屬性信息, 與glGetVertexAttrib類似

         GLuint vaobj,

      GLuint index,  屬性索引,參考glVertexAttribPointer

      GLenum pname,

                  GL_VERTEX_ATTRIB_ARRAY_ENABLED 屬性是否啟用

GL_VERTEX_ATTRIB_ARRAY_SIZE 大小1/2/3/4(成分個數)

GL_VERTEX_ATTRIB_ARRAY_TYPE 類型GL_BYTE, GL_DOUBLE, GL_FIXED, GL_FLOAT, GL_HALF_FLOAT, GL_INT, GL_INT_2_10_10_10_REV, GL_SHORT,

GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, GL_UNSIGNED_INT, GL_UNSIGNED_INT_2_10_10_10_REV, and GL_UNSIGNED_INT_10F_11F_11F_REV

GL_VERTEX_ATTRIB_ARRAY_STRIDE  相鄰元素偏差字節數,0表示連續存放

GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 是否需要normailized

GL_VERTEX_ATTRIB_ARRAY_INTEGER 是否是整數類型

GL_VERTEX_ATTRIB_ARRAY_LONG  是否是double類型

GL_VERTEX_ATTRIB_ARRAY_DIVISOR 實例渲染divisor, 參考glVertexAttribDivisor

GL_VERTEX_ATTRIB_RELATIVE_OFFSET 綁定緩沖區時偏移量

      GLint *param

glGetVertexArrayiv 4.5

獲取VAO綁定的索引緩沖區

時GLuint vaobj,

      GLenum pname, :  GL_ELEMENT_ARRAY_BUFFER_BINDING

      GLint *param

 

glGetVertexAttribi/fv 2.0

獲取頂點屬性信息,與glGetVertexIndexediv類似

 

多了GL_CURRENT_VERTEX_ATTRIB:   params returns four values that represent the current value for the generic vertex attribute specified by index. Generic vertex attribute 0 is unique in that it has no current state, so an error will be generated if index is 0. The initial value for all other generic vertex attributes is (0,0,0,1).

glGetVertexAttribPointerv 2.0

獲取頂點屬性數據指針,當GL_ARRAY_BUFFER不為0時,為對應buffer偏移量

GLuint index,

      GLenum pname, GL_VERTEX_ATTRIB_ARRAY_POINTER

      GLvoid **pointer


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM