roglew 0.2.7 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +39 -37
- data/lib/roglew.rb +31 -24
- data/lib/roglew/contexts/base.rb +22 -12
- data/lib/roglew/contexts/deferred.rb +11 -4
- data/lib/roglew/contexts/immediate.rb +10 -2
- data/lib/roglew/errors.rb +1 -0
- data/lib/roglew/ext/ffi_struct_ext.rb +21 -20
- data/lib/roglew/extensions/GLX_3DFX_multisample.rb +6 -6
- data/lib/roglew/extensions/GLX_AMD_gpu_association.rb +13 -13
- data/lib/roglew/extensions/GLX_ARB_create_context.rb +5 -3
- data/lib/roglew/extensions/GLX_ARB_create_context_profile.rb +6 -6
- data/lib/roglew/extensions/GLX_ARB_create_context_robustness.rb +7 -7
- data/lib/roglew/extensions/GLX_ARB_fbconfig_float.rb +5 -5
- data/lib/roglew/extensions/GLX_ARB_framebuffer_sRGB.rb +4 -4
- data/lib/roglew/extensions/GLX_ARB_get_proc_address.rb +8 -5
- data/lib/roglew/extensions/GLX_ARB_multisample.rb +6 -6
- data/lib/roglew/extensions/GLX_ARB_robustness_application_isolation.rb +4 -4
- data/lib/roglew/extensions/GLX_ARB_robustness_share_group_isolation.rb +4 -4
- data/lib/roglew/extensions/GLX_ARB_vertex_buffer_object.rb +4 -4
- data/lib/roglew/extensions/GLX_ATI_pixel_format_float.rb +4 -4
- data/lib/roglew/extensions/GLX_ATI_render_texture.rb +11 -8
- data/lib/roglew/extensions/GLX_EXT_create_context_es2_profile.rb +4 -4
- data/lib/roglew/extensions/GLX_EXT_create_context_es_profile.rb +4 -4
- data/lib/roglew/extensions/GLX_EXT_fbconfig_packed_float.rb +5 -5
- data/lib/roglew/extensions/GLX_EXT_framebuffer_sRGB.rb +4 -4
- data/lib/roglew/extensions/GLX_EXT_import_context.rb +12 -10
- data/lib/roglew/extensions/GLX_EXT_swap_control.rb +7 -4
- data/lib/roglew/extensions/GLX_EXT_swap_control_tear.rb +4 -4
- data/lib/roglew/extensions/GLX_EXT_texture_from_pixmap.rb +8 -6
- data/lib/roglew/extensions/GLX_EXT_visual_info.rb +19 -19
- data/lib/roglew/extensions/GLX_EXT_visual_rating.rb +6 -6
- data/lib/roglew/extensions/GLX_INTEL_swap_event.rb +7 -7
- data/lib/roglew/extensions/GLX_MESA_agp_offset.rb +6 -4
- data/lib/roglew/extensions/GLX_MESA_copy_sub_buffer.rb +6 -4
- data/lib/roglew/extensions/GLX_MESA_pixmap_colormap.rb +6 -4
- data/lib/roglew/extensions/GLX_MESA_release_buffers.rb +6 -4
- data/lib/roglew/extensions/GLX_MESA_set_3dfx_mode.rb +6 -4
- data/lib/roglew/extensions/GLX_MESA_swap_control.rb +9 -6
- data/lib/roglew/extensions/GLX_NV_copy_image.rb +24 -22
- data/lib/roglew/extensions/GLX_NV_float_buffer.rb +4 -4
- data/lib/roglew/extensions/GLX_NV_multisample_coverage.rb +5 -5
- data/lib/roglew/extensions/GLX_NV_present_video.rb +8 -6
- data/lib/roglew/extensions/GLX_NV_swap_group.rb +16 -14
- data/lib/roglew/extensions/GLX_NV_vertex_array_range.rb +8 -6
- data/lib/roglew/extensions/GLX_NV_video_capture.rb +14 -12
- data/lib/roglew/extensions/GLX_NV_video_out.rb +26 -24
- data/lib/roglew/extensions/GLX_OML_swap_method.rb +7 -7
- data/lib/roglew/extensions/GLX_OML_sync_control.rb +33 -31
- data/lib/roglew/extensions/GLX_SGIS_blended_overlay.rb +4 -4
- data/lib/roglew/extensions/GLX_SGIS_color_range.rb +12 -12
- data/lib/roglew/extensions/GLX_SGIS_multisample.rb +5 -5
- data/lib/roglew/extensions/GLX_SGIS_shared_multisample.rb +5 -5
- data/lib/roglew/extensions/GLX_SGIX_fbconfig.rb +21 -19
- data/lib/roglew/extensions/GLX_SGIX_hyperpipe.rb +26 -24
- data/lib/roglew/extensions/GLX_SGIX_pbuffer.rb +19 -17
- data/lib/roglew/extensions/GLX_SGIX_swap_barrier.rb +8 -6
- data/lib/roglew/extensions/GLX_SGIX_swap_group.rb +6 -4
- data/lib/roglew/extensions/GLX_SGIX_video_resize.rb +14 -12
- data/lib/roglew/extensions/GLX_SGIX_visual_select_group.rb +4 -4
- data/lib/roglew/extensions/GLX_SGI_cushion.rb +6 -4
- data/lib/roglew/extensions/GLX_SGI_make_current_read.rb +8 -6
- data/lib/roglew/extensions/GLX_SGI_swap_control.rb +6 -4
- data/lib/roglew/extensions/GLX_SGI_video_sync.rb +8 -6
- data/lib/roglew/extensions/GLX_SUN_get_transparent_index.rb +6 -4
- data/lib/roglew/extensions/GLX_SUN_video_resize.rb +8 -6
- data/lib/roglew/extensions/GLX_VERSION_1_1.rb +23 -21
- data/lib/roglew/extensions/GLX_VERSION_1_2.rb +9 -7
- data/lib/roglew/extensions/GLX_VERSION_1_3.rb +118 -116
- data/lib/roglew/extensions/GLX_VERSION_1_4.rb +16 -9
- data/lib/roglew/extensions/GL_3DFX_multisample.rb +7 -7
- data/lib/roglew/extensions/GL_3DFX_tbuffer.rb +9 -7
- data/lib/roglew/extensions/GL_3DFX_texture_compression_FXT1.rb +5 -5
- data/lib/roglew/extensions/GL_AMD_blend_minmax_factor.rb +5 -5
- data/lib/roglew/extensions/GL_AMD_debug_output.rb +43 -36
- data/lib/roglew/extensions/GL_AMD_depth_clamp_separate.rb +5 -5
- data/lib/roglew/extensions/GL_AMD_draw_buffers_blend.rb +11 -9
- data/lib/roglew/extensions/GL_AMD_multi_draw_indirect.rb +9 -7
- data/lib/roglew/extensions/GL_AMD_name_gen_delete.rb +20 -18
- data/lib/roglew/extensions/GL_AMD_performance_monitor.rb +30 -28
- data/lib/roglew/extensions/GL_AMD_pinned_memory.rb +4 -4
- data/lib/roglew/extensions/GL_AMD_query_buffer_object.rb +6 -6
- data/lib/roglew/extensions/GL_AMD_sample_positions.rb +14 -12
- data/lib/roglew/extensions/GL_AMD_seamless_cubemap_per_texture.rb +4 -4
- data/lib/roglew/extensions/GL_AMD_stencil_operation_extended.rb +17 -15
- data/lib/roglew/extensions/GL_AMD_vertex_shader_tessellator.rb +21 -19
- data/lib/roglew/extensions/GL_APPLE_aux_depth_stencil.rb +4 -4
- data/lib/roglew/extensions/GL_APPLE_client_storage.rb +4 -4
- data/lib/roglew/extensions/GL_APPLE_element_array.rb +20 -18
- data/lib/roglew/extensions/GL_APPLE_fence.rb +22 -20
- data/lib/roglew/extensions/GL_APPLE_float_pixels.rb +17 -17
- data/lib/roglew/extensions/GL_APPLE_flush_buffer_range.rb +16 -14
- data/lib/roglew/extensions/GL_APPLE_object_purgeable.rb +21 -19
- data/lib/roglew/extensions/GL_APPLE_pixel_buffer.rb +4 -4
- data/lib/roglew/extensions/GL_APPLE_rgb_422.rb +6 -6
- data/lib/roglew/extensions/GL_APPLE_row_bytes.rb +5 -5
- data/lib/roglew/extensions/GL_APPLE_specular_vector.rb +4 -4
- data/lib/roglew/extensions/GL_APPLE_texture_range.rb +20 -18
- data/lib/roglew/extensions/GL_APPLE_transform_hint.rb +4 -4
- data/lib/roglew/extensions/GL_APPLE_vertex_array_object.rb +17 -15
- data/lib/roglew/extensions/GL_APPLE_vertex_array_range.rb +23 -21
- data/lib/roglew/extensions/GL_APPLE_vertex_program_evaluators.rb +29 -27
- data/lib/roglew/extensions/GL_APPLE_ycbcr_422.rb +4 -4
- data/lib/roglew/extensions/GL_ARB_ES2_compatibility.rb +33 -31
- data/lib/roglew/extensions/GL_ARB_ES3_compatibility.rb +16 -16
- data/lib/roglew/extensions/GL_ARB_base_instance.rb +10 -8
- data/lib/roglew/extensions/GL_ARB_blend_func_extended.rb +18 -16
- data/lib/roglew/extensions/GL_ARB_cl_event.rb +15 -13
- data/lib/roglew/extensions/GL_ARB_clear_buffer_object.rb +11 -9
- data/lib/roglew/extensions/GL_ARB_color_buffer_float.rb +18 -16
- data/lib/roglew/extensions/GL_ARB_compressed_texture_pixel_storage.rb +11 -11
- data/lib/roglew/extensions/GL_ARB_compute_shader.rb +32 -30
- data/lib/roglew/extensions/GL_ARB_copy_buffer.rb +15 -13
- data/lib/roglew/extensions/GL_ARB_copy_image.rb +8 -6
- data/lib/roglew/extensions/GL_ARB_debug_output.rb +40 -38
- data/lib/roglew/extensions/GL_ARB_depth_buffer_float.rb +6 -6
- data/lib/roglew/extensions/GL_ARB_depth_clamp.rb +4 -4
- data/lib/roglew/extensions/GL_ARB_depth_texture.rb +8 -8
- data/lib/roglew/extensions/GL_ARB_draw_buffers.rb +30 -28
- data/lib/roglew/extensions/GL_ARB_draw_buffers_blend.rb +11 -9
- data/lib/roglew/extensions/GL_ARB_draw_elements_base_vertex.rb +11 -9
- data/lib/roglew/extensions/GL_ARB_draw_indirect.rb +16 -14
- data/lib/roglew/extensions/GL_ARB_explicit_uniform_location.rb +4 -4
- data/lib/roglew/extensions/GL_ARB_fragment_program.rb +18 -18
- data/lib/roglew/extensions/GL_ARB_fragment_shader.rb +6 -6
- data/lib/roglew/extensions/GL_ARB_framebuffer_no_attachments.rb +25 -23
- data/lib/roglew/extensions/GL_ARB_framebuffer_object.rb +51 -43
- data/lib/roglew/extensions/GL_ARB_framebuffer_object/framebuffer.rb +8 -8
- data/lib/roglew/extensions/GL_ARB_framebuffer_object/framebuffer_context.rb +22 -10
- data/lib/roglew/extensions/GL_ARB_framebuffer_object/renderbuffer.rb +8 -8
- data/lib/roglew/extensions/GL_ARB_framebuffer_object/renderbuffer_context.rb +14 -10
- data/lib/roglew/extensions/GL_ARB_framebuffer_sRGB.rb +4 -4
- data/lib/roglew/extensions/GL_ARB_geometry_shader4.rb +35 -33
- data/lib/roglew/extensions/GL_ARB_get_program_binary.rb +19 -17
- data/lib/roglew/extensions/GL_ARB_gpu_shader5.rb +9 -9
- data/lib/roglew/extensions/GL_ARB_gpu_shader_fp64.rb +42 -40
- data/lib/roglew/extensions/GL_ARB_half_float_pixel.rb +4 -4
- data/lib/roglew/extensions/GL_ARB_half_float_vertex.rb +4 -4
- data/lib/roglew/extensions/GL_ARB_imaging.rb +121 -119
- data/lib/roglew/extensions/GL_ARB_instanced_arrays.rb +16 -14
- data/lib/roglew/extensions/GL_ARB_internalformat_query.rb +14 -12
- data/lib/roglew/extensions/GL_ARB_internalformat_query2.rb +125 -123
- data/lib/roglew/extensions/GL_ARB_invalidate_subdata.rb +13 -11
- data/lib/roglew/extensions/GL_ARB_map_buffer_alignment.rb +4 -4
- data/lib/roglew/extensions/GL_ARB_map_buffer_range.rb +20 -18
- data/lib/roglew/extensions/GL_ARB_matrix_palette.rb +27 -25
- data/lib/roglew/extensions/GL_ARB_multi_draw_indirect.rb +9 -7
- data/lib/roglew/extensions/GL_ARB_multisample.rb +22 -20
- data/lib/roglew/extensions/GL_ARB_multitexture.rb +81 -79
- data/lib/roglew/extensions/GL_ARB_occlusion_query.rb +25 -23
- data/lib/roglew/extensions/GL_ARB_occlusion_query2.rb +4 -4
- data/lib/roglew/extensions/GL_ARB_pixel_buffer_object.rb +8 -8
- data/lib/roglew/extensions/GL_ARB_point_parameters.rb +18 -16
- data/lib/roglew/extensions/GL_ARB_point_sprite.rb +5 -5
- data/lib/roglew/extensions/GL_ARB_program_interface_query.rb +65 -63
- data/lib/roglew/extensions/GL_ARB_provoking_vertex.rb +17 -15
- data/lib/roglew/extensions/GL_ARB_robustness.rb +39 -37
- data/lib/roglew/extensions/GL_ARB_sample_shading.rb +17 -15
- data/lib/roglew/extensions/GL_ARB_sampler_objects.rb +29 -27
- data/lib/roglew/extensions/GL_ARB_seamless_cube_map.rb +5 -5
- data/lib/roglew/extensions/GL_ARB_separate_shader_objects.rb +83 -81
- data/lib/roglew/extensions/GL_ARB_shader_atomic_counters.rb +44 -42
- data/lib/roglew/extensions/GL_ARB_shader_image_load_store.rb +80 -78
- data/lib/roglew/extensions/GL_ARB_shader_objects.rb +87 -85
- data/lib/roglew/extensions/GL_ARB_shader_storage_buffer_object.rb +31 -29
- data/lib/roglew/extensions/GL_ARB_shader_subroutine.rb +31 -29
- data/lib/roglew/extensions/GL_ARB_shading_language_100.rb +4 -4
- data/lib/roglew/extensions/GL_ARB_shading_language_include.rb +21 -19
- data/lib/roglew/extensions/GL_ARB_shadow.rb +6 -6
- data/lib/roglew/extensions/GL_ARB_shadow_ambient.rb +4 -4
- data/lib/roglew/extensions/GL_ARB_stencil_texturing.rb +4 -4
- data/lib/roglew/extensions/GL_ARB_sync.rb +36 -34
- data/lib/roglew/extensions/GL_ARB_tessellation_shader.rb +48 -46
- data/lib/roglew/extensions/GL_ARB_texture_border_clamp.rb +4 -4
- data/lib/roglew/extensions/GL_ARB_texture_buffer_object.rb +20 -18
- data/lib/roglew/extensions/GL_ARB_texture_buffer_range.rb +19 -17
- data/lib/roglew/extensions/GL_ARB_texture_compression.rb +32 -30
- data/lib/roglew/extensions/GL_ARB_texture_compression_bptc.rb +7 -7
- data/lib/roglew/extensions/GL_ARB_texture_compression_rgtc.rb +7 -7
- data/lib/roglew/extensions/GL_ARB_texture_cube_map.rb +15 -15
- data/lib/roglew/extensions/GL_ARB_texture_cube_map_array.rb +10 -10
- data/lib/roglew/extensions/GL_ARB_texture_env_combine.rb +25 -25
- data/lib/roglew/extensions/GL_ARB_texture_env_dot3.rb +5 -5
- data/lib/roglew/extensions/GL_ARB_texture_float.rb +23 -23
- data/lib/roglew/extensions/GL_ARB_texture_gather.rb +6 -6
- data/lib/roglew/extensions/GL_ARB_texture_mirrored_repeat.rb +4 -4
- data/lib/roglew/extensions/GL_ARB_texture_multisample.rb +39 -37
- data/lib/roglew/extensions/GL_ARB_texture_rectangle.rb +9 -9
- data/lib/roglew/extensions/GL_ARB_texture_rg.rb +27 -27
- data/lib/roglew/extensions/GL_ARB_texture_rgb10_a2ui.rb +4 -4
- data/lib/roglew/extensions/GL_ARB_texture_storage.rb +21 -19
- data/lib/roglew/extensions/GL_ARB_texture_storage_multisample.rb +13 -11
- data/lib/roglew/extensions/GL_ARB_texture_swizzle.rb +8 -8
- data/lib/roglew/extensions/GL_ARB_texture_view.rb +20 -18
- data/lib/roglew/extensions/GL_ARB_timer_query.rb +19 -17
- data/lib/roglew/extensions/GL_ARB_transform_feedback2.rb +25 -23
- data/lib/roglew/extensions/GL_ARB_transform_feedback3.rb +20 -0
- data/lib/roglew/extensions/GL_ARB_transform_feedback_instanced.rb +11 -9
- data/lib/roglew/extensions/GL_ARB_transpose_matrix.rb +22 -20
- data/lib/roglew/extensions/GL_ARB_uniform_buffer_object.rb +57 -55
- data/lib/roglew/extensions/GL_ARB_vertex_array_bgra.rb +4 -4
- data/lib/roglew/extensions/GL_ARB_vertex_array_object.rb +31 -26
- data/lib/roglew/extensions/GL_ARB_vertex_array_object/vertex_array.rb +27 -27
- data/lib/roglew/extensions/GL_ARB_vertex_attrib_64bit.rb +30 -28
- data/lib/roglew/extensions/GL_ARB_vertex_attrib_binding.rb +27 -25
- data/lib/roglew/extensions/GL_ARB_vertex_blend.rb +66 -64
- data/lib/roglew/extensions/GL_ARB_vertex_buffer_object.rb +53 -51
- data/lib/roglew/extensions/GL_ARB_vertex_program.rb +155 -153
- data/lib/roglew/extensions/GL_ARB_vertex_shader.rb +24 -22
- data/lib/roglew/extensions/GL_ARB_vertex_type_2_10_10_10_rev.rb +54 -52
- data/lib/roglew/extensions/GL_ARB_viewport_array.rb +37 -35
- data/lib/roglew/extensions/GL_ARB_window_pos.rb +23 -21
- data/lib/roglew/extensions/GL_ATIX_point_sprites.rb +9 -9
- data/lib/roglew/extensions/GL_ATIX_texture_env_combine3.rb +6 -6
- data/lib/roglew/extensions/GL_ATIX_texture_env_route.rb +6 -6
- data/lib/roglew/extensions/GL_ATIX_vertex_shader_output_point_size.rb +4 -4
- data/lib/roglew/extensions/GL_ATI_draw_buffers.rb +32 -30
- data/lib/roglew/extensions/GL_ATI_element_array.rb +20 -18
- data/lib/roglew/extensions/GL_ATI_envmap_bumpmap.rb +26 -24
- data/lib/roglew/extensions/GL_ATI_fragment_shader.rb +82 -80
- data/lib/roglew/extensions/GL_ATI_map_object_buffer.rb +11 -9
- data/lib/roglew/extensions/GL_ATI_meminfo.rb +6 -6
- data/lib/roglew/extensions/GL_ATI_pn_triangles.rb +25 -23
- data/lib/roglew/extensions/GL_ATI_separate_stencil.rb +20 -18
- data/lib/roglew/extensions/GL_ATI_text_fragment_shader.rb +4 -4
- data/lib/roglew/extensions/GL_ATI_texture_compression_3dc.rb +4 -4
- data/lib/roglew/extensions/GL_ATI_texture_env_combine3.rb +6 -6
- data/lib/roglew/extensions/GL_ATI_texture_float.rb +15 -15
- data/lib/roglew/extensions/GL_ATI_texture_mirror_once.rb +5 -5
- data/lib/roglew/extensions/GL_ATI_vertex_array_object.rb +34 -32
- data/lib/roglew/extensions/GL_ATI_vertex_attrib_array_object.rb +10 -8
- data/lib/roglew/extensions/GL_ATI_vertex_streams.rb +69 -67
- data/lib/roglew/extensions/GL_EXT_422_pixels.rb +7 -7
- data/lib/roglew/extensions/GL_EXT_Cg_shader.rb +5 -5
- data/lib/roglew/extensions/GL_EXT_abgr.rb +4 -4
- data/lib/roglew/extensions/GL_EXT_bgra.rb +5 -5
- data/lib/roglew/extensions/GL_EXT_bindable_uniform.rb +23 -21
- data/lib/roglew/extensions/GL_EXT_blend_color.rb +20 -18
- data/lib/roglew/extensions/GL_EXT_blend_equation_separate.rb +17 -15
- data/lib/roglew/extensions/GL_EXT_blend_func_separate.rb +19 -17
- data/lib/roglew/extensions/GL_EXT_blend_minmax.rb +19 -17
- data/lib/roglew/extensions/GL_EXT_blend_subtract.rb +7 -7
- data/lib/roglew/extensions/GL_EXT_clip_volume_hint.rb +4 -4
- data/lib/roglew/extensions/GL_EXT_cmyka.rb +7 -7
- data/lib/roglew/extensions/GL_EXT_color_subtable.rb +9 -7
- data/lib/roglew/extensions/GL_EXT_compiled_vertex_array.rb +18 -16
- data/lib/roglew/extensions/GL_EXT_convolution.rb +47 -45
- data/lib/roglew/extensions/GL_EXT_coordinate_frame.rb +30 -28
- data/lib/roglew/extensions/GL_EXT_copy_texture.rb +12 -10
- data/lib/roglew/extensions/GL_EXT_cull_vertex.rb +19 -17
- data/lib/roglew/extensions/GL_EXT_debug_marker.rb +10 -8
- data/lib/roglew/extensions/GL_EXT_depth_bounds_test.rb +16 -15
- data/lib/roglew/extensions/GL_EXT_direct_state_access.rb +250 -245
- data/lib/roglew/extensions/GL_EXT_draw_buffers2.rb +13 -11
- data/lib/roglew/extensions/GL_EXT_draw_instanced.rb +9 -7
- data/lib/roglew/extensions/GL_EXT_draw_range_elements.rb +17 -15
- data/lib/roglew/extensions/GL_EXT_fog_coord.rb +26 -24
- data/lib/roglew/extensions/GL_EXT_fragment_lighting.rb +46 -44
- data/lib/roglew/extensions/GL_EXT_framebuffer_blit.rb +19 -17
- data/lib/roglew/extensions/GL_EXT_framebuffer_multisample.rb +18 -16
- data/lib/roglew/extensions/GL_EXT_framebuffer_multisample_blit_scaled.rb +5 -5
- data/lib/roglew/extensions/GL_EXT_framebuffer_object.rb +36 -25
- data/lib/roglew/extensions/GL_EXT_framebuffer_object/framebuffer.rb +8 -8
- data/lib/roglew/extensions/GL_EXT_framebuffer_object/framebuffer_context.rb +16 -6
- data/lib/roglew/extensions/GL_EXT_framebuffer_object/renderbuffer.rb +8 -8
- data/lib/roglew/extensions/GL_EXT_framebuffer_object/renderbuffer_context.rb +12 -9
- data/lib/roglew/extensions/GL_EXT_framebuffer_sRGB.rb +5 -5
- data/lib/roglew/extensions/GL_EXT_geometry_shader4.rb +37 -35
- data/lib/roglew/extensions/GL_EXT_gpu_program_parameters.rb +9 -7
- data/lib/roglew/extensions/GL_EXT_gpu_shader4.rb +74 -72
- data/lib/roglew/extensions/GL_EXT_histogram.rb +37 -35
- data/lib/roglew/extensions/GL_EXT_index_func.rb +8 -6
- data/lib/roglew/extensions/GL_EXT_index_material.rb +8 -6
- data/lib/roglew/extensions/GL_EXT_light_texture.rb +26 -24
- data/lib/roglew/extensions/GL_EXT_multi_draw_arrays.rb +9 -7
- data/lib/roglew/extensions/GL_EXT_multisample.rb +33 -31
- data/lib/roglew/extensions/GL_EXT_packed_depth_stencil.rb +7 -7
- data/lib/roglew/extensions/GL_EXT_packed_float.rb +6 -6
- data/lib/roglew/extensions/GL_EXT_packed_pixels.rb +8 -8
- data/lib/roglew/extensions/GL_EXT_paletted_texture.rb +39 -37
- data/lib/roglew/extensions/GL_EXT_pixel_buffer_object.rb +7 -7
- data/lib/roglew/extensions/GL_EXT_pixel_transform.rb +29 -27
- data/lib/roglew/extensions/GL_EXT_point_parameters.rb +20 -18
- data/lib/roglew/extensions/GL_EXT_polygon_offset.rb +18 -16
- data/lib/roglew/extensions/GL_EXT_provoking_vertex.rb +19 -17
- data/lib/roglew/extensions/GL_EXT_rescale_normal.rb +4 -4
- data/lib/roglew/extensions/GL_EXT_scene_marker.rb +9 -7
- data/lib/roglew/extensions/GL_EXT_secondary_color.rb +38 -36
- data/lib/roglew/extensions/GL_EXT_separate_shader_objects.rb +18 -16
- data/lib/roglew/extensions/GL_EXT_separate_specular_color.rb +6 -6
- data/lib/roglew/extensions/GL_EXT_shader_image_load_store.rb +71 -69
- data/lib/roglew/extensions/GL_EXT_shared_texture_palette.rb +4 -4
- data/lib/roglew/extensions/GL_EXT_stencil_clear_tag.rb +5 -5
- data/lib/roglew/extensions/GL_EXT_stencil_two_side.rb +17 -15
- data/lib/roglew/extensions/GL_EXT_stencil_wrap.rb +5 -5
- data/lib/roglew/extensions/GL_EXT_subtexture.rb +10 -8
- data/lib/roglew/extensions/GL_EXT_texture.rb +45 -45
- data/lib/roglew/extensions/GL_EXT_texture3D.rb +24 -22
- data/lib/roglew/extensions/GL_EXT_texture_array.rb +23 -21
- data/lib/roglew/extensions/GL_EXT_texture_buffer_object.rb +20 -18
- data/lib/roglew/extensions/GL_EXT_texture_compression_latc.rb +7 -7
- data/lib/roglew/extensions/GL_EXT_texture_compression_rgtc.rb +7 -7
- data/lib/roglew/extensions/GL_EXT_texture_compression_s3tc.rb +7 -7
- data/lib/roglew/extensions/GL_EXT_texture_cube_map.rb +15 -15
- data/lib/roglew/extensions/GL_EXT_texture_edge_clamp.rb +4 -4
- data/lib/roglew/extensions/GL_EXT_texture_env.rb +14 -14
- data/lib/roglew/extensions/GL_EXT_texture_env_combine.rb +24 -24
- data/lib/roglew/extensions/GL_EXT_texture_env_dot3.rb +5 -5
- data/lib/roglew/extensions/GL_EXT_texture_filter_anisotropic.rb +5 -5
- data/lib/roglew/extensions/GL_EXT_texture_integer.rb +67 -65
- data/lib/roglew/extensions/GL_EXT_texture_lod_bias.rb +6 -6
- data/lib/roglew/extensions/GL_EXT_texture_mirror_clamp.rb +6 -6
- data/lib/roglew/extensions/GL_EXT_texture_object.rb +25 -23
- data/lib/roglew/extensions/GL_EXT_texture_perturb_normal.rb +17 -15
- data/lib/roglew/extensions/GL_EXT_texture_rectangle.rb +7 -7
- data/lib/roglew/extensions/GL_EXT_texture_sRGB.rb +19 -19
- data/lib/roglew/extensions/GL_EXT_texture_sRGB_decode.rb +6 -6
- data/lib/roglew/extensions/GL_EXT_texture_shared_exponent.rb +6 -6
- data/lib/roglew/extensions/GL_EXT_texture_snorm.rb +28 -28
- data/lib/roglew/extensions/GL_EXT_texture_swizzle.rb +8 -8
- data/lib/roglew/extensions/GL_EXT_timer_query.rb +17 -15
- data/lib/roglew/extensions/GL_EXT_transform_feedback.rb +36 -34
- data/lib/roglew/extensions/GL_EXT_vertex_array.rb +55 -53
- data/lib/roglew/extensions/GL_EXT_vertex_array_bgra.rb +4 -4
- data/lib/roglew/extensions/GL_EXT_vertex_attrib_64bit.rb +37 -35
- data/lib/roglew/extensions/GL_EXT_vertex_shader.rb +166 -164
- data/lib/roglew/extensions/GL_EXT_vertex_weighting.rb +30 -28
- data/lib/roglew/extensions/GL_EXT_x11_sync_object.rb +16 -14
- data/lib/roglew/extensions/GL_GREMEDY_frame_terminator.rb +8 -6
- data/lib/roglew/extensions/GL_GREMEDY_string_marker.rb +8 -6
- data/lib/roglew/extensions/GL_HP_image_transform.rb +13 -11
- data/lib/roglew/extensions/GL_HP_occlusion_test.rb +5 -5
- data/lib/roglew/extensions/GL_IBM_cull_vertex.rb +4 -4
- data/lib/roglew/extensions/GL_IBM_multimode_draw_arrays.rb +9 -7
- data/lib/roglew/extensions/GL_IBM_rasterpos_clip.rb +4 -4
- data/lib/roglew/extensions/GL_IBM_static_data.rb +5 -5
- data/lib/roglew/extensions/GL_IBM_texture_mirrored_repeat.rb +4 -4
- data/lib/roglew/extensions/GL_IBM_vertex_array_lists.rb +38 -36
- data/lib/roglew/extensions/GL_INGR_color_clamp.rb +11 -11
- data/lib/roglew/extensions/GL_INGR_interlace_read.rb +4 -4
- data/lib/roglew/extensions/GL_INTEL_parallel_arrays.rb +23 -21
- data/lib/roglew/extensions/GL_INTEL_texture_scissor.rb +9 -7
- data/lib/roglew/extensions/GL_KHR_debug.rb +66 -64
- data/lib/roglew/extensions/GL_KHR_texture_compression_astc_ldr.rb +32 -32
- data/lib/roglew/extensions/GL_KTX_buffer_region.rb +23 -21
- data/lib/roglew/extensions/GL_MESAX_texture_stack.rb +9 -9
- data/lib/roglew/extensions/GL_MESA_pack_invert.rb +4 -4
- data/lib/roglew/extensions/GL_MESA_resize_buffers.rb +8 -6
- data/lib/roglew/extensions/GL_MESA_window_pos.rb +31 -29
- data/lib/roglew/extensions/GL_MESA_ycbcr_texture.rb +6 -6
- data/lib/roglew/extensions/GL_NVX_gpu_memory_info.rb +8 -8
- data/lib/roglew/extensions/GL_NV_bindless_texture.rb +20 -18
- data/lib/roglew/extensions/GL_NV_conditional_render.rb +20 -18
- data/lib/roglew/extensions/GL_NV_copy_depth_to_color.rb +5 -5
- data/lib/roglew/extensions/GL_NV_copy_image.rb +8 -6
- data/lib/roglew/extensions/GL_NV_depth_buffer_float.rb +21 -19
- data/lib/roglew/extensions/GL_NV_depth_clamp.rb +4 -4
- data/lib/roglew/extensions/GL_NV_depth_range_unclamped.rb +8 -8
- data/lib/roglew/extensions/GL_NV_evaluators.rb +47 -45
- data/lib/roglew/extensions/GL_NV_explicit_multisample.rb +27 -25
- data/lib/roglew/extensions/GL_NV_fence.rb +24 -22
- data/lib/roglew/extensions/GL_NV_float_buffer.rb +18 -18
- data/lib/roglew/extensions/GL_NV_fog_distance.rb +6 -6
- data/lib/roglew/extensions/GL_NV_fragment_program.rb +26 -24
- data/lib/roglew/extensions/GL_NV_fragment_program2.rb +8 -8
- data/lib/roglew/extensions/GL_NV_framebuffer_multisample_coverage.rb +19 -17
- data/lib/roglew/extensions/GL_NV_geometry_program4.rb +18 -16
- data/lib/roglew/extensions/GL_NV_gpu_program4.rb +34 -32
- data/lib/roglew/extensions/GL_NV_gpu_program5.rb +9 -9
- data/lib/roglew/extensions/GL_NV_gpu_shader5.rb +76 -74
- data/lib/roglew/extensions/GL_NV_half_float.rb +61 -59
- data/lib/roglew/extensions/GL_NV_light_max_exponent.rb +5 -5
- data/lib/roglew/extensions/GL_NV_multisample_coverage.rb +5 -5
- data/lib/roglew/extensions/GL_NV_multisample_filter_hint.rb +4 -4
- data/lib/roglew/extensions/GL_NV_occlusion_query.rb +25 -23
- data/lib/roglew/extensions/GL_NV_packed_depth_stencil.rb +5 -5
- data/lib/roglew/extensions/GL_NV_parameter_buffer_object.rb +22 -20
- data/lib/roglew/extensions/GL_NV_path_rendering.rb +193 -191
- data/lib/roglew/extensions/GL_NV_pixel_data_range.rb +22 -20
- data/lib/roglew/extensions/GL_NV_point_sprite.rb +19 -17
- data/lib/roglew/extensions/GL_NV_present_video.rb +26 -24
- data/lib/roglew/extensions/GL_NV_primitive_restart.rb +18 -16
- data/lib/roglew/extensions/GL_NV_register_combiners.rb +78 -76
- data/lib/roglew/extensions/GL_NV_register_combiners2.rb +17 -15
- data/lib/roglew/extensions/GL_NV_shader_buffer_load.rb +30 -28
- data/lib/roglew/extensions/GL_NV_tessellation_program5.rb +8 -8
- data/lib/roglew/extensions/GL_NV_texgen_emboss.rb +6 -6
- data/lib/roglew/extensions/GL_NV_texgen_reflection.rb +6 -6
- data/lib/roglew/extensions/GL_NV_texture_barrier.rb +8 -6
- data/lib/roglew/extensions/GL_NV_texture_env_combine4.rb +8 -8
- data/lib/roglew/extensions/GL_NV_texture_expand_normal.rb +4 -4
- data/lib/roglew/extensions/GL_NV_texture_multisample.rb +22 -20
- data/lib/roglew/extensions/GL_NV_texture_rectangle.rb +7 -7
- data/lib/roglew/extensions/GL_NV_texture_shader.rb +76 -76
- data/lib/roglew/extensions/GL_NV_texture_shader2.rb +31 -31
- data/lib/roglew/extensions/GL_NV_texture_shader3.rb +20 -20
- data/lib/roglew/extensions/GL_NV_transform_feedback.rb +50 -48
- data/lib/roglew/extensions/GL_NV_transform_feedback2.rb +25 -23
- data/lib/roglew/extensions/GL_NV_vdpau_interop.rb +28 -26
- data/lib/roglew/extensions/GL_NV_vertex_array_range.rb +21 -19
- data/lib/roglew/extensions/GL_NV_vertex_array_range2.rb +4 -4
- data/lib/roglew/extensions/GL_NV_vertex_attrib_integer_64bit.rb +35 -33
- data/lib/roglew/extensions/GL_NV_vertex_buffer_unified_memory.rb +51 -49
- data/lib/roglew/extensions/GL_NV_vertex_program.rb +161 -159
- data/lib/roglew/extensions/GL_NV_vertex_program2_option.rb +5 -5
- data/lib/roglew/extensions/GL_NV_vertex_program3.rb +4 -4
- data/lib/roglew/extensions/GL_NV_vertex_program4.rb +4 -4
- data/lib/roglew/extensions/GL_NV_video_capture.rb +55 -53
- data/lib/roglew/extensions/GL_OES_byte_coordinates.rb +4 -4
- data/lib/roglew/extensions/GL_OES_compressed_paletted_texture.rb +13 -13
- data/lib/roglew/extensions/GL_OES_read_format.rb +5 -5
- data/lib/roglew/extensions/GL_OES_single_precision.rb +13 -11
- data/lib/roglew/extensions/GL_OML_interlace.rb +5 -5
- data/lib/roglew/extensions/GL_OML_resample.rb +9 -9
- data/lib/roglew/extensions/GL_OML_subsample.rb +5 -5
- data/lib/roglew/extensions/GL_PGI_misc_hints.rb +23 -23
- data/lib/roglew/extensions/GL_PGI_vertex_hints.rb +25 -25
- data/lib/roglew/extensions/GL_REGAL_error_string.rb +8 -6
- data/lib/roglew/extensions/GL_REGAL_extension_query.rb +9 -7
- data/lib/roglew/extensions/GL_REGAL_log.rb +12 -12
- data/lib/roglew/extensions/GL_REND_screen_coordinates.rb +5 -5
- data/lib/roglew/extensions/GL_S3_s3tc.rb +9 -9
- data/lib/roglew/extensions/GL_SGIS_color_range.rb +12 -12
- data/lib/roglew/extensions/GL_SGIS_detail_texture.rb +9 -7
- data/lib/roglew/extensions/GL_SGIS_fog_function.rb +9 -7
- data/lib/roglew/extensions/GL_SGIS_generate_mipmap.rb +5 -5
- data/lib/roglew/extensions/GL_SGIS_multisample.rb +32 -30
- data/lib/roglew/extensions/GL_SGIS_point_line_texgen.rb +11 -11
- data/lib/roglew/extensions/GL_SGIS_sharpen_texture.rb +9 -7
- data/lib/roglew/extensions/GL_SGIS_texture4D.rb +9 -7
- data/lib/roglew/extensions/GL_SGIS_texture_border_clamp.rb +4 -4
- data/lib/roglew/extensions/GL_SGIS_texture_edge_clamp.rb +4 -4
- data/lib/roglew/extensions/GL_SGIS_texture_filter4.rb +9 -7
- data/lib/roglew/extensions/GL_SGIS_texture_lod.rb +7 -7
- data/lib/roglew/extensions/GL_SGIX_async.rb +21 -19
- data/lib/roglew/extensions/GL_SGIX_async_histogram.rb +5 -5
- data/lib/roglew/extensions/GL_SGIX_async_pixel.rb +9 -9
- data/lib/roglew/extensions/GL_SGIX_blend_alpha_minmax.rb +5 -5
- data/lib/roglew/extensions/GL_SGIX_convolution_accuracy.rb +4 -4
- data/lib/roglew/extensions/GL_SGIX_depth_texture.rb +6 -6
- data/lib/roglew/extensions/GL_SGIX_flush_raster.rb +8 -6
- data/lib/roglew/extensions/GL_SGIX_fog_offset.rb +5 -5
- data/lib/roglew/extensions/GL_SGIX_fog_texture.rb +18 -16
- data/lib/roglew/extensions/GL_SGIX_fragment_specular_lighting.rb +24 -22
- data/lib/roglew/extensions/GL_SGIX_framezoom.rb +10 -8
- data/lib/roglew/extensions/GL_SGIX_interlace.rb +4 -4
- data/lib/roglew/extensions/GL_SGIX_pixel_texture.rb +10 -8
- data/lib/roglew/extensions/GL_SGIX_reference_plane.rb +8 -6
- data/lib/roglew/extensions/GL_SGIX_resample.rb +7 -7
- data/lib/roglew/extensions/GL_SGIX_shadow_ambient.rb +4 -4
- data/lib/roglew/extensions/GL_SGIX_sprite.rb +11 -9
- data/lib/roglew/extensions/GL_SGIX_tag_sample_buffer.rb +8 -6
- data/lib/roglew/extensions/GL_SGIX_texture_coordinate_clamp.rb +6 -6
- data/lib/roglew/extensions/GL_SGIX_texture_multi_buffer.rb +4 -4
- data/lib/roglew/extensions/GL_SGIX_texture_range.rb +31 -31
- data/lib/roglew/extensions/GL_SGIX_texture_scale_bias.rb +7 -7
- data/lib/roglew/extensions/GL_SGIX_vertex_preclip.rb +5 -5
- data/lib/roglew/extensions/GL_SGIX_vertex_preclip_hint.rb +5 -5
- data/lib/roglew/extensions/GL_SGI_color_matrix.rb +14 -14
- data/lib/roglew/extensions/GL_SGI_color_table.rb +37 -35
- data/lib/roglew/extensions/GL_SGI_texture_color_table.rb +6 -6
- data/lib/roglew/extensions/GL_SUNX_constant_data.rb +17 -15
- data/lib/roglew/extensions/GL_SUN_convolution_border_modes.rb +4 -4
- data/lib/roglew/extensions/GL_SUN_global_alpha.rb +24 -22
- data/lib/roglew/extensions/GL_SUN_mesh_array.rb +5 -5
- data/lib/roglew/extensions/GL_SUN_read_video_pixels.rb +8 -6
- data/lib/roglew/extensions/GL_SUN_slice_accum.rb +4 -4
- data/lib/roglew/extensions/GL_SUN_triangle_list.rb +38 -36
- data/lib/roglew/extensions/GL_SUN_vertex.rb +47 -45
- data/lib/roglew/extensions/GL_VERSION_1_0.rb +288 -0
- data/lib/roglew/extensions/GL_VERSION_1_1.rb +45 -0
- data/lib/roglew/extensions/GL_VERSION_1_2.rb +16 -7
- data/lib/roglew/extensions/GL_VERSION_1_3.rb +157 -153
- data/lib/roglew/extensions/GL_VERSION_1_4.rb +100 -98
- data/lib/roglew/extensions/GL_VERSION_1_5.rb +134 -119
- data/lib/roglew/extensions/GL_VERSION_1_5/buffer.rb +24 -24
- data/lib/roglew/extensions/GL_VERSION_1_5/buffer_context.rb +32 -26
- data/lib/roglew/extensions/GL_VERSION_1_5/query.rb +18 -18
- data/lib/roglew/extensions/GL_VERSION_2_0.rb +125 -110
- data/lib/roglew/extensions/GL_VERSION_2_0/shader.rb +19 -22
- data/lib/roglew/extensions/GL_VERSION_2_0/shader_program.rb +21 -19
- data/lib/roglew/extensions/GL_VERSION_2_1.rb +41 -39
- data/lib/roglew/extensions/GL_VERSION_3_0.rb +181 -178
- data/lib/roglew/extensions/GL_VERSION_3_1.rb +55 -53
- data/lib/roglew/extensions/GL_VERSION_3_2.rb +45 -43
- data/lib/roglew/extensions/GL_VERSION_3_3.rb +20 -19
- data/lib/roglew/extensions/GL_VERSION_4_0.rb +48 -46
- data/lib/roglew/extensions/GL_VERSION_4_2.rb +21 -21
- data/lib/roglew/extensions/GL_VERSION_4_3.rb +30 -30
- data/lib/roglew/extensions/GL_WIN_specular_fog.rb +4 -4
- data/lib/roglew/extensions/GL_WIN_swap_hint.rb +8 -6
- data/lib/roglew/extensions/WGL_3DFX_multisample.rb +5 -5
- data/lib/roglew/extensions/WGL_3DL_stereo_control.rb +17 -15
- data/lib/roglew/extensions/WGL_AMD_gpu_association.rb +31 -29
- data/lib/roglew/extensions/WGL_ARB_buffer_region.rb +20 -18
- data/lib/roglew/extensions/WGL_ARB_create_context.rb +21 -19
- data/lib/roglew/extensions/WGL_ARB_create_context_profile.rb +7 -7
- data/lib/roglew/extensions/WGL_ARB_extensions_string.rb +8 -6
- data/lib/roglew/extensions/WGL_ARB_framebuffer_sRGB.rb +4 -4
- data/lib/roglew/extensions/WGL_ARB_make_current_read.rb +16 -14
- data/lib/roglew/extensions/WGL_ARB_multisample.rb +5 -5
- data/lib/roglew/extensions/WGL_ARB_pbuffer.rb +25 -23
- data/lib/roglew/extensions/WGL_ARB_pixel_format.rb +64 -62
- data/lib/roglew/extensions/WGL_ARB_pixel_format_float.rb +4 -4
- data/lib/roglew/extensions/WGL_ARB_render_texture.rb +48 -46
- data/lib/roglew/extensions/WGL_ATI_pixel_format_float.rb +9 -9
- data/lib/roglew/extensions/WGL_ATI_render_texture_rectangle.rb +4 -4
- data/lib/roglew/extensions/WGL_EXT_create_context_es2_profile.rb +4 -4
- data/lib/roglew/extensions/WGL_EXT_create_context_es_profile.rb +4 -4
- data/lib/roglew/extensions/WGL_EXT_depth_float.rb +4 -4
- data/lib/roglew/extensions/WGL_EXT_display_color_table.rb +11 -9
- data/lib/roglew/extensions/WGL_EXT_extensions_string.rb +8 -6
- data/lib/roglew/extensions/WGL_EXT_framebuffer_sRGB.rb +4 -4
- data/lib/roglew/extensions/WGL_EXT_make_current_read.rb +15 -13
- data/lib/roglew/extensions/WGL_EXT_multisample.rb +5 -5
- data/lib/roglew/extensions/WGL_EXT_pbuffer.rb +26 -24
- data/lib/roglew/extensions/WGL_EXT_pixel_format.rb +60 -58
- data/lib/roglew/extensions/WGL_EXT_pixel_format_packed_float.rb +4 -4
- data/lib/roglew/extensions/WGL_EXT_swap_control.rb +9 -7
- data/lib/roglew/extensions/WGL_I3D_digital_video_control.rb +18 -16
- data/lib/roglew/extensions/WGL_I3D_gamma.rb +18 -16
- data/lib/roglew/extensions/WGL_I3D_genlock.rb +33 -31
- data/lib/roglew/extensions/WGL_I3D_image_buffer.rb +19 -17
- data/lib/roglew/extensions/WGL_I3D_swap_frame_lock.rb +11 -9
- data/lib/roglew/extensions/WGL_I3D_swap_frame_usage.rb +11 -9
- data/lib/roglew/extensions/WGL_NV_DX_interop.rb +23 -21
- data/lib/roglew/extensions/WGL_NV_copy_image.rb +8 -6
- data/lib/roglew/extensions/WGL_NV_float_buffer.rb +12 -12
- data/lib/roglew/extensions/WGL_NV_gpu_affinity.rb +27 -25
- data/lib/roglew/extensions/WGL_NV_multisample_coverage.rb +5 -5
- data/lib/roglew/extensions/WGL_NV_present_video.rb +16 -14
- data/lib/roglew/extensions/WGL_NV_render_depth_texture.rb +9 -9
- data/lib/roglew/extensions/WGL_NV_render_texture_rectangle.rb +6 -6
- data/lib/roglew/extensions/WGL_NV_swap_group.rb +13 -11
- data/lib/roglew/extensions/WGL_NV_vertex_array_range.rb +9 -7
- data/lib/roglew/extensions/WGL_NV_video_capture.rb +19 -17
- data/lib/roglew/extensions/WGL_NV_video_output.rb +31 -29
- data/lib/roglew/extensions/WGL_OML_sync_control.rb +13 -11
- data/lib/roglew/gl.rb +6 -296
- data/lib/roglew/platform/linux.rb +3 -3
- data/lib/roglew/platform/linux/glx.rb +1 -2
- data/lib/roglew/platform/linux/{render_context.rb → render_handle.rb} +38 -37
- data/lib/roglew/platform/windows.rb +5 -5
- data/lib/roglew/platform/windows/gdi32.rb +241 -241
- data/lib/roglew/platform/windows/gl.rb +1 -1
- data/lib/roglew/platform/windows/kernel32.rb +8 -8
- data/lib/roglew/platform/windows/render_handle.rb +94 -0
- data/lib/roglew/platform/windows/wgl.rb +19 -18
- data/lib/roglew/render_context.rb +129 -90
- data/lib/roglew/render_context_extension.rb +50 -0
- data/lib/roglew/render_handle.rb +133 -45
- data/lib/roglew/render_handle_extension.rb +22 -0
- data/lib/roglew/texture2d.rb +8 -8
- data/lib/roglew/texture2d_context.rb +97 -25
- data/lib/roglew/version.rb +5 -0
- metadata +63 -43
- data/lib/roglew/extensions/GL_ARB_transform_feedback3pt.rb +0 -18
- data/lib/roglew/gl_extension.rb +0 -15
- data/lib/roglew/gl_object.rb +0 -32
- data/lib/roglew/platform/windows/render_context.rb +0 -100
- data/lib/roglew/texture.rb +0 -24
- data/lib/roglew/texture_context.rb +0 -9
@@ -1,120 +1,135 @@
|
|
1
|
-
module Roglew
|
2
|
-
module GL
|
3
|
-
ARRAY_BUFFER ||= 0x8892
|
4
|
-
ARRAY_BUFFER_BINDING ||= 0x8894
|
5
|
-
BUFFER_ACCESS ||= 0x88BB
|
6
|
-
BUFFER_MAP_POINTER ||= 0x88BD
|
7
|
-
BUFFER_MAPPED ||= 0x88BC
|
8
|
-
BUFFER_SIZE ||= 0x8764
|
9
|
-
BUFFER_USAGE ||= 0x8765
|
10
|
-
COLOR_ARRAY_BUFFER_BINDING ||= 0x8898
|
11
|
-
CURRENT_FOG_COORD ||= CURRENT_FOG_COORDINATE
|
12
|
-
CURRENT_QUERY ||= 0x8865
|
13
|
-
DYNAMIC_COPY ||= 0x88EA
|
14
|
-
DYNAMIC_DRAW ||= 0x88E8
|
15
|
-
DYNAMIC_READ ||= 0x88E9
|
16
|
-
EDGE_FLAG_ARRAY_BUFFER_BINDING ||= 0x889B
|
17
|
-
ELEMENT_ARRAY_BUFFER ||= 0x8893
|
18
|
-
ELEMENT_ARRAY_BUFFER_BINDING ||= 0x8895
|
19
|
-
FOG_COORD ||= FOG_COORDINATE
|
20
|
-
FOG_COORD_ARRAY ||= FOG_COORDINATE_ARRAY
|
21
|
-
FOG_COORD_ARRAY_BUFFER_BINDING ||= 0x889D
|
22
|
-
FOG_COORD_ARRAY_POINTER ||= FOG_COORDINATE_ARRAY_POINTER
|
23
|
-
FOG_COORD_ARRAY_STRIDE ||= FOG_COORDINATE_ARRAY_STRIDE
|
24
|
-
FOG_COORD_ARRAY_TYPE ||= FOG_COORDINATE_ARRAY_TYPE
|
25
|
-
FOG_COORD_SRC ||= FOG_COORDINATE_SOURCE
|
26
|
-
FOG_COORDINATE_ARRAY_BUFFER_BINDING ||= FOG_COORD_ARRAY_BUFFER_BINDING
|
27
|
-
INDEX_ARRAY_BUFFER_BINDING ||= 0x8899
|
28
|
-
NORMAL_ARRAY_BUFFER_BINDING ||= 0x8897
|
29
|
-
QUERY_COUNTER_BITS ||= 0x8864
|
30
|
-
QUERY_RESULT ||= 0x8866
|
31
|
-
QUERY_RESULT_AVAILABLE ||= 0x8867
|
32
|
-
READ_ONLY ||= 0x88B8
|
33
|
-
READ_WRITE ||= 0x88BA
|
34
|
-
SECONDARY_COLOR_ARRAY_BUFFER_BINDING ||= 0x889C
|
35
|
-
SRC0_ALPHA ||= SOURCE0_ALPHA
|
36
|
-
SRC0_RGB ||= SOURCE0_RGB
|
37
|
-
SRC1_ALPHA ||= SOURCE1_ALPHA
|
38
|
-
SRC1_RGB ||= SOURCE1_RGB
|
39
|
-
SRC2_ALPHA ||= SOURCE2_ALPHA
|
40
|
-
SRC2_RGB ||= SOURCE2_RGB
|
41
|
-
STATIC_COPY ||= 0x88E6
|
42
|
-
STATIC_DRAW ||= 0x88E4
|
43
|
-
STATIC_READ ||= 0x88E5
|
44
|
-
STREAM_COPY ||= 0x88E2
|
45
|
-
STREAM_DRAW ||= 0x88E0
|
46
|
-
STREAM_READ ||= 0x88E1
|
47
|
-
TEXTURE_COORD_ARRAY_BUFFER_BINDING ||= 0x889A
|
48
|
-
VERTEX_ARRAY_BUFFER_BINDING ||= 0x8896
|
49
|
-
VERTEX_ATTRIB_ARRAY_BUFFER_BINDING ||= 0x889F
|
50
|
-
WEIGHT_ARRAY_BUFFER_BINDING ||= 0x889E
|
51
|
-
WRITE_ONLY ||= 0x88B9
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
module GL_VERSION_1_5
|
56
|
-
module
|
57
|
-
include Roglew::
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
1
|
+
module Roglew
|
2
|
+
module GL
|
3
|
+
ARRAY_BUFFER ||= 0x8892
|
4
|
+
ARRAY_BUFFER_BINDING ||= 0x8894
|
5
|
+
BUFFER_ACCESS ||= 0x88BB
|
6
|
+
BUFFER_MAP_POINTER ||= 0x88BD
|
7
|
+
BUFFER_MAPPED ||= 0x88BC
|
8
|
+
BUFFER_SIZE ||= 0x8764
|
9
|
+
BUFFER_USAGE ||= 0x8765
|
10
|
+
COLOR_ARRAY_BUFFER_BINDING ||= 0x8898
|
11
|
+
CURRENT_FOG_COORD ||= CURRENT_FOG_COORDINATE
|
12
|
+
CURRENT_QUERY ||= 0x8865
|
13
|
+
DYNAMIC_COPY ||= 0x88EA
|
14
|
+
DYNAMIC_DRAW ||= 0x88E8
|
15
|
+
DYNAMIC_READ ||= 0x88E9
|
16
|
+
EDGE_FLAG_ARRAY_BUFFER_BINDING ||= 0x889B
|
17
|
+
ELEMENT_ARRAY_BUFFER ||= 0x8893
|
18
|
+
ELEMENT_ARRAY_BUFFER_BINDING ||= 0x8895
|
19
|
+
FOG_COORD ||= FOG_COORDINATE
|
20
|
+
FOG_COORD_ARRAY ||= FOG_COORDINATE_ARRAY
|
21
|
+
FOG_COORD_ARRAY_BUFFER_BINDING ||= 0x889D
|
22
|
+
FOG_COORD_ARRAY_POINTER ||= FOG_COORDINATE_ARRAY_POINTER
|
23
|
+
FOG_COORD_ARRAY_STRIDE ||= FOG_COORDINATE_ARRAY_STRIDE
|
24
|
+
FOG_COORD_ARRAY_TYPE ||= FOG_COORDINATE_ARRAY_TYPE
|
25
|
+
FOG_COORD_SRC ||= FOG_COORDINATE_SOURCE
|
26
|
+
FOG_COORDINATE_ARRAY_BUFFER_BINDING ||= FOG_COORD_ARRAY_BUFFER_BINDING
|
27
|
+
INDEX_ARRAY_BUFFER_BINDING ||= 0x8899
|
28
|
+
NORMAL_ARRAY_BUFFER_BINDING ||= 0x8897
|
29
|
+
QUERY_COUNTER_BITS ||= 0x8864
|
30
|
+
QUERY_RESULT ||= 0x8866
|
31
|
+
QUERY_RESULT_AVAILABLE ||= 0x8867
|
32
|
+
READ_ONLY ||= 0x88B8
|
33
|
+
READ_WRITE ||= 0x88BA
|
34
|
+
SECONDARY_COLOR_ARRAY_BUFFER_BINDING ||= 0x889C
|
35
|
+
SRC0_ALPHA ||= SOURCE0_ALPHA
|
36
|
+
SRC0_RGB ||= SOURCE0_RGB
|
37
|
+
SRC1_ALPHA ||= SOURCE1_ALPHA
|
38
|
+
SRC1_RGB ||= SOURCE1_RGB
|
39
|
+
SRC2_ALPHA ||= SOURCE2_ALPHA
|
40
|
+
SRC2_RGB ||= SOURCE2_RGB
|
41
|
+
STATIC_COPY ||= 0x88E6
|
42
|
+
STATIC_DRAW ||= 0x88E4
|
43
|
+
STATIC_READ ||= 0x88E5
|
44
|
+
STREAM_COPY ||= 0x88E2
|
45
|
+
STREAM_DRAW ||= 0x88E0
|
46
|
+
STREAM_READ ||= 0x88E1
|
47
|
+
TEXTURE_COORD_ARRAY_BUFFER_BINDING ||= 0x889A
|
48
|
+
VERTEX_ARRAY_BUFFER_BINDING ||= 0x8896
|
49
|
+
VERTEX_ATTRIB_ARRAY_BUFFER_BINDING ||= 0x889F
|
50
|
+
WEIGHT_ARRAY_BUFFER_BINDING ||= 0x889E
|
51
|
+
WRITE_ONLY ||= 0x88B9
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
module GL_VERSION_1_5
|
56
|
+
module RenderHandle
|
57
|
+
include Roglew::RenderHandleExtension
|
58
|
+
|
59
|
+
functions [
|
60
|
+
[:glBeginQuery, [ :uint, :uint ], :void],
|
61
|
+
[:glBindBuffer, [ :uint, :uint ], :void],
|
62
|
+
[:glBufferData, [ :uint, :size_t, :pointer, :uint ], :void],
|
63
|
+
[:glBufferSubData, [ :uint, :size_t, :size_t, :pointer ], :void],
|
64
|
+
[:glDeleteBuffers, [ :int, :pointer ], :void],
|
65
|
+
[:glDeleteQueries, [ :int, :pointer ], :void],
|
66
|
+
[:glEndQuery, [ :uint ], :void],
|
67
|
+
[:glGenBuffers, [ :int, :pointer ], :void],
|
68
|
+
[:glGenQueries, [ :int, :pointer ], :void],
|
69
|
+
[:glGetBufferParameteriv, [ :uint, :uint, :pointer ], :void],
|
70
|
+
[:glGetBufferPointerv, [ :uint, :uint, :pointer ], :void],
|
71
|
+
[:glGetBufferSubData, [ :uint, :size_t, :size_t, :pointer ], :void],
|
72
|
+
[:glGetQueryiv, [ :uint, :uint, :pointer ], :void],
|
73
|
+
[:glGetQueryObjectiv, [ :uint, :uint, :pointer ], :void],
|
74
|
+
[:glGetQueryObjectuiv, [ :uint, :uint, :pointer ], :void],
|
75
|
+
[:glIsBuffer, [ :uint ], :uchar],
|
76
|
+
[:glIsQuery, [ :uint ], :uchar],
|
77
|
+
[:glMapBuffer, [ :uint, :uint ], :pointer],
|
78
|
+
[:glUnmapBuffer, [ :uint ], :uchar]
|
79
|
+
]
|
80
|
+
|
81
|
+
functions :compatibility, [
|
82
|
+
[ :glGetTexGendv, [ :uint, :uint, :pointer ], :void ]
|
83
|
+
]
|
84
|
+
end
|
85
|
+
|
86
|
+
module RenderContext
|
87
|
+
include Roglew::RenderContextExtension
|
88
|
+
|
89
|
+
def_object :Buffers
|
90
|
+
def_object :Queries
|
91
|
+
|
92
|
+
checks_current
|
93
|
+
def create_buffer
|
94
|
+
Roglew::Buffer.new(@rh)
|
95
|
+
end
|
96
|
+
|
97
|
+
checks_current
|
98
|
+
def create_query
|
99
|
+
Roglew::Query.new(@rh)
|
100
|
+
end
|
101
|
+
|
102
|
+
checks_current
|
103
|
+
def buffer_data(target, usage, buffer = nil, type = nil)
|
104
|
+
size, pointer = if buffer.is_a?(Array) && buffer.size > 0
|
105
|
+
p = FFI::MemoryPointer.new(type, buffer.size)
|
106
|
+
p.send("write_array_of_#{type}", buffer)
|
107
|
+
[p.size, p]
|
108
|
+
else
|
109
|
+
size = buffer.respond_to?(:to_i) ? buffer.to_i : 0
|
110
|
+
size *= if size > 0 && type
|
111
|
+
type = FFI.find_type(type) if type.is_a?(Symbol)
|
112
|
+
type.size
|
113
|
+
else
|
114
|
+
1
|
115
|
+
end
|
116
|
+
[size, nil]
|
117
|
+
end
|
118
|
+
|
119
|
+
@rh.glBufferData(target, size, pointer, usage)
|
120
|
+
end
|
121
|
+
|
122
|
+
checks_current
|
123
|
+
def buffer_sub_data(target, offset, type, buffer)
|
124
|
+
pointer = FFI::MemoryPointer.new(type, buffer.size)
|
125
|
+
pointer.send("write_array_of_#{type}", buffer)
|
126
|
+
@rh.glBufferSubData(target, offset, buffer.size, pointer)
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
%w'
|
132
|
+
buffer_context
|
133
|
+
buffer
|
134
|
+
query
|
120
135
|
'.each { |f| require "#{File.expand_path(__FILE__)[0..-4]}/#{f}" }
|
@@ -1,25 +1,25 @@
|
|
1
|
-
module Roglew
|
2
|
-
class Buffer
|
3
|
-
include Roglew::Contextual(BufferContext)
|
4
|
-
|
5
|
-
attr_reader :
|
6
|
-
|
7
|
-
def initialize(
|
8
|
-
@
|
9
|
-
@id = context.gen_buffers
|
10
|
-
|
11
|
-
ObjectSpace.define_finalizer(self, self.class.finalize(@
|
12
|
-
end
|
13
|
-
|
14
|
-
def self.finalize(
|
15
|
-
proc do
|
16
|
-
puts "releasing buffer #{id}"
|
17
|
-
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
def bind(target, deferred = nil, &block)
|
22
|
-
create_binding(deferred, target, &block)
|
23
|
-
end
|
24
|
-
end
|
1
|
+
module Roglew
|
2
|
+
class Buffer
|
3
|
+
include Roglew::Contextual(BufferContext)
|
4
|
+
|
5
|
+
attr_reader :handle, :id
|
6
|
+
|
7
|
+
def initialize(handle)
|
8
|
+
@handle = handle
|
9
|
+
@id = handle.bind { |context| context.gen_buffers }
|
10
|
+
|
11
|
+
ObjectSpace.define_finalizer(self, self.class.finalize(@handle, @id))
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.finalize(handle, id)
|
15
|
+
proc do
|
16
|
+
#puts "releasing buffer #{id}"
|
17
|
+
handle.bind { |context| context.delete_buffers(id) }
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def bind(target, deferred = nil, &block)
|
22
|
+
create_binding(deferred, target, &block)
|
23
|
+
end
|
24
|
+
end
|
25
25
|
end
|
@@ -1,27 +1,33 @@
|
|
1
|
-
module Roglew
|
2
|
-
class BufferContext
|
3
|
-
include Roglew::BaseContext(:buffer)
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
1
|
+
module Roglew
|
2
|
+
class BufferContext
|
3
|
+
include Roglew::BaseContext(:buffer)
|
4
|
+
|
5
|
+
make_calls :handle, :glBindBuffer
|
6
|
+
|
7
|
+
make_calls :context,
|
8
|
+
:buffer_data,
|
9
|
+
:buffer_sub_data
|
10
|
+
|
11
|
+
def initialize(buffer, deferred, target, &block)
|
12
|
+
@target = target
|
13
|
+
super(buffer, deferred, &block)
|
14
|
+
end
|
15
|
+
|
16
|
+
def data(usage, buffer = nil, type = nil)
|
17
|
+
buffer_data(@target, usage, buffer, type)
|
18
|
+
end
|
19
|
+
|
20
|
+
def sub_data(offset, type, buffer)
|
21
|
+
buffer_sub_data(@target, offset, type, buffer)
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
def bind
|
26
|
+
glBindBuffer(@target, buffer.id)
|
27
|
+
end
|
28
|
+
|
29
|
+
def unbind
|
30
|
+
glBindBuffer(@target, 0)
|
31
|
+
end
|
32
|
+
end
|
27
33
|
end
|
@@ -1,19 +1,19 @@
|
|
1
|
-
module Roglew
|
2
|
-
class Query
|
3
|
-
|
4
|
-
attr_reader :
|
5
|
-
|
6
|
-
def initialize(
|
7
|
-
@
|
8
|
-
@id = context.gen_queries
|
9
|
-
ObjectSpace.define_finalizer(self, self.class.finalize(@
|
10
|
-
end
|
11
|
-
|
12
|
-
def self.finalize(
|
13
|
-
proc do
|
14
|
-
puts "releasing query #{id}"
|
15
|
-
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
1
|
+
module Roglew
|
2
|
+
class Query
|
3
|
+
|
4
|
+
attr_reader :handle, :id
|
5
|
+
|
6
|
+
def initialize(handle)
|
7
|
+
@handle = handle
|
8
|
+
@id = handle.bind { |context| context.gen_queries }
|
9
|
+
ObjectSpace.define_finalizer(self, self.class.finalize(@handle, @id))
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.finalize(handle, id)
|
13
|
+
proc do
|
14
|
+
#puts "releasing query #{id}"
|
15
|
+
handle.bind { |context| context.delete_queries(id) }
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
19
|
end
|
@@ -89,19 +89,122 @@ module Roglew
|
|
89
89
|
end
|
90
90
|
|
91
91
|
module GL_VERSION_2_0
|
92
|
+
module RenderHandle
|
93
|
+
include Roglew::RenderHandleExtension
|
94
|
+
|
95
|
+
functions [
|
96
|
+
[ :glAttachShader, [:uint, :uint], :void ],
|
97
|
+
[ :glBindAttribLocation, [:uint, :uint, :string], :void ],
|
98
|
+
[ :glBlendEquationSeparate, [:uint, :uint], :void ],
|
99
|
+
[ :glCompileShader, [:uint], :void ],
|
100
|
+
[ :glCreateProgram, [], :uint ],
|
101
|
+
[ :glCreateShader, [:uint], :uint ],
|
102
|
+
[ :glDeleteProgram, [:uint], :void ],
|
103
|
+
[ :glDeleteShader, [:uint], :void ],
|
104
|
+
[ :glDetachShader, [:uint, :uint], :void ],
|
105
|
+
[ :glDisableVertexAttribArray, [:uint], :void ],
|
106
|
+
[ :glDrawBuffers, [:int, :pointer], :void ],
|
107
|
+
[ :glEnableVertexAttribArray, [:uint], :void ],
|
108
|
+
[ :glGetActiveAttrib, [:uint, :uint, :int, :pointer, :pointer, :pointer, :pointer], :void ],
|
109
|
+
[ :glGetActiveUniform, [:uint, :uint, :int, :pointer, :pointer, :pointer, :pointer], :void ],
|
110
|
+
[ :glGetAttachedShaders, [:uint, :int, :pointer, :pointer], :void ],
|
111
|
+
[ :glGetAttribLocation, [:uint, :string], :int ],
|
112
|
+
[ :glGetProgramInfoLog, [:uint, :int, :pointer, :pointer], :void ],
|
113
|
+
[ :glGetProgramiv, [:uint, :uint, :pointer], :void ],
|
114
|
+
[ :glGetShaderInfoLog, [:uint, :int, :pointer, :pointer], :void ],
|
115
|
+
[ :glGetShaderiv, [:uint, :uint, :pointer], :void ],
|
116
|
+
[ :glGetShaderSource, [:uint, :int, :pointer, :pointer], :void ],
|
117
|
+
[ :glGetUniformfv, [:uint, :int, :pointer], :void ],
|
118
|
+
[ :glGetUniformiv, [:uint, :int, :pointer], :void ],
|
119
|
+
[ :glGetUniformLocation, [:uint, :string], :int ],
|
120
|
+
[ :glGetVertexAttribdv, [:uint, :uint, :pointer], :void ],
|
121
|
+
[ :glGetVertexAttribfv, [:uint, :uint, :pointer], :void ],
|
122
|
+
[ :glGetVertexAttribiv, [:uint, :uint, :pointer], :void ],
|
123
|
+
[ :glGetVertexAttribPointerv, [:uint, :uint, :pointer], :void ],
|
124
|
+
[ :glIsProgram, [:uint], :bool ],
|
125
|
+
[ :glIsShader, [:uint], :bool ],
|
126
|
+
[ :glLinkProgram, [:uint], :void ],
|
127
|
+
[ :glShaderSource, [:uint, :int, :pointer, :pointer], :void ],
|
128
|
+
[ :glStencilFuncSeparate, [:uint, :uint, :int, :uint], :void ],
|
129
|
+
[ :glStencilMaskSeparate, [:uint, :uint], :void ],
|
130
|
+
[ :glStencilOpSeparate, [:uint, :uint, :uint, :uint], :void ],
|
131
|
+
[ :glUniform1f, [:int, :float], :void ],
|
132
|
+
[ :glUniform1fv, [:int, :int, :pointer], :void ],
|
133
|
+
[ :glUniform1i, [:int, :int], :void ],
|
134
|
+
[ :glUniform1iv, [:int, :int, :pointer], :void ],
|
135
|
+
[ :glUniform2f, [:int, :float, :float], :void ],
|
136
|
+
[ :glUniform2fv, [:int, :int, :pointer], :void ],
|
137
|
+
[ :glUniform2i, [:int, :int, :int], :void ],
|
138
|
+
[ :glUniform2iv, [:int, :int, :pointer], :void ],
|
139
|
+
[ :glUniform3f, [:int, :float, :float, :float], :void ],
|
140
|
+
[ :glUniform3fv, [:int, :int, :pointer], :void ],
|
141
|
+
[ :glUniform3i, [:int, :int, :int, :int], :void ],
|
142
|
+
[ :glUniform3iv, [:int, :int, :pointer], :void ],
|
143
|
+
[ :glUniform4f, [:int, :float, :float, :float, :float], :void ],
|
144
|
+
[ :glUniform4fv, [:int, :int, :pointer], :void ],
|
145
|
+
[ :glUniform4i, [:int, :int, :int, :int, :int], :void ],
|
146
|
+
[ :glUniform4iv, [:int, :int, :pointer], :void ],
|
147
|
+
[ :glUniformMatrix2fv, [:int, :int, :bool, :pointer], :void ],
|
148
|
+
[ :glUniformMatrix3fv, [:int, :int, :bool, :pointer], :void ],
|
149
|
+
[ :glUniformMatrix4fv, [:int, :int, :bool, :pointer], :void ],
|
150
|
+
[ :glUseProgram, [:uint], :void ],
|
151
|
+
[ :glValidateProgram, [:uint], :void ],
|
152
|
+
[ :glVertexAttrib1d, [:uint, :double], :void ],
|
153
|
+
[ :glVertexAttrib1dv, [:uint, :pointer], :void ],
|
154
|
+
[ :glVertexAttrib1f, [:uint, :float], :void ],
|
155
|
+
[ :glVertexAttrib1fv, [:uint, :pointer], :void ],
|
156
|
+
[ :glVertexAttrib1s, [:uint, :short], :void ],
|
157
|
+
[ :glVertexAttrib1sv, [:uint, :pointer], :void ],
|
158
|
+
[ :glVertexAttrib2d, [:uint, :double, :double], :void ],
|
159
|
+
[ :glVertexAttrib2dv, [:uint, :pointer], :void ],
|
160
|
+
[ :glVertexAttrib2f, [:uint, :float, :float], :void ],
|
161
|
+
[ :glVertexAttrib2fv, [:uint, :pointer], :void ],
|
162
|
+
[ :glVertexAttrib2s, [:uint, :short, :short], :void ],
|
163
|
+
[ :glVertexAttrib2sv, [:uint, :pointer], :void ],
|
164
|
+
[ :glVertexAttrib3d, [:uint, :double, :double, :double], :void ],
|
165
|
+
[ :glVertexAttrib3dv, [:uint, :pointer], :void ],
|
166
|
+
[ :glVertexAttrib3f, [:uint, :float, :float, :float], :void ],
|
167
|
+
[ :glVertexAttrib3fv, [:uint, :pointer], :void ],
|
168
|
+
[ :glVertexAttrib3s, [:uint, :short, :short, :short], :void ],
|
169
|
+
[ :glVertexAttrib3sv, [:uint, :pointer], :void ],
|
170
|
+
[ :glVertexAttrib4bv, [:uint, :pointer], :void ],
|
171
|
+
[ :glVertexAttrib4d, [:uint, :double, :double, :double, :double], :void ],
|
172
|
+
[ :glVertexAttrib4dv, [:uint, :pointer], :void ],
|
173
|
+
[ :glVertexAttrib4f, [:uint, :float, :float, :float, :float], :void ],
|
174
|
+
[ :glVertexAttrib4fv, [:uint, :pointer], :void ],
|
175
|
+
[ :glVertexAttrib4iv, [:uint, :pointer], :void ],
|
176
|
+
[ :glVertexAttrib4Nbv, [:uint, :pointer], :void ],
|
177
|
+
[ :glVertexAttrib4Niv, [:uint, :pointer], :void ],
|
178
|
+
[ :glVertexAttrib4Nsv, [:uint, :pointer], :void ],
|
179
|
+
[ :glVertexAttrib4Nub, [:uint, :uchar, :uchar, :uchar, :uchar], :void ],
|
180
|
+
[ :glVertexAttrib4Nubv, [:uint, :pointer], :void ],
|
181
|
+
[ :glVertexAttrib4Nuiv, [:uint, :pointer], :void ],
|
182
|
+
[ :glVertexAttrib4Nusv, [:uint, :pointer], :void ],
|
183
|
+
[ :glVertexAttrib4s, [:uint, :short, :short, :short, :short], :void ],
|
184
|
+
[ :glVertexAttrib4sv, [:uint, :pointer], :void ],
|
185
|
+
[ :glVertexAttrib4ubv, [:uint, :pointer], :void ],
|
186
|
+
[ :glVertexAttrib4uiv, [:uint, :pointer], :void ],
|
187
|
+
[ :glVertexAttrib4usv, [:uint, :pointer], :void ],
|
188
|
+
[ :glVertexAttribPointer, [:uint, :int, :uint, :bool, :int, :size_t], :void]
|
189
|
+
]
|
190
|
+
end
|
191
|
+
|
92
192
|
module RenderContext
|
93
|
-
include Roglew::
|
193
|
+
include Roglew::RenderContextExtension
|
94
194
|
|
95
195
|
def create_program(shaders = nil)
|
96
|
-
program = Roglew::ShaderProgram.new(
|
196
|
+
program = Roglew::ShaderProgram.new(@rh)
|
97
197
|
return program unless shaders
|
98
198
|
shaders = case shaders
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
199
|
+
when Hash
|
200
|
+
shaders.map do |type, source|
|
201
|
+
type = type.is_a?(Integer) ? type : Roglew::GL.const_get("#{type.to_s.upcase}_SHADER")
|
202
|
+
create_shader(type, source)
|
203
|
+
end
|
204
|
+
when Array
|
205
|
+
shaders
|
206
|
+
else
|
207
|
+
raise ArgumentError, "It must be Hash or Array. Given: #{shaders.class}"
|
105
208
|
end
|
106
209
|
program.attach(*shaders)
|
107
210
|
program.link
|
@@ -109,106 +212,12 @@ module GL_VERSION_2_0
|
|
109
212
|
end
|
110
213
|
|
111
214
|
def create_shader(*args)
|
112
|
-
Roglew::Shader.new(
|
215
|
+
Roglew::Shader.new(@rh, *args)
|
113
216
|
end
|
114
217
|
|
115
|
-
functions [:glAttachShader, [:uint, :uint], :void],
|
116
|
-
[:glBindAttribLocation, [:uint, :uint, :string], :void],
|
117
|
-
[:glBlendEquationSeparate, [:uint, :uint], :void],
|
118
|
-
[:glCompileShader, [:uint], :void],
|
119
|
-
[:glCreateProgram, [], :uint],
|
120
|
-
[:glCreateShader, [:uint], :uint],
|
121
|
-
[:glDeleteProgram, [:uint], :void],
|
122
|
-
[:glDeleteShader, [:uint], :void],
|
123
|
-
[:glDetachShader, [:uint, :uint], :void],
|
124
|
-
[:glDisableVertexAttribArray, [:uint], :void],
|
125
|
-
[:glDrawBuffers, [:int, :pointer], :void],
|
126
|
-
[:glEnableVertexAttribArray, [:uint], :void],
|
127
|
-
[:glGetActiveAttrib, [:uint, :uint, :int, :pointer, :pointer, :pointer, :pointer], :void],
|
128
|
-
[:glGetActiveUniform, [:uint, :uint, :int, :pointer, :pointer, :pointer, :pointer], :void],
|
129
|
-
[:glGetAttachedShaders, [:uint, :int, :pointer, :pointer], :void],
|
130
|
-
[:glGetAttribLocation, [:uint, :string], :int],
|
131
|
-
[:glGetProgramInfoLog, [:uint, :int, :pointer, :pointer], :void],
|
132
|
-
[:glGetProgramiv, [:uint, :uint, :pointer], :void],
|
133
|
-
[:glGetShaderInfoLog, [:uint, :int, :pointer, :pointer], :void],
|
134
|
-
[:glGetShaderiv, [:uint, :uint, :pointer], :void],
|
135
|
-
[:glGetShaderSource, [:uint, :int, :pointer, :pointer], :void],
|
136
|
-
[:glGetUniformfv, [:uint, :int, :pointer], :void],
|
137
|
-
[:glGetUniformiv, [:uint, :int, :pointer], :void],
|
138
|
-
[:glGetUniformLocation, [:uint, :string], :int],
|
139
|
-
[:glGetVertexAttribdv, [:uint, :uint, :pointer], :void],
|
140
|
-
[:glGetVertexAttribfv, [:uint, :uint, :pointer], :void],
|
141
|
-
[:glGetVertexAttribiv, [:uint, :uint, :pointer], :void],
|
142
|
-
[:glGetVertexAttribPointerv, [:uint, :uint, :pointer], :void],
|
143
|
-
[:glIsProgram, [:uint], :bool],
|
144
|
-
[:glIsShader, [:uint], :bool],
|
145
|
-
[:glLinkProgram, [:uint], :void],
|
146
|
-
[:glShaderSource, [:uint, :int, :pointer, :pointer], :void],
|
147
|
-
[:glStencilFuncSeparate, [:uint, :uint, :int, :uint], :void],
|
148
|
-
[:glStencilMaskSeparate, [:uint, :uint], :void],
|
149
|
-
[:glStencilOpSeparate, [:uint, :uint, :uint, :uint], :void],
|
150
|
-
[:glUniform1f, [:int, :float], :void],
|
151
|
-
[:glUniform1fv, [:int, :int, :pointer], :void],
|
152
|
-
[:glUniform1i, [:int, :int], :void],
|
153
|
-
[:glUniform1iv, [:int, :int, :pointer], :void],
|
154
|
-
[:glUniform2f, [:int, :float, :float], :void],
|
155
|
-
[:glUniform2fv, [:int, :int, :pointer], :void],
|
156
|
-
[:glUniform2i, [:int, :int, :int], :void],
|
157
|
-
[:glUniform2iv, [:int, :int, :pointer], :void],
|
158
|
-
[:glUniform3f, [:int, :float, :float, :float], :void],
|
159
|
-
[:glUniform3fv, [:int, :int, :pointer], :void],
|
160
|
-
[:glUniform3i, [:int, :int, :int, :int], :void],
|
161
|
-
[:glUniform3iv, [:int, :int, :pointer], :void],
|
162
|
-
[:glUniform4f, [:int, :float, :float, :float, :float], :void],
|
163
|
-
[:glUniform4fv, [:int, :int, :pointer], :void],
|
164
|
-
[:glUniform4i, [:int, :int, :int, :int, :int], :void],
|
165
|
-
[:glUniform4iv, [:int, :int, :pointer], :void],
|
166
|
-
[:glUniformMatrix2fv, [:int, :int, :bool, :pointer], :void],
|
167
|
-
[:glUniformMatrix3fv, [:int, :int, :bool, :pointer], :void],
|
168
|
-
[:glUniformMatrix4fv, [:int, :int, :bool, :pointer], :void],
|
169
|
-
[:glUseProgram, [:uint], :void],
|
170
|
-
[:glValidateProgram, [:uint], :void],
|
171
|
-
[:glVertexAttrib1d, [:uint, :double], :void],
|
172
|
-
[:glVertexAttrib1dv, [:uint, :pointer], :void],
|
173
|
-
[:glVertexAttrib1f, [:uint, :float], :void],
|
174
|
-
[:glVertexAttrib1fv, [:uint, :pointer], :void],
|
175
|
-
[:glVertexAttrib1s, [:uint, :short], :void],
|
176
|
-
[:glVertexAttrib1sv, [:uint, :pointer], :void],
|
177
|
-
[:glVertexAttrib2d, [:uint, :double, :double], :void],
|
178
|
-
[:glVertexAttrib2dv, [:uint, :pointer], :void],
|
179
|
-
[:glVertexAttrib2f, [:uint, :float, :float], :void],
|
180
|
-
[:glVertexAttrib2fv, [:uint, :pointer], :void],
|
181
|
-
[:glVertexAttrib2s, [:uint, :short, :short], :void],
|
182
|
-
[:glVertexAttrib2sv, [:uint, :pointer], :void],
|
183
|
-
[:glVertexAttrib3d, [:uint, :double, :double, :double], :void],
|
184
|
-
[:glVertexAttrib3dv, [:uint, :pointer], :void],
|
185
|
-
[:glVertexAttrib3f, [:uint, :float, :float, :float], :void],
|
186
|
-
[:glVertexAttrib3fv, [:uint, :pointer], :void],
|
187
|
-
[:glVertexAttrib3s, [:uint, :short, :short, :short], :void],
|
188
|
-
[:glVertexAttrib3sv, [:uint, :pointer], :void],
|
189
|
-
[:glVertexAttrib4bv, [:uint, :pointer], :void],
|
190
|
-
[:glVertexAttrib4d, [:uint, :double, :double, :double, :double], :void],
|
191
|
-
[:glVertexAttrib4dv, [:uint, :pointer], :void],
|
192
|
-
[:glVertexAttrib4f, [:uint, :float, :float, :float, :float], :void],
|
193
|
-
[:glVertexAttrib4fv, [:uint, :pointer], :void],
|
194
|
-
[:glVertexAttrib4iv, [:uint, :pointer], :void],
|
195
|
-
[:glVertexAttrib4Nbv, [:uint, :pointer], :void],
|
196
|
-
[:glVertexAttrib4Niv, [:uint, :pointer], :void],
|
197
|
-
[:glVertexAttrib4Nsv, [:uint, :pointer], :void],
|
198
|
-
[:glVertexAttrib4Nub, [:uint, :uchar, :uchar, :uchar, :uchar], :void],
|
199
|
-
[:glVertexAttrib4Nubv, [:uint, :pointer], :void],
|
200
|
-
[:glVertexAttrib4Nuiv, [:uint, :pointer], :void],
|
201
|
-
[:glVertexAttrib4Nusv, [:uint, :pointer], :void],
|
202
|
-
[:glVertexAttrib4s, [:uint, :short, :short, :short, :short], :void],
|
203
|
-
[:glVertexAttrib4sv, [:uint, :pointer], :void],
|
204
|
-
[:glVertexAttrib4ubv, [:uint, :pointer], :void],
|
205
|
-
[:glVertexAttrib4uiv, [:uint, :pointer], :void],
|
206
|
-
[:glVertexAttrib4usv, [:uint, :pointer], :void],
|
207
|
-
[:glVertexAttribPointer, [:uint, :int, :uint, :bool, :int, :size_t], :void]
|
208
|
-
|
209
218
|
def get_program(program, pname)
|
210
219
|
p = FFI::MemoryPointer.new(:int)
|
211
|
-
glGetProgramiv(program, pname, p)
|
220
|
+
@rh.glGetProgramiv(program, pname, p)
|
212
221
|
result = p.read_int
|
213
222
|
[Roglew::GL::DELETE_STATUS, Roglew::GL::COMPILE_STATUS].include?(pname) ? result == Roglew::GL::TRUE : result
|
214
223
|
end
|
@@ -216,13 +225,13 @@ module GL_VERSION_2_0
|
|
216
225
|
def get_program_info_log(program)
|
217
226
|
length = get_program(program, Roglew::GL::INFO_LOG_LENGTH)
|
218
227
|
p = FFI::MemoryPointer.new(:char, length)
|
219
|
-
glGetProgramInfoLog(program, length, nil, p)
|
228
|
+
@rh.glGetProgramInfoLog(program, length, nil, p)
|
220
229
|
p.read_string
|
221
230
|
end
|
222
231
|
|
223
232
|
def get_shader(shader, pname)
|
224
233
|
p = FFI::MemoryPointer.new(:int)
|
225
|
-
glGetShaderiv(shader, pname, p)
|
234
|
+
@rh.glGetShaderiv(shader, pname, p)
|
226
235
|
result = p.read_int
|
227
236
|
[Roglew::GL::DELETE_STATUS, Roglew::GL::COMPILE_STATUS].include?(pname) ? result == Roglew::GL::TRUE : result
|
228
237
|
end
|
@@ -230,7 +239,7 @@ module GL_VERSION_2_0
|
|
230
239
|
def get_shader_info_log(shader)
|
231
240
|
length = get_shader(shader, Roglew::GL::INFO_LOG_LENGTH)
|
232
241
|
p = FFI::MemoryPointer.new(:char, length)
|
233
|
-
glGetShaderInfoLog(shader, length, nil, p)
|
242
|
+
@rh.glGetShaderInfoLog(shader, length, nil, p)
|
234
243
|
p.read_string
|
235
244
|
end
|
236
245
|
|
@@ -239,11 +248,17 @@ module GL_VERSION_2_0
|
|
239
248
|
ps.write_array_of_pointer(srcs.map { |src| FFI::MemoryPointer.from_string(src) })
|
240
249
|
pl = FFI::MemoryPointer.new(:int, srcs.length)
|
241
250
|
pl.write_array_of_int(srcs.map { |src| src.length })
|
242
|
-
glShaderSource(shader, srcs.length, ps, pl)
|
251
|
+
@rh.glShaderSource(shader, srcs.length, ps, pl)
|
252
|
+
end
|
253
|
+
|
254
|
+
private
|
255
|
+
def map_type(type)
|
256
|
+
|
243
257
|
end
|
244
258
|
end
|
245
259
|
end
|
246
260
|
|
247
|
-
%w'
|
248
|
-
|
261
|
+
%w'
|
262
|
+
shader
|
263
|
+
shader_program
|
249
264
|
'.each { |f| require "#{File.expand_path(__FILE__)[0..-4]}/#{f}" }
|