Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 745a731

Browse files
authoredNov 23, 2024··
Add bindings for OpenGL 4.3 core profile (#4)
1 parent 87fbedb commit 745a731

File tree

2 files changed

+588
-23
lines changed

2 files changed

+588
-23
lines changed
 

‎src/bindings.zig

Lines changed: 507 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2812,6 +2812,47 @@ pub var drawTransformFeedbackStreamInstanced: *const fn (
28122812
// OpenGL 4.3 (Core Profile)
28132813
//
28142814
//--------------------------------------------------------------------------------------------------
2815+
pub const NUM_SHADING_LANGUAGE_VERSIONS = 0x82E9;
2816+
pub const VERTEX_ATTRIB_ARRAY_LONG = 0x874E;
2817+
// ARB_arrays_of_arrays (none)
2818+
// ARB_fragment_layer_viewport (none, GLSL only)
2819+
// ARB_shader_image_size (none, GLSL only)
2820+
// ARB_ES3_compatibility
2821+
pub const COMPRESSED_RGB8_ETC2 = 0x9274;
2822+
pub const COMPRESSED_SRGB8_ETC2 = 0x9275;
2823+
pub const COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9276;
2824+
pub const COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9277;
2825+
pub const COMPRESSED_RGBA8_ETC2_EAC = 0x9278;
2826+
pub const COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 0x9279;
2827+
pub const COMPRESSED_R11_EAC = 0x9270;
2828+
pub const COMPRESSED_SIGNED_R11_EAC = 0x9271;
2829+
pub const COMPRESSED_RG11_EAC = 0x9272;
2830+
pub const COMPRESSED_SIGNED_RG11_EAC = 0x9273;
2831+
pub const PRIMITIVE_RESTART_FIXED_INDEX = 0x8D69;
2832+
pub const ANY_SAMPLES_PASSED_CONSERVATIVE = 0x8D6A;
2833+
pub const MAX_ELEMENT_INDEX = 0x8D6B;
2834+
// ARB_clear_buffer_object (none)
2835+
// ARB_compute_shader
2836+
pub const COMPUTE_SHADER = 0x91B9;
2837+
pub const MAX_COMPUTE_UNIFORM_BLOCKS = 0x91BB;
2838+
pub const MAX_COMPUTE_TEXTURE_IMAGE_UNITS = 0x91BC;
2839+
pub const MAX_COMPUTE_IMAGE_UNIFORMS = 0x91BD;
2840+
pub const MAX_COMPUTE_SHARED_MEMORY_SIZE = 0x8262;
2841+
pub const MAX_COMPUTE_UNIFORM_COMPONENTS = 0x8263;
2842+
pub const MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = 0x8264;
2843+
pub const MAX_COMPUTE_ATOMIC_COUNTERS = 0x8265;
2844+
pub const MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = 0x8266;
2845+
pub const MAX_COMPUTE_WORK_GROUP_INVOCATIONS = 0x90EB;
2846+
pub const MAX_COMPUTE_WORK_GROUP_COUNT = 0x91BE;
2847+
pub const MAX_COMPUTE_WORK_GROUP_SIZE = 0x91BF;
2848+
pub const COMPUTE_WORK_GROUP_SIZE = 0x8267;
2849+
pub const UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER = 0x90EC;
2850+
pub const ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER = 0x90ED;
2851+
pub const DISPATCH_INDIRECT_BUFFER = 0x90EE;
2852+
pub const DISPATCH_INDIRECT_BUFFER_BINDING = 0x90EF;
2853+
pub const COMPUTE_SHADER_BIT = 0x00000020;
2854+
// ARB_copy_image (none)
2855+
// KHR_debug
28152856
pub const DEBUGPROC = *const fn (
28162857
source: Enum,
28172858
type: Enum,
@@ -2821,7 +2862,10 @@ pub const DEBUGPROC = *const fn (
28212862
message: [*c]const Char,
28222863
userParam: *const anyopaque,
28232864
) callconv(.C) void;
2824-
pub const DEBUG_OUTPUT = 0x92E0;
2865+
pub const DEBUG_OUTPUT_SYNCHRONOUS = 0x8242;
2866+
pub const DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = 0x8243;
2867+
pub const DEBUG_CALLBACK_FUNCTION = 0x8244;
2868+
pub const DEBUG_CALLBACK_USER_PARAM = 0x8245;
28252869
pub const DEBUG_SOURCE_API = 0x8246;
28262870
pub const DEBUG_SOURCE_WINDOW_SYSTEM = 0x8247;
28272871
pub const DEBUG_SOURCE_SHADER_COMPILER = 0x8248;
@@ -2833,17 +2877,471 @@ pub const DEBUG_TYPE_DEPRECATED_BEHAVIOR = 0x824D;
28332877
pub const DEBUG_TYPE_UNDEFINED_BEHAVIOR = 0x824E;
28342878
pub const DEBUG_TYPE_PORTABILITY = 0x824F;
28352879
pub const DEBUG_TYPE_PERFORMANCE = 0x8250;
2836-
pub const DEBUG_TYPE_MARKER = 0x8268;
2837-
pub const DEBUG_TYPE_PUSH_GROUP = 0x8269;
2838-
pub const DEBUG_TYPE_POP_GROUP = 0x826A;
28392880
pub const DEBUG_TYPE_OTHER = 0x8251;
2881+
pub const MAX_DEBUG_MESSAGE_LENGTH = 0x9143;
2882+
pub const MAX_DEBUG_LOGGED_MESSAGES = 0x9144;
2883+
pub const DEBUG_LOGGED_MESSAGES = 0x9145;
28402884
pub const DEBUG_SEVERITY_HIGH = 0x9146;
28412885
pub const DEBUG_SEVERITY_MEDIUM = 0x9147;
28422886
pub const DEBUG_SEVERITY_LOW = 0x9148;
2887+
pub const DEBUG_TYPE_MARKER = 0x8268;
2888+
pub const DEBUG_TYPE_PUSH_GROUP = 0x8269;
2889+
pub const DEBUG_TYPE_POP_GROUP = 0x826A;
28432890
pub const DEBUG_SEVERITY_NOTIFICATION = 0x826B;
2891+
pub const MAX_DEBUG_GROUP_STACK_DEPTH = 0x826C;
2892+
pub const DEBUG_GROUP_STACK_DEPTH = 0x826D;
2893+
pub const BUFFER = 0x82E0;
2894+
pub const SHADER = 0x82E1;
2895+
pub const PROGRAM = 0x82E2;
2896+
// pub const VERTEX_ARRAY = 0x8074; // already defined?
2897+
pub const QUERY = 0x82E3;
2898+
pub const PROGRAM_PIPELINE = 0x82E4;
2899+
pub const SAMPLER = 0x82E6;
2900+
pub const MAX_LABEL_LENGTH = 0x82E8;
2901+
pub const DEBUG_OUTPUT = 0x92E0;
2902+
pub const CONTEXT_FLAG_DEBUG_BIT = 0x00000002;
2903+
// ARB_explicit_uniform_location
2904+
pub const MAX_UNIFORM_LOCATIONS = 0x826E;
2905+
// ARB_framebuffer_no_attachments
2906+
pub const FRAMEBUFFER_DEFAULT_WIDTH = 0x9310;
2907+
pub const FRAMEBUFFER_DEFAULT_HEIGHT = 0x9311;
2908+
pub const FRAMEBUFFER_DEFAULT_LAYERS = 0x9312;
2909+
pub const FRAMEBUFFER_DEFAULT_SAMPLES = 0x9313;
2910+
pub const FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = 0x9314;
2911+
pub const MAX_FRAMEBUFFER_WIDTH = 0x9315;
2912+
pub const MAX_FRAMEBUFFER_HEIGHT = 0x9316;
2913+
pub const MAX_FRAMEBUFFER_LAYERS = 0x9317;
2914+
pub const MAX_FRAMEBUFFER_SAMPLES = 0x9318;
2915+
// ARB_internalformat_query2
2916+
pub const INTERNALFORMAT_SUPPORTED = 0x826F;
2917+
pub const INTERNALFORMAT_PREFERRED = 0x8270;
2918+
pub const INTERNALFORMAT_RED_SIZE = 0x8271;
2919+
pub const INTERNALFORMAT_GREEN_SIZE = 0x8272;
2920+
pub const INTERNALFORMAT_BLUE_SIZE = 0x8273;
2921+
pub const INTERNALFORMAT_ALPHA_SIZE = 0x8274;
2922+
pub const INTERNALFORMAT_DEPTH_SIZE = 0x8275;
2923+
pub const INTERNALFORMAT_STENCIL_SIZE = 0x8276;
2924+
pub const INTERNALFORMAT_SHARED_SIZE = 0x8277;
2925+
pub const INTERNALFORMAT_RED_TYPE = 0x8278;
2926+
pub const INTERNALFORMAT_GREEN_TYPE = 0x8279;
2927+
pub const INTERNALFORMAT_BLUE_TYPE = 0x827A;
2928+
pub const INTERNALFORMAT_ALPHA_TYPE = 0x827B;
2929+
pub const INTERNALFORMAT_DEPTH_TYPE = 0x827C;
2930+
pub const INTERNALFORMAT_STENCIL_TYPE = 0x827D;
2931+
pub const MAX_WIDTH = 0x827E;
2932+
pub const MAX_HEIGHT = 0x827F;
2933+
pub const MAX_DEPTH = 0x8280;
2934+
pub const MAX_LAYERS = 0x8281;
2935+
pub const MAX_COMBINED_DIMENSIONS = 0x8282;
2936+
pub const COLOR_COMPONENTS = 0x8283;
2937+
pub const DEPTH_COMPONENTS = 0x8284;
2938+
pub const STENCIL_COMPONENTS = 0x8285;
2939+
pub const COLOR_RENDERABLE = 0x8286;
2940+
pub const DEPTH_RENDERABLE = 0x8287;
2941+
pub const STENCIL_RENDERABLE = 0x8288;
2942+
pub const FRAMEBUFFER_RENDERABLE = 0x8289;
2943+
pub const FRAMEBUFFER_RENDERABLE_LAYERED = 0x828A;
2944+
pub const FRAMEBUFFER_BLEND = 0x828B;
2945+
pub const READ_PIXELS = 0x828C;
2946+
pub const READ_PIXELS_FORMAT = 0x828D;
2947+
pub const READ_PIXELS_TYPE = 0x828E;
2948+
pub const TEXTURE_IMAGE_FORMAT = 0x828F;
2949+
pub const TEXTURE_IMAGE_TYPE = 0x8290;
2950+
pub const GET_TEXTURE_IMAGE_FORMAT = 0x8291;
2951+
pub const GET_TEXTURE_IMAGE_TYPE = 0x8292;
2952+
pub const MIPMAP = 0x8293;
2953+
pub const MANUAL_GENERATE_MIPMAP = 0x8294;
2954+
pub const AUTO_GENERATE_MIPMAP = 0x8295;
2955+
pub const COLOR_ENCODING = 0x8296;
2956+
pub const SRGB_READ = 0x8297;
2957+
pub const SRGB_WRITE = 0x8298;
2958+
pub const FILTER = 0x829A;
2959+
pub const VERTEX_TEXTURE = 0x829B;
2960+
pub const TESS_CONTROL_TEXTURE = 0x829C;
2961+
pub const TESS_EVALUATION_TEXTURE = 0x829D;
2962+
pub const GEOMETRY_TEXTURE = 0x829E;
2963+
pub const FRAGMENT_TEXTURE = 0x829F;
2964+
pub const COMPUTE_TEXTURE = 0x82A0;
2965+
pub const TEXTURE_SHADOW = 0x82A1;
2966+
pub const TEXTURE_GATHER = 0x82A2;
2967+
pub const TEXTURE_GATHER_SHADOW = 0x82A3;
2968+
pub const SHADER_IMAGE_LOAD = 0x82A4;
2969+
pub const SHADER_IMAGE_STORE = 0x82A5;
2970+
pub const SHADER_IMAGE_ATOMIC = 0x82A6;
2971+
pub const IMAGE_TEXEL_SIZE = 0x82A7;
2972+
pub const IMAGE_COMPATIBILITY_CLASS = 0x82A8;
2973+
pub const IMAGE_PIXEL_FORMAT = 0x82A9;
2974+
pub const IMAGE_PIXEL_TYPE = 0x82AA;
2975+
pub const SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST = 0x82AC;
2976+
pub const SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST = 0x82AD;
2977+
pub const SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE = 0x82AE;
2978+
pub const SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE = 0x82AF;
2979+
pub const TEXTURE_COMPRESSED_BLOCK_WIDTH = 0x82B1;
2980+
pub const TEXTURE_COMPRESSED_BLOCK_HEIGHT = 0x82B2;
2981+
pub const TEXTURE_COMPRESSED_BLOCK_SIZE = 0x82B3;
2982+
pub const CLEAR_BUFFER = 0x82B4;
2983+
pub const TEXTURE_VIEW = 0x82B5;
2984+
pub const VIEW_COMPATIBILITY_CLASS = 0x82B6;
2985+
pub const FULL_SUPPORT = 0x82B7;
2986+
pub const CAVEAT_SUPPORT = 0x82B8;
2987+
pub const IMAGE_CLASS_4_X_32 = 0x82B9;
2988+
pub const IMAGE_CLASS_2_X_32 = 0x82BA;
2989+
pub const IMAGE_CLASS_1_X_32 = 0x82BB;
2990+
pub const IMAGE_CLASS_4_X_16 = 0x82BC;
2991+
pub const IMAGE_CLASS_2_X_16 = 0x82BD;
2992+
pub const IMAGE_CLASS_1_X_16 = 0x82BE;
2993+
pub const IMAGE_CLASS_4_X_8 = 0x82BF;
2994+
pub const IMAGE_CLASS_2_X_8 = 0x82C0;
2995+
pub const IMAGE_CLASS_1_X_8 = 0x82C1;
2996+
pub const IMAGE_CLASS_11_11_10 = 0x82C2;
2997+
pub const IMAGE_CLASS_10_10_10_2 = 0x82C3;
2998+
pub const VIEW_CLASS_128_BITS = 0x82C4;
2999+
pub const VIEW_CLASS_96_BITS = 0x82C5;
3000+
pub const VIEW_CLASS_64_BITS = 0x82C6;
3001+
pub const VIEW_CLASS_48_BITS = 0x82C7;
3002+
pub const VIEW_CLASS_32_BITS = 0x82C8;
3003+
pub const VIEW_CLASS_24_BITS = 0x82C9;
3004+
pub const VIEW_CLASS_16_BITS = 0x82CA;
3005+
pub const VIEW_CLASS_8_BITS = 0x82CB;
3006+
pub const VIEW_CLASS_S3TC_DXT1_RGB = 0x82CC;
3007+
pub const VIEW_CLASS_S3TC_DXT1_RGBA = 0x82CD;
3008+
pub const VIEW_CLASS_S3TC_DXT3_RGBA = 0x82CE;
3009+
pub const VIEW_CLASS_S3TC_DXT5_RGBA = 0x82CF;
3010+
pub const VIEW_CLASS_RGTC1_RED = 0x82D0;
3011+
pub const VIEW_CLASS_RGTC1_RG = 0x82D1;
3012+
pub const VIEW_CLASS_BPTC_UNORM = 0x82D2;
3013+
pub const VIEW_CLASS_BPTC_FLOAT = 0x82D3;
3014+
// ARB_invalidate_subdata (none)
3015+
// ARB_multi_draw_indirect (nonw)
3016+
// ARB_program_interface_query
3017+
pub const UNIFORM = 0x92E1;
3018+
pub const UNIFORM_BLOCK = 0x92E2;
3019+
pub const PROGRAM_INPUT = 0x92E3;
3020+
pub const PROGRAM_OUTPUT = 0x92E4;
3021+
pub const BUFFER_VARIABLE = 0x92E5;
3022+
pub const SHADER_STORAGE_BLOCK = 0x92E6;
3023+
pub const VERTEX_SUBROUTINE = 0x92E8;
3024+
pub const TESS_CONTROL_SUBROUTINE = 0x92E9;
3025+
pub const TESS_EVALUATION_SUBROUTINE = 0x92EA;
3026+
pub const GEOMETRY_SUBROUTINE = 0x92EB;
3027+
pub const FRAGMENT_SUBROUTINE = 0x92EC;
3028+
pub const COMPUTE_SUBROUTINE = 0x92ED;
3029+
pub const VERTEX_SUBROUTINE_UNIFORM = 0x92EE;
3030+
pub const TESS_CONTROL_SUBROUTINE_UNIFORM = 0x92EF;
3031+
pub const TESS_EVALUATION_SUBROUTINE_UNIFORM = 0x92F0;
3032+
pub const GEOMETRY_SUBROUTINE_UNIFORM = 0x92F1;
3033+
pub const FRAGMENT_SUBROUTINE_UNIFORM = 0x92F2;
3034+
pub const COMPUTE_SUBROUTINE_UNIFORM = 0x92F3;
3035+
pub const TRANSFORM_FEEDBACK_VARYING = 0x92F4;
3036+
pub const ACTIVE_RESOURCES = 0x92F5;
3037+
pub const MAX_NAME_LENGTH = 0x92F6;
3038+
pub const MAX_NUM_ACTIVE_VARIABLES = 0x92F7;
3039+
pub const MAX_NUM_COMPATIBLE_SUBROUTINES = 0x92F8;
3040+
pub const NAME_LENGTH = 0x92F9;
3041+
pub const TYPE = 0x92FA;
3042+
pub const ARRAY_SIZE = 0x92FB;
3043+
pub const OFFSET = 0x92FC;
3044+
pub const BLOCK_INDEX = 0x92FD;
3045+
pub const ARRAY_STRIDE = 0x92FE;
3046+
pub const MATRIX_STRIDE = 0x92FF;
3047+
pub const IS_ROW_MAJOR = 0x9300;
3048+
pub const ATOMIC_COUNTER_BUFFER_INDEX = 0x9301;
3049+
pub const BUFFER_BINDING = 0x9302;
3050+
pub const BUFFER_DATA_SIZE = 0x9303;
3051+
pub const NUM_ACTIVE_VARIABLES = 0x9304;
3052+
pub const ACTIVE_VARIABLES = 0x9305;
3053+
pub const REFERENCED_BY_VERTEX_SHADER = 0x9306;
3054+
pub const REFERENCED_BY_TESS_CONTROL_SHADER = 0x9307;
3055+
pub const REFERENCED_BY_TESS_EVALUATION_SHADER = 0x9308;
3056+
pub const REFERENCED_BY_GEOMETRY_SHADER = 0x9309;
3057+
pub const REFERENCED_BY_FRAGMENT_SHADER = 0x930A;
3058+
pub const REFERENCED_BY_COMPUTE_SHADER = 0x930B;
3059+
pub const TOP_LEVEL_ARRAY_SIZE = 0x930C;
3060+
pub const TOP_LEVEL_ARRAY_STRIDE = 0x930D;
3061+
pub const LOCATION = 0x930E;
3062+
pub const LOCATION_INDEX = 0x930F;
3063+
pub const IS_PER_PATCH = 0x92E7;
3064+
// ARB_robust_buffer_access_bahavior (none)
3065+
// ARB_shader_storage_buffer_object
28443066
pub const SHADER_STORAGE_BUFFER = 0x90D2;
2845-
pub const SHADER_STORAGE_BLOCK = 0x92e6;
2846-
3067+
pub const SHADER_STORAGE_BUFFER_BINDING = 0x90D3;
3068+
pub const SHADER_STORAGE_BUFFER_START = 0x90D4;
3069+
pub const SHADER_STORAGE_BUFFER_SIZE = 0x90D5;
3070+
pub const MAX_VERTEX_SHADER_STORAGE_BLOCKS = 0x90D6;
3071+
pub const MAX_GEOMETRY_SHADER_STORAGE_BLOCKS = 0x90D7;
3072+
pub const MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS = 0x90D8;
3073+
pub const MAX_TESS_EVALUATIONS_SHADER_STORAGE_BLOCKS = 0x90D9;
3074+
pub const MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = 0x90DA;
3075+
pub const MAX_COMPUTE_SHADER_STORAGE_BLOCKS = 0x90DB;
3076+
pub const MAX_COMBINED_SHADER_STORAGE_BLOCKS = 0x90DC;
3077+
pub const MAX_SHADER_STORAGE_BUFFER_BINDINGS = 0x90DD;
3078+
pub const MAX_SHADER_STORAGE_BLOCK_SIZE = 0x90DE;
3079+
pub const SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = 0x90DF;
3080+
pub const SHADER_STORAGE_BARRIER_BIT = 0x00002000;
3081+
pub const MAX_COMBINED_SHADER_OUTPUT_RESOURCES = 0x8F39;
3082+
// ARB_stencil_texturing
3083+
pub const DEPTH_STENCIL_TEXTURE_MODE = 0x90EA;
3084+
// ARB_texture_buffer_range
3085+
pub const TEXTURE_BUFFER_OFFSET = 0x919D;
3086+
pub const TEXTURE_BUFFER_SIZE = 0x919E;
3087+
pub const TEXTURE_BUFFER_OFFSET_ALIGNMENT = 0x919F;
3088+
// ARB_texture_query_levels (none)
3089+
// ARB_texture_storage_multisample (none)
3090+
// ARB_texture_view
3091+
pub const TEXTURE_VIEW_MIN_LEVEL = 0x82DB;
3092+
pub const TEXTURE_VIEW_NUM_LEVELS = 0x82DC;
3093+
pub const TEXTURE_VIEW_MIN_LAYER = 0x82DD;
3094+
pub const TEXTURE_VIEW_NUM_LAYERS = 0x82DE;
3095+
pub const TEXTURE_IMMUTABLE_LEVELS = 0x82DF;
3096+
// ARB_vertex_attrib_binding
3097+
pub const VERTEX_ATTRIB_BINDING = 0x82D4;
3098+
pub const VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D5;
3099+
pub const VERTEX_BINDING_DIVISOR = 0x82D6;
3100+
pub const VERTEX_BINDING_OFFSET = 0x82D7;
3101+
pub const VERTEX_BINDING_STRIDE = 0x82D8;
3102+
pub const MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D9;
3103+
pub const MAX_VERTEX_ATTRIB_BINDINGS = 0x82DA;
3104+
pub const VERTEX_BINDING_BUFFER = 0x8F4F;
3105+
// ARB_arrays_of_arrays (none, GLSL only)
3106+
// ARB_clear_boffer_object
3107+
pub var clearBufferData: *const fn (
3108+
target: Enum,
3109+
internalformat: Enum,
3110+
format: Enum,
3111+
@"type": Enum,
3112+
data: [*c]const u8,
3113+
) callconv(.C) void = undefined;
3114+
pub var clearBufferSubData: *const fn (
3115+
target: Enum,
3116+
internalformat: Enum,
3117+
offset: Intptr,
3118+
size: Sizeiptr,
3119+
format: Enum,
3120+
@"type": Enum,
3121+
data: [*c]const u8,
3122+
) callconv(.C) void = undefined;
3123+
// ARB_compute_shader
3124+
pub var dispatchCompute: *const fn (
3125+
num_groups_x: Uint,
3126+
num_groups_y: Uint,
3127+
num_groups_z: Uint,
3128+
) callconv(.C) void = undefined;
3129+
pub var dispatchComputeIndirect: *const fn (
3130+
indirect: Intptr,
3131+
) callconv(.C) void = undefined;
3132+
// ARB_copy_image
3133+
pub var copyImageSubData: *const fn (
3134+
srcName: Uint,
3135+
srcTarget: Enum,
3136+
srcLevel: Int,
3137+
srcX: Int,
3138+
srcY: Int,
3139+
srcZ: Int,
3140+
dstName: Uint,
3141+
dstTarget: Enum,
3142+
dstLevel: Int,
3143+
dstX: Int,
3144+
dstY: Int,
3145+
dstZ: Int,
3146+
srcWidth: Sizei,
3147+
srcHeight: Sizei,
3148+
srcDepth: Sizei,
3149+
) callconv(.C) void = undefined;
3150+
// ARB_ES3_compatibility (none)
3151+
// ARB_explicit_uniform_location (none)
3152+
// ARB_fragment_layer_viewport (none, GLSL only)
3153+
// ARB_framebuffer_no_attachments
3154+
pub var framebufferParameteri: *const fn (
3155+
target: Enum,
3156+
pname: Enum,
3157+
param: Int,
3158+
) callconv(.C) void = undefined;
3159+
pub var getFramebufferParameteriv: *const fn (
3160+
target: Enum,
3161+
pname: Enum,
3162+
params: [*c]Int,
3163+
) callconv(.C) void = undefined;
3164+
// ARB_internalformat_query2
3165+
pub var getInternalformati64v: *const fn (
3166+
target: Enum,
3167+
internalformat: Enum,
3168+
pname: Enum,
3169+
count: Sizei,
3170+
params: [*c]Int64,
3171+
) callconv(.C) void = undefined;
3172+
// ARB_invalidate_subdata
3173+
pub var invalidateTexSubImage: *const fn (
3174+
texture: Uint,
3175+
level: Int,
3176+
xoffset: Int,
3177+
yoffset: Int,
3178+
zoffset: Int,
3179+
width: Sizei,
3180+
height: Sizei,
3181+
depth: Sizei,
3182+
) callconv(.C) void = undefined;
3183+
pub var invalidateTexImage: *const fn (
3184+
texture: Uint,
3185+
level: Int,
3186+
) callconv(.C) void = undefined;
3187+
pub var invalidateBufferSubData: *const fn (
3188+
buffer: Uint,
3189+
offset: Intptr,
3190+
length: Sizeiptr,
3191+
) callconv(.C) void = undefined;
3192+
pub var invalidateBufferData: *const fn (
3193+
buffer: Uint,
3194+
) callconv(.C) void = undefined;
3195+
pub var invalidateFramebuffer: *const fn (
3196+
target: Enum,
3197+
numAttachments: Sizei,
3198+
attachments: [*c]const Enum,
3199+
) callconv(.C) void = undefined;
3200+
pub var invalidateSubFramebuffer: *const fn (
3201+
target: Enum,
3202+
numAttachments: Sizei,
3203+
attachments: [*c]const Enum,
3204+
x: Int,
3205+
y: Int,
3206+
width: Sizei,
3207+
height: Sizei,
3208+
) callconv(.C) void = undefined;
3209+
// ARB_multi_draw_indirect
3210+
pub var multiDrawArraysIndirect: *const fn (
3211+
mode: Enum,
3212+
indirect: [*c]const u8,
3213+
drawcount: Sizei,
3214+
stride: Sizei,
3215+
) callconv(.C) void = undefined;
3216+
pub var multiDrawElementsIndirect: *const fn (
3217+
mode: Enum,
3218+
@"type": Enum,
3219+
indirect: [*c]const u8,
3220+
drawcount: Sizei,
3221+
stride: Sizei,
3222+
) callconv(.C) void = undefined;
3223+
// ARB_program_interface_query
3224+
pub var getProgramInterfaceiv: *const fn (
3225+
program: Uint,
3226+
programInterface: Enum,
3227+
pname: Enum,
3228+
params: [*c]Int,
3229+
) callconv(.C) void = undefined;
3230+
pub var getProgramResourceIndex: *const fn (
3231+
program: Uint,
3232+
programInterface: Enum,
3233+
name: [*c]const Char,
3234+
) callconv(.C) Uint = undefined;
3235+
pub var getProgramResourceName: *const fn (
3236+
program: Uint,
3237+
programInterface: Enum,
3238+
index: Uint,
3239+
bufSize: Sizei,
3240+
length: *Sizei,
3241+
name: [*c]Char,
3242+
) callconv(.C) void = undefined;
3243+
pub var getProgramResourceiv: *const fn (
3244+
program: Uint,
3245+
programInterface: Enum,
3246+
index: Uint,
3247+
propCount: Sizei,
3248+
props: [*c]const Enum,
3249+
count: Sizei,
3250+
length: *Sizei,
3251+
params: [*c]Int,
3252+
) callconv(.C) void = undefined;
3253+
pub var getProgramResourceLocation: *const fn (
3254+
program: Uint,
3255+
programInterface: Enum,
3256+
name: [*c]const Char,
3257+
) callconv(.C) Int = undefined;
3258+
pub var getProgramResourceLocationIndex: *const fn (
3259+
program: Uint,
3260+
programInterface: Enum,
3261+
name: [*c]const Char,
3262+
) callconv(.C) Int = undefined;
3263+
// ARB_robust_buffer_access_behavior (none)
3264+
// ARB_shader_image_size (none, GLSL only)
3265+
// ARB_shader_storage_buffer_object
3266+
pub var shaderStorageBlockBinding: *const fn (
3267+
program: Uint,
3268+
storageBlockIndex: Uint,
3269+
storageBlockBinding: Uint,
3270+
) callconv(.C) void = undefined;
3271+
// ARB_stencil_texturing (none)
3272+
// ARB_texture_buffer_range
3273+
pub var texBufferRange: *const fn (
3274+
target: Enum,
3275+
internalformat: Enum,
3276+
buffer: Uint,
3277+
offset: Intptr,
3278+
size: Sizeiptr,
3279+
) callconv(.C) void = undefined;
3280+
// ARB_texture_query_levels (none)
3281+
// ARB_texture_storage_multisample
3282+
pub var texStorage2DMultisample: *const fn (
3283+
target: Enum,
3284+
samples: Sizei,
3285+
internalformat: Enum,
3286+
width: Sizei,
3287+
height: Sizei,
3288+
fixedsamplelocations: Boolean,
3289+
) callconv(.C) void = undefined;
3290+
pub var texStorage3DMultisample: *const fn (
3291+
target: Enum,
3292+
samples: Sizei,
3293+
internalformat: Enum,
3294+
width: Sizei,
3295+
height: Sizei,
3296+
depth: Sizei,
3297+
fixedsamplelocations: Boolean,
3298+
) callconv(.C) void = undefined;
3299+
// ARB_texture_view
3300+
pub var textureView: *const fn (
3301+
texture: Uint,
3302+
target: Enum,
3303+
origtexture: Uint,
3304+
internalformat: Enum,
3305+
minlevel: Uint,
3306+
numlevels: Uint,
3307+
minlayer: Uint,
3308+
numlayers: Uint,
3309+
) callconv(.C) void = undefined;
3310+
// ARB_vertex_attrib_binding
3311+
pub var bindVertexBuffer: *const fn (
3312+
bindingindex: Uint,
3313+
buffer: Uint,
3314+
offset: Intptr,
3315+
stride: Sizei,
3316+
) callconv(.C) void = undefined;
3317+
pub var vertexAttribFormat: *const fn (
3318+
attribindex: Uint,
3319+
size: Int,
3320+
@"type": Enum,
3321+
normalized: Boolean,
3322+
relativeoffset: Uint,
3323+
) callconv(.C) void = undefined;
3324+
pub var vertexAttribIFormat: *const fn (
3325+
attribindex: Uint,
3326+
size: Int,
3327+
@"type": Enum,
3328+
relativeoffset: Uint,
3329+
) callconv(.C) void = undefined;
3330+
pub var vertexAttribLFormat: *const fn (
3331+
attribindex: Uint,
3332+
size: Int,
3333+
@"type": Enum,
3334+
relativeoffset: Uint,
3335+
) callconv(.C) void = undefined;
3336+
pub var vertexAttribBinding: *const fn (
3337+
attribindex: Uint,
3338+
bindingindex: Uint,
3339+
) callconv(.C) void = undefined;
3340+
pub var vertexBindingDivisor: *const fn (
3341+
bindingindex: Uint,
3342+
divisor: Uint,
3343+
) callconv(.C) void = undefined;
3344+
// KHR_debug
28473345
pub var debugMessageControl: *const fn (
28483346
source: Enum,
28493347
type: Enum,
@@ -2874,10 +3372,6 @@ pub var getDebugMessageLog: *const fn (
28743372
lengths: [*c]Sizei,
28753373
messageLog: [*c]Char,
28763374
) callconv(.C) Uint = undefined;
2877-
pub var getPointerv: *const fn (
2878-
pname: Enum,
2879-
params: *anyopaque,
2880-
) callconv(.C) void = undefined;
28813375
pub var pushDebugGroup: *const fn (
28823376
source: Enum,
28833377
id: Uint,
@@ -2909,15 +3403,9 @@ pub var getObjectPtrLabel: *const fn (
29093403
length: *Sizei,
29103404
label: [*c]Char,
29113405
) callconv(.C) void = undefined;
2912-
pub var getProgramResourceIndex: *const fn (
2913-
program: Uint,
2914-
programInterface: Enum,
2915-
name: [*c]const Char,
2916-
) callconv(.C) Uint = undefined;
2917-
pub var shaderStorageBlockBinding: *const fn (
2918-
program: Uint,
2919-
storageBlockIndex: Uint,
2920-
storageBlockBinding: Uint,
3406+
pub var getPointerv: *const fn (
3407+
pname: Enum,
3408+
params: *anyopaque,
29213409
) callconv(.C) void = undefined;
29223410
//--------------------------------------------------------------------------------------------------
29233411
//

‎src/zopengl.zig

Lines changed: 81 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -624,20 +624,50 @@ pub fn loadCoreProfile(loader: LoaderFn, major: u32, minor: u32) !void {
624624

625625
// OpenGL 4.3
626626
if (ver >= 43) {
627+
try load("glClearBufferData", .{&bindings.clearBufferData});
628+
try load("glClearBufferSubData", .{&bindings.clearBufferSubData});
629+
try load("glDispatchCompute", .{&bindings.dispatchCompute});
630+
try load("glDispatchComputeIndirect", .{&bindings.dispatchComputeIndirect});
631+
try load("glCopyImageSubData", .{&bindings.copyImageSubData});
632+
try load("glFramebufferParameteri", .{&bindings.framebufferParameteri});
633+
try load("glGetFramebufferParameteriv", .{&bindings.getFramebufferParameteriv});
634+
try load("glGetInternalformati64v", .{&bindings.getInternalformati64v});
635+
try load("glInvalidateTexSubImage", .{&bindings.invalidateTexSubImage});
636+
try load("glInvalidateTexImage", .{&bindings.invalidateTexImage});
637+
try load("glInvalidateBufferSubData", .{&bindings.invalidateBufferSubData});
638+
try load("glInvalidateBufferData", .{&bindings.invalidateBufferData});
639+
try load("glInvalidateFramebuffer", .{&bindings.invalidateFramebuffer});
640+
try load("glInvalidateSubFramebuffer", .{&bindings.invalidateSubFramebuffer});
641+
try load("glMultiDrawArraysIndirect", .{&bindings.multiDrawArraysIndirect});
642+
try load("glMultiDrawElementsIndirect", .{&bindings.multiDrawElementsIndirect});
643+
try load("glGetProgramInterfaceiv", .{&bindings.getProgramInterfaceiv});
644+
try load("glGetProgramResourceIndex", .{&bindings.getProgramResourceIndex});
645+
try load("glGetPrtgramResourceName", .{&bindings.getProgramResourceName});
646+
try load("glGetProgramResourceiv", .{&bindings.getProgramResourceiv});
647+
try load("glGetProgramResourceLocation", .{&bindings.getProgramResourceLocation});
648+
try load("glGetProgramResourceLocationIndex", .{&bindings.getProgramResourceLocationIndex});
649+
try load("glShaderStorageBlockBinding", .{&bindings.shaderStorageBlockBinding});
650+
try load("glTexBufferRange", .{&bindings.texBufferRange});
651+
try load("glTexStorage2DMultisample", .{&bindings.texStorage2DMultisample});
652+
try load("glTexStorage3DMultisample", .{&bindings.texStorage3DMultisample});
653+
try load("glTextureView", .{&bindings.textureView});
654+
try load("glBindVertexBuffer", .{&bindings.bindVertexBuffer});
655+
try load("glVertexAttribFormat", .{&bindings.vertexAttribFormat});
656+
try load("glVertexAttribIFormat", .{&bindings.vertexAttribIFormat});
657+
try load("glVertexAttribLFormat", .{&bindings.vertexAttribLFormat});
658+
try load("glVertexAttribBinding", .{&bindings.vertexAttribBinding});
659+
try load("glVertexBindingDivisor", .{&bindings.vertexBindingDivisor});
627660
try load("glDebugMessageControl", .{&bindings.debugMessageControl});
628661
try load("glDebugMessageInsert", .{&bindings.debugMessageInsert});
629662
try load("glDebugMessageCallback", .{&bindings.debugMessageCallback});
630663
try load("glGetDebugMessageLog", .{&bindings.getDebugMessageLog});
631-
try load("glGetPointerv", .{&bindings.getPointerv});
632664
try load("glPushDebugGroup", .{&bindings.pushDebugGroup});
633665
try load("glPopDebugGroup", .{&bindings.popDebugGroup});
634666
try load("glObjectLabel", .{&bindings.objectLabel});
635667
try load("glGetObjectLabel", .{&bindings.getObjectLabel});
636668
try load("glObjectPtrLabel", .{&bindings.objectPtrLabel});
637669
try load("glGetObjectPtrLabel", .{&bindings.getObjectPtrLabel});
638-
try load("glGetProgramResourceIndex", .{&bindings.getProgramResourceIndex});
639-
try load("glShaderStorageBlockBinding", .{&bindings.shaderStorageBlockBinding});
640-
// TODO
670+
try load("glGetPointerv", .{&bindings.getPointerv});
641671
}
642672

643673
// OpenGL 4.4
@@ -1797,4 +1827,51 @@ comptime {
17971827
@export(&bindings.texStorage3D, .{ .name = "glTexStorage3D", .linkage = linkage });
17981828
@export(&bindings.drawTransformFeedbackInstanced, .{ .name = "glDrawTransformFeedbackInstanced", .linkage = linkage });
17991829
@export(&bindings.drawTransformFeedbackStreamInstanced, .{ .name = "glDrawTransformFeedbackStreamInstanced", .linkage = linkage });
1830+
//----------------------------------------------------------------------------------------------
1831+
// OpenGL 4.3 (Core Profile)
1832+
//----------------------------------------------------------------------------------------------
1833+
@export(&bindings.clearBufferData, .{ .name = "glClearBufferData", .linkage = linkage });
1834+
@export(&bindings.clearBufferSubData, .{ .name = "glClearBufferSubData", .linkage = linkage });
1835+
@export(&bindings.dispatchCompute, .{ .name = "glDispatchCompute", .linkage = linkage });
1836+
@export(&bindings.dispatchComputeIndirect, .{ .name = "glDispatchComputeIndirect", .linkage = linkage });
1837+
@export(&bindings.copyImageSubData, .{ .name = "glCompyImageSubData", .linkage = linkage });
1838+
@export(&bindings.framebufferParameteri, .{ .name = "glFramebufferParameteri", .linkage = linkage });
1839+
@export(&bindings.getFramebufferParameteriv, .{ .name = "glGetFramebufferParameteriv", .linkage = linkage });
1840+
@export(&bindings.getInternalformati64v, .{ .name = "glGetInternalformati64v", .linkage = linkage });
1841+
@export(&bindings.invalidateTexSubImage, .{ .name = "glInvalidateTexSubImage", .linkage = linkage });
1842+
@export(&bindings.invalidateTexImage, .{ .name = "glInvalidateTexImage", .linkage = linkage });
1843+
@export(&bindings.invalidateBufferSubData, .{ .name = "glInvalidateBufferSubData", .linkage = linkage });
1844+
@export(&bindings.invalidateBufferData, .{ .name = "glInvalidateBufferData", .linkage = linkage });
1845+
@export(&bindings.invalidateFramebuffer, .{ .name = "glInvalidateFramebuffer", .linkage = linkage });
1846+
@export(&bindings.invalidateSubFramebuffer, .{ .name = "glInvalidateSubFramebuffer", .linkage = linkage });
1847+
@export(&bindings.multiDrawArraysIndirect, .{ .name = "glMultiDrawArraysIndirect", .linkage = linkage });
1848+
@export(&bindings.multiDrawElementsIndirect, .{ .name = "glMultiDrawElementsIndirect", .linkage = linkage });
1849+
@export(&bindings.getProgramInterfaceiv, .{ .name = "glGetProgramInterfaceiv", .linkage = linkage });
1850+
@export(&bindings.getProgramResourceIndex, .{ .name = "glGetProgramResourceIndex", .linkage = linkage });
1851+
@export(&bindings.getProgramResourceName, .{ .name = "glGetProgramResourceName", .linkage = linkage });
1852+
@export(&bindings.getProgramResourceiv, .{ .name = "glGetProgramResourceiv", .linkage = linkage });
1853+
@export(&bindings.getProgramResourceLocation, .{ .name = "glGetProgramResourceLocation", .linkage = linkage });
1854+
@export(&bindings.getProgramResourceLocationIndex, .{ .name = "glGetProgramResourceLocationIndex", .linkage = linkage });
1855+
@export(&bindings.shaderStorageBlockBinding, .{ .name = "glShaderStorageBlockBinding", .linkage = linkage });
1856+
@export(&bindings.texBufferRange, .{ .name = "glTexBufferRange", .linkage = linkage });
1857+
@export(&bindings.texStorage2DMultisample, .{ .name = "glTexStorage2DMultisample", .linkage = linkage });
1858+
@export(&bindings.texStorage3DMultisample, .{ .name = "glTexStorage3DMultisample", .linkage = linkage });
1859+
@export(&bindings.textureView, .{ .name = "glTextureView", .linkage = linkage });
1860+
@export(&bindings.bindVertexBuffer, .{ .name = "glBindVertexBuffer", .linkage = linkage });
1861+
@export(&bindings.vertexAttribFormat, .{ .name = "glVertexAttribFormat", .linkage = linkage });
1862+
@export(&bindings.vertexAttribIFormat, .{ .name = "glVertexAttribIFormat", .linkage = linkage });
1863+
@export(&bindings.vertexAttribLFormat, .{ .name = "glVertexAttribLFormat", .linkage = linkage });
1864+
@export(&bindings.vertexAttribBinding, .{ .name = "glVertexAttribBinding", .linkage = linkage });
1865+
@export(&bindings.vertexBindingDivisor, .{ .name = "glVertexBindingDivisor", .linkage = linkage });
1866+
@export(&bindings.debugMessageControl, .{ .name = "glDebugMessageControl", .linkage = linkage });
1867+
@export(&bindings.debugMessageInsert, .{ .name = "glDebugMessageInsert", .linkage = linkage });
1868+
@export(&bindings.debugMessageCallback, .{ .name = "glDebugMessageCallback", .linkage = linkage });
1869+
@export(&bindings.getDebugMessageLog, .{ .name = "glGetDebugMessageLog", .linkage = linkage });
1870+
@export(&bindings.pushDebugGroup, .{ .name = "glPushDebugGroup", .linkage = linkage });
1871+
@export(&bindings.popDebugGroup, .{ .name = "glPopDebugGroup", .linkage = linkage });
1872+
@export(&bindings.objectLabel, .{ .name = "glObjectLabel", .linkage = linkage });
1873+
@export(&bindings.getObjectLabel, .{ .name = "glGetObjectLabel", .linkage = linkage });
1874+
@export(&bindings.objectPtrLabel, .{ .name = "glObjectPtrLabel", .linkage = linkage });
1875+
@export(&bindings.getObjectPtrLabel, .{ .name = "glGetObjectPtrLabel", .linkage = linkage });
1876+
@export(&bindings.getPointerv, .{ .name = "glGetPointerv", .linkage = linkage });
18001877
}

0 commit comments

Comments
 (0)
Please sign in to comment.