标签:new and elements getname target 信息 extension tor multi
索引
本部分含很多get函数,大部分用于获取当前设置的状态值,基本上不会用到
GLsizei n,
GLuint * buffers
生成n个未使用的缓冲区对象名称,之后可通过glBindBuffer与缓冲区对象关联。
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+ 直接指定纹理对象
GLsizei n,
GLuint *ids
生成n个帧缓冲区对象名称,可通过glBindFramebuffer绑定
GLsizei n,
GLuint *pipelines
生成n个管线对象名称,可通过glBindProgramPipeline绑定
GLsizei n,
GLuint * ids
生成n个查询对象名称,可通过glBeginQuery绑定
GLsizei n,
GLuint *renderbuffers
生成n个渲染缓冲区名称,可通过glBindRenderbuffer(GL_RENDERBUFFER, id)绑定
生成n个纹理采样器对象名称
生成n个纹理对象名称
生成n个变换反馈对象名称
生成n个顶点数组对象名称
获取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
获取指定程序指定的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
获取程序的指定的属性信息名称、类型、大小,包括内置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;
}
获取子程序名称
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 返回名称
获取子程序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
获取SubroutineUniform名称
GLuint program,
GLenum shadertype,
GLuint index,
GLsizei bufsize,
GLsizei *length,
GLchar *name
获取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;
}
一次获取多个Uniform变量名称、类型、大小信息,与glGetActiveUniform类似
GLuint program,
GLsizei uniformCount,
const GLuint *uniformIndices,
GLenum pname,
GLint *params
获取Uniform变量名称
GLuint program,
GLuint uniformIndex,
GLsizei bufSize,
GLsizei *length,
GLchar *uniformName
获取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
获取名称
GLuint program,
GLuint uniformBlockIndex,
GLsizei bufSize,
GLsizei *length,
GLchar *uniformBlockName
获取program关联的所有shader
GLuint program,
GLsizei maxCount,
GLsizei *count, //返回个数,不需要可以传入0
GLuint *shaders
根据名称获取属性的位置
GLuint program,
const GLchar *name
保留的gl_名称前缀返回-1
获取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
获取mapped数据指针,未map返回0,(与glMapBuffer返回值相同?)
GLenum target, GL_ARRAY_BUFFER GL_ATOMIC_COUNTER_BUFFER…等等
GLenum pname, 固定的GL_BUFFER_MAP_POINTER
GLvoid ** params
GlGetNamedBufferPointerv 4.5
直接获取buffer数据,如果已经mapped则产生错误
GLenum target, GL_ARRAY_BUFFER GL_ATOMIC_COUNTER_BUFFER…等等
GLintptr offset,
GLsizeiptr size,
GLvoid * data
glGetNamedBufferSubData 4.5
获取压缩纹理数据
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
获取压缩纹理子区域,与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
获取日志信息
返回错误代码
调用后错误代码将重置为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
获取片段输出数据对应索引, 返回0/1分别对应颜色混合等式的第一、第二个输入项
GLuint program,
const char * name
参考glBindFragDataLocationIndexed
返回片段程序输出变量对应的颜色缓冲区索引
GLuint program,
const char * name
参考glBindFragDataLocation
获取帧缓冲区附件类型、大小等信息,包括默认绘制缓冲区
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
获取帧缓冲区对象相关信息,包括默认绘制缓冲区
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
获取上下文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
获取内部格式的支持情况
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
获取采样的相对位置信息,返回值为两个浮点数,(0.5, 0.5)表示对应像素中心
GLenum pname, GL_SAMPLE_POSITION
GLuint index, 采样索引, 范围为[0, glGet(GL_SAMPLES))
GLfloat *val
获取对象标记
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
获取ptr指定的同步对象标记
void * ptr,
GLsizei bifSize,
GLsizei * length,
char * label
设置标记使用glObjectPtrLabel
获取debug callback函数指针或者debug callback自定义参数指针
GLenum pname, GL_DEBUG_CALLBACK_FUNCTION or GL_DEBUG_CALLBACK_USER_PARAM
GLvoid ** params
获取程序对象相关信息
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
获取程序编译链接后的二进制数据
GLuint program,
GLsizei bufsize,
GLsizei *length,
GLenum *binaryFormat, 二进制格式,可能和实现相关
void *binary
获取的二进制数据可使用glProgramBinary加载到程序
长度可通过glGetProgram(GL_PROGRAM_BINARY_LENGTH)获取
获取最后链接或验证程序时产生的日志信息
GLuint program,
GLsizei maxLength,
GLsizei *length,
GLchar *infoLog
返回长度包括\0, 可通过glGetProgram(GL_INFO_LOG_LENGTH)获取
获取程序的所有接口信息
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
获取管线对象活动程序和各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
获取日志信息
GLuint pipeline,
GLsizei bufSize,
GLsizei *length,
GLchar *infoLog
相比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
根据名称查询对应的索引
根据名称查询对应位置
根据索引查询名称
查询程序各阶段子程序信息
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
根据索引获取查询信息:查询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
获取查询信息: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
获取查询结果
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
获取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
获取采样器参数
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
获取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
获取shader编译日志信息
GLuint shader,
GLsizei maxLength,
GLsizei *length,
GLchar *infoLog
获取顶点、片段程序精度
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
获取shader代码
GLuint shader,
GLsizei bufSize,
GLsizei *length,
GLchar *source
获取显卡、驱动相关信息
GLenum name:
GL_VENDOR, GL_RENDERER,
GL_VERSION(不同于glGet查询的当前上下文版本),
GL_SHADING_LANGUAGE_VERSION
根据名称查询子例程索引
GLuint program,
GLenum shadertype, : GL_VERTEX_SHADER, GL_TESS_CONTROL/EVALUATION_SHADER, GL_GEOMETRY_SHADER or GL_FRAGMENT_SHADER
const GLchar *name
根据名称获取子例程位置
GLuint program,
GLenum shadertype, : GL_VERTEX_SHADER, GL_TESS_CONTROL/EVALUATION_SHADER, GL_GEOMETRY_SHADER or GL_FRAGMENT_SHADER
const GLchar *name
参考glUniformSubroutinesuiv
获取同步对象信息
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
获取纹理图数据
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
获取纹理区域数据,不能用于缓冲区或多重采样纹理
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类似
获取纹理层信息(纹理数据相关)
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
获取纹理信息(纹理采样相关)
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
获取变换反馈信息:
GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 当前绑定的变换反馈
GL_TRANSFORM_FEEDBACK_PAUSED 是否暂定
GL_TRANSFORM_FEEDBACK_ACTIVE 是否正在执行
GL_TRANSFORM_FEEDBACK_BUFFER_START/SIZE 绑定的缓冲区起始、大小
根据索引查询变换反馈的变量名称、类型、大小
GLuintprogram,
GLuint index,
GLsizei bufSize,
GLsizei *length, 名称长度
GLsizei *size, 大小(type为单位)
GLenum *type, 类型
char *name 名称
参考glTransformFeedbackVaryings
获取Uniform变量值
GLuint program,
GLint location,
GLfloat *params
数组、结构成员需要逐个获取
返回Uniform块对应的索引
GLuint program,
const GLchar *uniformBlockName
参考glUniformBlockBinding
根据名称一次获取多个uniform索引
GLuint program,
GLsizei uniformCount,
const GLchar **uniformNames,
GLuint *uniformIndices
不存在的名称对应索引为GL_INVALID_INDEX
根据索引可以使用glGetActiveUniform获取uniform变量相关信息:名称、类型、大小
索引(index)和位置(location)的区别: 索引用于直接获取变量本身信息,对应的是顺序号,location用于设置获取变量对应数据,对应的是数据地址
根据名称获取uniform变量地址
GLuint program,
const GLchar *name
数组或者结构可以通过[index]和.fieldName获取
根据location获取当前程序suroutine uniform值
GLenum shadertype, :GL_VERTEX_SHADER, GL_TESS_CONTROL/EVALUATION_SHADER, GL_GEOMETRY_SHADER or GL_FRAGMENT_SHADER
GLint location,
GLuint *values
根据索引获取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
获取VAO绑定的索引缓冲区
时GLuint vaobj,
GLenum pname, : GL_ELEMENT_ARRAY_BUFFER_BINDING
GLint *param
获取顶点属性信息,与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).
获取顶点属性数据指针,当GL_ARRAY_BUFFER不为0时,为对应buffer偏移量
GLuint index,
GLenum pname, GL_VERTEX_ATTRIB_ARRAY_POINTER
GLvoid **pointer
标签:new and elements getname target 信息 extension tor multi
原文地址:http://www.cnblogs.com/wiki3d/p/opengl_g.html