roglew 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +4 -0
- data/lib/roglew/contexts/base.rb +58 -0
- data/lib/roglew/contexts/deferred.rb +27 -0
- data/lib/roglew/contexts/immediate.rb +19 -0
- data/lib/roglew/contextual.rb +53 -0
- data/lib/roglew/errors.rb +5 -0
- data/lib/roglew/ext/ffi_struct_ext.rb +20 -0
- data/lib/roglew/extensions/GL_3DFX_multisample.rb +8 -0
- data/lib/roglew/extensions/GL_3DFX_tbuffer.rb +8 -0
- data/lib/roglew/extensions/GL_3DFX_texture_compression_FXT1.rb +6 -0
- data/lib/roglew/extensions/GL_AMD_blend_minmax_factor.rb +6 -0
- data/lib/roglew/extensions/GL_AMD_debug_output.rb +37 -0
- data/lib/roglew/extensions/GL_AMD_depth_clamp_separate.rb +6 -0
- data/lib/roglew/extensions/GL_AMD_draw_buffers_blend.rb +10 -0
- data/lib/roglew/extensions/GL_AMD_multi_draw_indirect.rb +8 -0
- data/lib/roglew/extensions/GL_AMD_name_gen_delete.rb +19 -0
- data/lib/roglew/extensions/GL_AMD_performance_monitor.rb +29 -0
- data/lib/roglew/extensions/GL_AMD_pinned_memory.rb +5 -0
- data/lib/roglew/extensions/GL_AMD_query_buffer_object.rb +7 -0
- data/lib/roglew/extensions/GL_AMD_sample_positions.rb +13 -0
- data/lib/roglew/extensions/GL_AMD_seamless_cubemap_per_texture.rb +5 -0
- data/lib/roglew/extensions/GL_AMD_stencil_operation_extended.rb +16 -0
- data/lib/roglew/extensions/GL_AMD_vertex_shader_tessellator.rb +20 -0
- data/lib/roglew/extensions/GL_APPLE_aux_depth_stencil.rb +5 -0
- data/lib/roglew/extensions/GL_APPLE_client_storage.rb +5 -0
- data/lib/roglew/extensions/GL_APPLE_element_array.rb +19 -0
- data/lib/roglew/extensions/GL_APPLE_fence.rb +21 -0
- data/lib/roglew/extensions/GL_APPLE_float_pixels.rb +18 -0
- data/lib/roglew/extensions/GL_APPLE_flush_buffer_range.rb +15 -0
- data/lib/roglew/extensions/GL_APPLE_object_purgeable.rb +20 -0
- data/lib/roglew/extensions/GL_APPLE_pixel_buffer.rb +5 -0
- data/lib/roglew/extensions/GL_APPLE_rgb_422.rb +7 -0
- data/lib/roglew/extensions/GL_APPLE_row_bytes.rb +6 -0
- data/lib/roglew/extensions/GL_APPLE_specular_vector.rb +5 -0
- data/lib/roglew/extensions/GL_APPLE_texture_range.rb +19 -0
- data/lib/roglew/extensions/GL_APPLE_transform_hint.rb +5 -0
- data/lib/roglew/extensions/GL_APPLE_vertex_array_object.rb +16 -0
- data/lib/roglew/extensions/GL_APPLE_vertex_array_range.rb +22 -0
- data/lib/roglew/extensions/GL_APPLE_vertex_program_evaluators.rb +28 -0
- data/lib/roglew/extensions/GL_APPLE_ycbcr_422.rb +5 -0
- data/lib/roglew/extensions/GL_ARB_ES2_compatibility.rb +32 -0
- data/lib/roglew/extensions/GL_ARB_ES3_compatibility.rb +17 -0
- data/lib/roglew/extensions/GL_ARB_base_instance.rb +9 -0
- data/lib/roglew/extensions/GL_ARB_blend_func_extended.rb +17 -0
- data/lib/roglew/extensions/GL_ARB_cl_event.rb +14 -0
- data/lib/roglew/extensions/GL_ARB_clear_buffer_object.rb +10 -0
- data/lib/roglew/extensions/GL_ARB_color_buffer_float.rb +17 -0
- data/lib/roglew/extensions/GL_ARB_compressed_texture_pixel_storage.rb +12 -0
- data/lib/roglew/extensions/GL_ARB_compute_shader.rb +31 -0
- data/lib/roglew/extensions/GL_ARB_copy_buffer.rb +14 -0
- data/lib/roglew/extensions/GL_ARB_copy_image.rb +7 -0
- data/lib/roglew/extensions/GL_ARB_debug_output.rb +39 -0
- data/lib/roglew/extensions/GL_ARB_depth_buffer_float.rb +7 -0
- data/lib/roglew/extensions/GL_ARB_depth_clamp.rb +5 -0
- data/lib/roglew/extensions/GL_ARB_depth_texture.rb +9 -0
- data/lib/roglew/extensions/GL_ARB_draw_buffers.rb +29 -0
- data/lib/roglew/extensions/GL_ARB_draw_buffers_blend.rb +10 -0
- data/lib/roglew/extensions/GL_ARB_draw_elements_base_vertex.rb +10 -0
- data/lib/roglew/extensions/GL_ARB_draw_indirect.rb +15 -0
- data/lib/roglew/extensions/GL_ARB_explicit_uniform_location.rb +5 -0
- data/lib/roglew/extensions/GL_ARB_fragment_program.rb +19 -0
- data/lib/roglew/extensions/GL_ARB_fragment_shader.rb +7 -0
- data/lib/roglew/extensions/GL_ARB_framebuffer_no_attachments.rb +24 -0
- data/lib/roglew/extensions/GL_ARB_framebuffer_object/framebuffer.rb +24 -0
- data/lib/roglew/extensions/GL_ARB_framebuffer_object/framebuffer_context.rb +51 -0
- data/lib/roglew/extensions/GL_ARB_framebuffer_object/renderbuffer.rb +23 -0
- data/lib/roglew/extensions/GL_ARB_framebuffer_object/renderbuffer_context.rb +48 -0
- data/lib/roglew/extensions/GL_ARB_framebuffer_object.rb +152 -0
- data/lib/roglew/extensions/GL_ARB_framebuffer_sRGB.rb +5 -0
- data/lib/roglew/extensions/GL_ARB_geometry_shader4.rb +34 -0
- data/lib/roglew/extensions/GL_ARB_get_program_binary.rb +18 -0
- data/lib/roglew/extensions/GL_ARB_gpu_shader5.rb +10 -0
- data/lib/roglew/extensions/GL_ARB_gpu_shader_fp64.rb +41 -0
- data/lib/roglew/extensions/GL_ARB_half_float_pixel.rb +5 -0
- data/lib/roglew/extensions/GL_ARB_half_float_vertex.rb +5 -0
- data/lib/roglew/extensions/GL_ARB_imaging.rb +120 -0
- data/lib/roglew/extensions/GL_ARB_instanced_arrays.rb +15 -0
- data/lib/roglew/extensions/GL_ARB_internalformat_query.rb +13 -0
- data/lib/roglew/extensions/GL_ARB_internalformat_query2.rb +124 -0
- data/lib/roglew/extensions/GL_ARB_invalidate_subdata.rb +12 -0
- data/lib/roglew/extensions/GL_ARB_map_buffer_alignment.rb +5 -0
- data/lib/roglew/extensions/GL_ARB_map_buffer_range.rb +19 -0
- data/lib/roglew/extensions/GL_ARB_matrix_palette.rb +26 -0
- data/lib/roglew/extensions/GL_ARB_multi_draw_indirect.rb +8 -0
- data/lib/roglew/extensions/GL_ARB_multisample.rb +21 -0
- data/lib/roglew/extensions/GL_ARB_multitexture.rb +80 -0
- data/lib/roglew/extensions/GL_ARB_occlusion_query.rb +24 -0
- data/lib/roglew/extensions/GL_ARB_occlusion_query2.rb +5 -0
- data/lib/roglew/extensions/GL_ARB_pixel_buffer_object.rb +9 -0
- data/lib/roglew/extensions/GL_ARB_point_parameters.rb +17 -0
- data/lib/roglew/extensions/GL_ARB_point_sprite.rb +6 -0
- data/lib/roglew/extensions/GL_ARB_program_interface_query.rb +64 -0
- data/lib/roglew/extensions/GL_ARB_provoking_vertex.rb +16 -0
- data/lib/roglew/extensions/GL_ARB_robustness.rb +38 -0
- data/lib/roglew/extensions/GL_ARB_sample_shading.rb +15 -0
- data/lib/roglew/extensions/GL_ARB_sampler_objects.rb +27 -0
- data/lib/roglew/extensions/GL_ARB_seamless_cube_map.rb +5 -0
- data/lib/roglew/extensions/GL_ARB_separate_shader_objects.rb +81 -0
- data/lib/roglew/extensions/GL_ARB_shader_atomic_counters.rb +42 -0
- data/lib/roglew/extensions/GL_ARB_shader_image_load_store.rb +78 -0
- data/lib/roglew/extensions/GL_ARB_shader_objects.rb +85 -0
- data/lib/roglew/extensions/GL_ARB_shader_storage_buffer_object.rb +29 -0
- data/lib/roglew/extensions/GL_ARB_shader_subroutine.rb +29 -0
- data/lib/roglew/extensions/GL_ARB_shading_language_100.rb +5 -0
- data/lib/roglew/extensions/GL_ARB_shading_language_include.rb +20 -0
- data/lib/roglew/extensions/GL_ARB_shadow.rb +7 -0
- data/lib/roglew/extensions/GL_ARB_shadow_ambient.rb +5 -0
- data/lib/roglew/extensions/GL_ARB_stencil_texturing.rb +5 -0
- data/lib/roglew/extensions/GL_ARB_sync.rb +34 -0
- data/lib/roglew/extensions/GL_ARB_tessellation_shader.rb +46 -0
- data/lib/roglew/extensions/GL_ARB_texture_border_clamp.rb +5 -0
- data/lib/roglew/extensions/GL_ARB_texture_buffer_object.rb +18 -0
- data/lib/roglew/extensions/GL_ARB_texture_buffer_range.rb +17 -0
- data/lib/roglew/extensions/GL_ARB_texture_compression.rb +30 -0
- data/lib/roglew/extensions/GL_ARB_texture_compression_bptc.rb +8 -0
- data/lib/roglew/extensions/GL_ARB_texture_compression_rgtc.rb +8 -0
- data/lib/roglew/extensions/GL_ARB_texture_cube_map.rb +16 -0
- data/lib/roglew/extensions/GL_ARB_texture_cube_map_array.rb +11 -0
- data/lib/roglew/extensions/GL_ARB_texture_env_combine.rb +26 -0
- data/lib/roglew/extensions/GL_ARB_texture_env_dot3.rb +6 -0
- data/lib/roglew/extensions/GL_ARB_texture_float.rb +24 -0
- data/lib/roglew/extensions/GL_ARB_texture_gather.rb +7 -0
- data/lib/roglew/extensions/GL_ARB_texture_mirrored_repeat.rb +5 -0
- data/lib/roglew/extensions/GL_ARB_texture_multisample.rb +37 -0
- data/lib/roglew/extensions/GL_ARB_texture_rectangle.rb +10 -0
- data/lib/roglew/extensions/GL_ARB_texture_rg.rb +28 -0
- data/lib/roglew/extensions/GL_ARB_texture_rgb10_a2ui.rb +5 -0
- data/lib/roglew/extensions/GL_ARB_texture_storage.rb +19 -0
- data/lib/roglew/extensions/GL_ARB_texture_storage_multisample.rb +11 -0
- data/lib/roglew/extensions/GL_ARB_texture_swizzle.rb +9 -0
- data/lib/roglew/extensions/GL_ARB_texture_view.rb +18 -0
- data/lib/roglew/extensions/GL_ARB_timer_query.rb +17 -0
- data/lib/roglew/extensions/GL_ARB_transform_feedback2.rb +23 -0
- data/lib/roglew/extensions/GL_ARB_transform_feedback3pt.rb +18 -0
- data/lib/roglew/extensions/GL_ARB_transform_feedback_instanced.rb +9 -0
- data/lib/roglew/extensions/GL_ARB_transpose_matrix.rb +20 -0
- data/lib/roglew/extensions/GL_ARB_uniform_buffer_object.rb +55 -0
- data/lib/roglew/extensions/GL_ARB_vertex_array_bgra.rb +5 -0
- data/lib/roglew/extensions/GL_ARB_vertex_array_object.rb +21 -0
- data/lib/roglew/extensions/GL_ARB_vertex_attrib_64bit.rb +28 -0
- data/lib/roglew/extensions/GL_ARB_vertex_attrib_binding.rb +25 -0
- data/lib/roglew/extensions/GL_ARB_vertex_blend.rb +64 -0
- data/lib/roglew/extensions/GL_ARB_vertex_buffer_object.rb +51 -0
- data/lib/roglew/extensions/GL_ARB_vertex_program.rb +153 -0
- data/lib/roglew/extensions/GL_ARB_vertex_shader.rb +22 -0
- data/lib/roglew/extensions/GL_ARB_vertex_type_2_10_10_10_rev.rb +52 -0
- data/lib/roglew/extensions/GL_ARB_viewport_array.rb +35 -0
- data/lib/roglew/extensions/GL_ARB_window_pos.rb +22 -0
- data/lib/roglew/extensions/GL_ATIX_point_sprites.rb +10 -0
- data/lib/roglew/extensions/GL_ATIX_texture_env_combine3.rb +7 -0
- data/lib/roglew/extensions/GL_ATIX_texture_env_route.rb +7 -0
- data/lib/roglew/extensions/GL_ATIX_vertex_shader_output_point_size.rb +5 -0
- data/lib/roglew/extensions/GL_ATI_draw_buffers.rb +30 -0
- data/lib/roglew/extensions/GL_ATI_element_array.rb +18 -0
- data/lib/roglew/extensions/GL_ATI_envmap_bumpmap.rb +24 -0
- data/lib/roglew/extensions/GL_ATI_fragment_shader.rb +80 -0
- data/lib/roglew/extensions/GL_ATI_map_object_buffer.rb +9 -0
- data/lib/roglew/extensions/GL_ATI_meminfo.rb +7 -0
- data/lib/roglew/extensions/GL_ATI_pn_triangles.rb +23 -0
- data/lib/roglew/extensions/GL_ATI_separate_stencil.rb +18 -0
- data/lib/roglew/extensions/GL_ATI_text_fragment_shader.rb +5 -0
- data/lib/roglew/extensions/GL_ATI_texture_compression_3dc.rb +5 -0
- data/lib/roglew/extensions/GL_ATI_texture_env_combine3.rb +7 -0
- data/lib/roglew/extensions/GL_ATI_texture_float.rb +16 -0
- data/lib/roglew/extensions/GL_ATI_texture_mirror_once.rb +6 -0
- data/lib/roglew/extensions/GL_ATI_vertex_array_object.rb +32 -0
- data/lib/roglew/extensions/GL_ATI_vertex_attrib_array_object.rb +9 -0
- data/lib/roglew/extensions/GL_ATI_vertex_streams.rb +67 -0
- data/lib/roglew/extensions/GL_EXT_422_pixels.rb +8 -0
- data/lib/roglew/extensions/GL_EXT_Cg_shader.rb +6 -0
- data/lib/roglew/extensions/GL_EXT_abgr.rb +5 -0
- data/lib/roglew/extensions/GL_EXT_bgra.rb +6 -0
- data/lib/roglew/extensions/GL_EXT_bindable_uniform.rb +21 -0
- data/lib/roglew/extensions/GL_EXT_blend_color.rb +18 -0
- data/lib/roglew/extensions/GL_EXT_blend_equation_separate.rb +15 -0
- data/lib/roglew/extensions/GL_EXT_blend_func_separate.rb +17 -0
- data/lib/roglew/extensions/GL_EXT_blend_minmax.rb +17 -0
- data/lib/roglew/extensions/GL_EXT_blend_subtract.rb +8 -0
- data/lib/roglew/extensions/GL_EXT_clip_volume_hint.rb +5 -0
- data/lib/roglew/extensions/GL_EXT_cmyka.rb +8 -0
- data/lib/roglew/extensions/GL_EXT_color_subtable.rb +8 -0
- data/lib/roglew/extensions/GL_EXT_compiled_vertex_array.rb +16 -0
- data/lib/roglew/extensions/GL_EXT_convolution.rb +45 -0
- data/lib/roglew/extensions/GL_EXT_coordinate_frame.rb +28 -0
- data/lib/roglew/extensions/GL_EXT_copy_texture.rb +11 -0
- data/lib/roglew/extensions/GL_EXT_cull_vertex.rb +17 -0
- data/lib/roglew/extensions/GL_EXT_debug_marker.rb +9 -0
- data/lib/roglew/extensions/GL_EXT_depth_bounds_test.rb +15 -0
- data/lib/roglew/extensions/GL_EXT_direct_state_access.rb +245 -0
- data/lib/roglew/extensions/GL_EXT_draw_buffers2.rb +12 -0
- data/lib/roglew/extensions/GL_EXT_draw_instanced.rb +8 -0
- data/lib/roglew/extensions/GL_EXT_draw_range_elements.rb +15 -0
- data/lib/roglew/extensions/GL_EXT_fog_coord.rb +24 -0
- data/lib/roglew/extensions/GL_EXT_fragment_lighting.rb +44 -0
- data/lib/roglew/extensions/GL_EXT_framebuffer_blit.rb +17 -0
- data/lib/roglew/extensions/GL_EXT_framebuffer_multisample.rb +16 -0
- data/lib/roglew/extensions/GL_EXT_framebuffer_multisample_blit_scaled.rb +6 -0
- data/lib/roglew/extensions/GL_EXT_framebuffer_object/framebuffer.rb +24 -0
- data/lib/roglew/extensions/GL_EXT_framebuffer_object/framebuffer_context.rb +42 -0
- data/lib/roglew/extensions/GL_EXT_framebuffer_object/renderbuffer.rb +23 -0
- data/lib/roglew/extensions/GL_EXT_framebuffer_object/renderbuffer_context.rb +43 -0
- data/lib/roglew/extensions/GL_EXT_framebuffer_object.rb +127 -0
- data/lib/roglew/extensions/GL_EXT_framebuffer_sRGB.rb +6 -0
- data/lib/roglew/extensions/GL_EXT_geometry_shader4.rb +35 -0
- data/lib/roglew/extensions/GL_EXT_gpu_program_parameters.rb +8 -0
- data/lib/roglew/extensions/GL_EXT_gpu_shader4.rb +72 -0
- data/lib/roglew/extensions/GL_EXT_histogram.rb +35 -0
- data/lib/roglew/extensions/GL_EXT_index_func.rb +7 -0
- data/lib/roglew/extensions/GL_EXT_index_material.rb +7 -0
- data/lib/roglew/extensions/GL_EXT_light_texture.rb +24 -0
- data/lib/roglew/extensions/GL_EXT_multi_draw_arrays.rb +8 -0
- data/lib/roglew/extensions/GL_EXT_multisample.rb +31 -0
- data/lib/roglew/extensions/GL_EXT_packed_depth_stencil.rb +8 -0
- data/lib/roglew/extensions/GL_EXT_packed_float.rb +7 -0
- data/lib/roglew/extensions/GL_EXT_packed_pixels.rb +9 -0
- data/lib/roglew/extensions/GL_EXT_paletted_texture.rb +37 -0
- data/lib/roglew/extensions/GL_EXT_pixel_buffer_object.rb +8 -0
- data/lib/roglew/extensions/GL_EXT_pixel_transform.rb +27 -0
- data/lib/roglew/extensions/GL_EXT_point_parameters.rb +18 -0
- data/lib/roglew/extensions/GL_EXT_polygon_offset.rb +16 -0
- data/lib/roglew/extensions/GL_EXT_provoking_vertex.rb +17 -0
- data/lib/roglew/extensions/GL_EXT_rescale_normal.rb +5 -0
- data/lib/roglew/extensions/GL_EXT_scene_marker.rb +8 -0
- data/lib/roglew/extensions/GL_EXT_secondary_color.rb +36 -0
- data/lib/roglew/extensions/GL_EXT_separate_shader_objects.rb +16 -0
- data/lib/roglew/extensions/GL_EXT_separate_specular_color.rb +7 -0
- data/lib/roglew/extensions/GL_EXT_shader_image_load_store.rb +69 -0
- data/lib/roglew/extensions/GL_EXT_shared_texture_palette.rb +5 -0
- data/lib/roglew/extensions/GL_EXT_stencil_clear_tag.rb +6 -0
- data/lib/roglew/extensions/GL_EXT_stencil_two_side.rb +15 -0
- data/lib/roglew/extensions/GL_EXT_stencil_wrap.rb +6 -0
- data/lib/roglew/extensions/GL_EXT_subtexture.rb +9 -0
- data/lib/roglew/extensions/GL_EXT_texture.rb +46 -0
- data/lib/roglew/extensions/GL_EXT_texture3D.rb +22 -0
- data/lib/roglew/extensions/GL_EXT_texture_array.rb +21 -0
- data/lib/roglew/extensions/GL_EXT_texture_buffer_object.rb +18 -0
- data/lib/roglew/extensions/GL_EXT_texture_compression_latc.rb +8 -0
- data/lib/roglew/extensions/GL_EXT_texture_compression_rgtc.rb +8 -0
- data/lib/roglew/extensions/GL_EXT_texture_compression_s3tc.rb +8 -0
- data/lib/roglew/extensions/GL_EXT_texture_cube_map.rb +16 -0
- data/lib/roglew/extensions/GL_EXT_texture_edge_clamp.rb +5 -0
- data/lib/roglew/extensions/GL_EXT_texture_env.rb +15 -0
- data/lib/roglew/extensions/GL_EXT_texture_env_combine.rb +25 -0
- data/lib/roglew/extensions/GL_EXT_texture_env_dot3.rb +6 -0
- data/lib/roglew/extensions/GL_EXT_texture_filter_anisotropic.rb +6 -0
- data/lib/roglew/extensions/GL_EXT_texture_integer.rb +65 -0
- data/lib/roglew/extensions/GL_EXT_texture_lod_bias.rb +7 -0
- data/lib/roglew/extensions/GL_EXT_texture_mirror_clamp.rb +7 -0
- data/lib/roglew/extensions/GL_EXT_texture_object.rb +23 -0
- data/lib/roglew/extensions/GL_EXT_texture_perturb_normal.rb +15 -0
- data/lib/roglew/extensions/GL_EXT_texture_rectangle.rb +8 -0
- data/lib/roglew/extensions/GL_EXT_texture_sRGB.rb +20 -0
- data/lib/roglew/extensions/GL_EXT_texture_sRGB_decode.rb +7 -0
- data/lib/roglew/extensions/GL_EXT_texture_shared_exponent.rb +7 -0
- data/lib/roglew/extensions/GL_EXT_texture_snorm.rb +29 -0
- data/lib/roglew/extensions/GL_EXT_texture_swizzle.rb +9 -0
- data/lib/roglew/extensions/GL_EXT_timer_query.rb +15 -0
- data/lib/roglew/extensions/GL_EXT_transform_feedback.rb +34 -0
- data/lib/roglew/extensions/GL_EXT_vertex_array.rb +53 -0
- data/lib/roglew/extensions/GL_EXT_vertex_array_bgra.rb +5 -0
- data/lib/roglew/extensions/GL_EXT_vertex_attrib_64bit.rb +35 -0
- data/lib/roglew/extensions/GL_EXT_vertex_shader.rb +164 -0
- data/lib/roglew/extensions/GL_EXT_vertex_weighting.rb +28 -0
- data/lib/roglew/extensions/GL_EXT_x11_sync_object.rb +14 -0
- data/lib/roglew/extensions/GL_GREMEDY_frame_terminator.rb +7 -0
- data/lib/roglew/extensions/GL_GREMEDY_string_marker.rb +7 -0
- data/lib/roglew/extensions/GL_HP_image_transform.rb +12 -0
- data/lib/roglew/extensions/GL_HP_occlusion_test.rb +6 -0
- data/lib/roglew/extensions/GL_IBM_cull_vertex.rb +5 -0
- data/lib/roglew/extensions/GL_IBM_multimode_draw_arrays.rb +8 -0
- data/lib/roglew/extensions/GL_IBM_rasterpos_clip.rb +5 -0
- data/lib/roglew/extensions/GL_IBM_static_data.rb +6 -0
- data/lib/roglew/extensions/GL_IBM_texture_mirrored_repeat.rb +5 -0
- data/lib/roglew/extensions/GL_IBM_vertex_array_lists.rb +36 -0
- data/lib/roglew/extensions/GL_INGR_color_clamp.rb +12 -0
- data/lib/roglew/extensions/GL_INGR_interlace_read.rb +5 -0
- data/lib/roglew/extensions/GL_INTEL_parallel_arrays.rb +21 -0
- data/lib/roglew/extensions/GL_INTEL_texture_scissor.rb +8 -0
- data/lib/roglew/extensions/GL_KHR_debug.rb +64 -0
- data/lib/roglew/extensions/GL_KHR_texture_compression_astc_ldr.rb +32 -0
- data/lib/roglew/extensions/GL_KTX_buffer_region.rb +21 -0
- data/lib/roglew/extensions/GL_MESAX_texture_stack.rb +10 -0
- data/lib/roglew/extensions/GL_MESA_pack_invert.rb +5 -0
- data/lib/roglew/extensions/GL_MESA_resize_buffers.rb +7 -0
- data/lib/roglew/extensions/GL_MESA_window_pos.rb +30 -0
- data/lib/roglew/extensions/GL_MESA_ycbcr_texture.rb +7 -0
- data/lib/roglew/extensions/GL_NVX_gpu_memory_info.rb +9 -0
- data/lib/roglew/extensions/GL_NV_bindless_texture.rb +19 -0
- data/lib/roglew/extensions/GL_NV_conditional_render.rb +18 -0
- data/lib/roglew/extensions/GL_NV_copy_depth_to_color.rb +6 -0
- data/lib/roglew/extensions/GL_NV_copy_image.rb +7 -0
- data/lib/roglew/extensions/GL_NV_depth_buffer_float.rb +19 -0
- data/lib/roglew/extensions/GL_NV_depth_clamp.rb +5 -0
- data/lib/roglew/extensions/GL_NV_depth_range_unclamped.rb +9 -0
- data/lib/roglew/extensions/GL_NV_evaluators.rb +45 -0
- data/lib/roglew/extensions/GL_NV_explicit_multisample.rb +25 -0
- data/lib/roglew/extensions/GL_NV_fence.rb +22 -0
- data/lib/roglew/extensions/GL_NV_float_buffer.rb +19 -0
- data/lib/roglew/extensions/GL_NV_fog_distance.rb +7 -0
- data/lib/roglew/extensions/GL_NV_fragment_program.rb +24 -0
- data/lib/roglew/extensions/GL_NV_fragment_program2.rb +9 -0
- data/lib/roglew/extensions/GL_NV_framebuffer_multisample_coverage.rb +17 -0
- data/lib/roglew/extensions/GL_NV_geometry_program4.rb +16 -0
- data/lib/roglew/extensions/GL_NV_gpu_program4.rb +32 -0
- data/lib/roglew/extensions/GL_NV_gpu_program5.rb +10 -0
- data/lib/roglew/extensions/GL_NV_gpu_shader5.rb +74 -0
- data/lib/roglew/extensions/GL_NV_half_float.rb +59 -0
- data/lib/roglew/extensions/GL_NV_light_max_exponent.rb +6 -0
- data/lib/roglew/extensions/GL_NV_multisample_coverage.rb +6 -0
- data/lib/roglew/extensions/GL_NV_multisample_filter_hint.rb +5 -0
- data/lib/roglew/extensions/GL_NV_occlusion_query.rb +23 -0
- data/lib/roglew/extensions/GL_NV_packed_depth_stencil.rb +6 -0
- data/lib/roglew/extensions/GL_NV_parameter_buffer_object.rb +20 -0
- data/lib/roglew/extensions/GL_NV_path_rendering.rb +191 -0
- data/lib/roglew/extensions/GL_NV_pixel_data_range.rb +20 -0
- data/lib/roglew/extensions/GL_NV_point_sprite.rb +17 -0
- data/lib/roglew/extensions/GL_NV_present_video.rb +24 -0
- data/lib/roglew/extensions/GL_NV_primitive_restart.rb +16 -0
- data/lib/roglew/extensions/GL_NV_register_combiners.rb +76 -0
- data/lib/roglew/extensions/GL_NV_register_combiners2.rb +15 -0
- data/lib/roglew/extensions/GL_NV_shader_buffer_load.rb +28 -0
- data/lib/roglew/extensions/GL_NV_tessellation_program5.rb +9 -0
- data/lib/roglew/extensions/GL_NV_texgen_emboss.rb +7 -0
- data/lib/roglew/extensions/GL_NV_texgen_reflection.rb +7 -0
- data/lib/roglew/extensions/GL_NV_texture_barrier.rb +7 -0
- data/lib/roglew/extensions/GL_NV_texture_env_combine4.rb +9 -0
- data/lib/roglew/extensions/GL_NV_texture_expand_normal.rb +5 -0
- data/lib/roglew/extensions/GL_NV_texture_multisample.rb +20 -0
- data/lib/roglew/extensions/GL_NV_texture_rectangle.rb +8 -0
- data/lib/roglew/extensions/GL_NV_texture_shader.rb +77 -0
- data/lib/roglew/extensions/GL_NV_texture_shader2.rb +32 -0
- data/lib/roglew/extensions/GL_NV_texture_shader3.rb +21 -0
- data/lib/roglew/extensions/GL_NV_transform_feedback.rb +48 -0
- data/lib/roglew/extensions/GL_NV_transform_feedback2.rb +23 -0
- data/lib/roglew/extensions/GL_NV_vdpau_interop.rb +26 -0
- data/lib/roglew/extensions/GL_NV_vertex_array_range.rb +19 -0
- data/lib/roglew/extensions/GL_NV_vertex_array_range2.rb +5 -0
- data/lib/roglew/extensions/GL_NV_vertex_attrib_integer_64bit.rb +33 -0
- data/lib/roglew/extensions/GL_NV_vertex_buffer_unified_memory.rb +49 -0
- data/lib/roglew/extensions/GL_NV_vertex_program.rb +159 -0
- data/lib/roglew/extensions/GL_NV_vertex_program2_option.rb +6 -0
- data/lib/roglew/extensions/GL_NV_vertex_program3.rb +5 -0
- data/lib/roglew/extensions/GL_NV_vertex_program4.rb +5 -0
- data/lib/roglew/extensions/GL_NV_video_capture.rb +53 -0
- data/lib/roglew/extensions/GL_OES_byte_coordinates.rb +5 -0
- data/lib/roglew/extensions/GL_OES_compressed_paletted_texture.rb +14 -0
- data/lib/roglew/extensions/GL_OES_read_format.rb +6 -0
- data/lib/roglew/extensions/GL_OES_single_precision.rb +12 -0
- data/lib/roglew/extensions/GL_OML_interlace.rb +6 -0
- data/lib/roglew/extensions/GL_OML_resample.rb +10 -0
- data/lib/roglew/extensions/GL_OML_subsample.rb +6 -0
- data/lib/roglew/extensions/GL_PGI_misc_hints.rb +24 -0
- data/lib/roglew/extensions/GL_PGI_vertex_hints.rb +26 -0
- data/lib/roglew/extensions/GL_REGAL_error_string.rb +7 -0
- data/lib/roglew/extensions/GL_REGAL_extension_query.rb +8 -0
- data/lib/roglew/extensions/GL_REGAL_log.rb +13 -0
- data/lib/roglew/extensions/GL_REND_screen_coordinates.rb +6 -0
- data/lib/roglew/extensions/GL_S3_s3tc.rb +10 -0
- data/lib/roglew/extensions/GL_SGIS_color_range.rb +13 -0
- data/lib/roglew/extensions/GL_SGIS_detail_texture.rb +8 -0
- data/lib/roglew/extensions/GL_SGIS_fog_function.rb +8 -0
- data/lib/roglew/extensions/GL_SGIS_generate_mipmap.rb +6 -0
- data/lib/roglew/extensions/GL_SGIS_multisample.rb +30 -0
- data/lib/roglew/extensions/GL_SGIS_point_line_texgen.rb +12 -0
- data/lib/roglew/extensions/GL_SGIS_sharpen_texture.rb +8 -0
- data/lib/roglew/extensions/GL_SGIS_texture4D.rb +8 -0
- data/lib/roglew/extensions/GL_SGIS_texture_border_clamp.rb +5 -0
- data/lib/roglew/extensions/GL_SGIS_texture_edge_clamp.rb +5 -0
- data/lib/roglew/extensions/GL_SGIS_texture_filter4.rb +8 -0
- data/lib/roglew/extensions/GL_SGIS_texture_lod.rb +8 -0
- data/lib/roglew/extensions/GL_SGIX_async.rb +19 -0
- data/lib/roglew/extensions/GL_SGIX_async_histogram.rb +6 -0
- data/lib/roglew/extensions/GL_SGIX_async_pixel.rb +10 -0
- data/lib/roglew/extensions/GL_SGIX_blend_alpha_minmax.rb +6 -0
- data/lib/roglew/extensions/GL_SGIX_convolution_accuracy.rb +5 -0
- data/lib/roglew/extensions/GL_SGIX_depth_texture.rb +7 -0
- data/lib/roglew/extensions/GL_SGIX_flush_raster.rb +7 -0
- data/lib/roglew/extensions/GL_SGIX_fog_offset.rb +6 -0
- data/lib/roglew/extensions/GL_SGIX_fog_texture.rb +16 -0
- data/lib/roglew/extensions/GL_SGIX_fragment_specular_lighting.rb +23 -0
- data/lib/roglew/extensions/GL_SGIX_framezoom.rb +8 -0
- data/lib/roglew/extensions/GL_SGIX_interlace.rb +5 -0
- data/lib/roglew/extensions/GL_SGIX_pixel_texture.rb +8 -0
- data/lib/roglew/extensions/GL_SGIX_reference_plane.rb +7 -0
- data/lib/roglew/extensions/GL_SGIX_resample.rb +8 -0
- data/lib/roglew/extensions/GL_SGIX_shadow_ambient.rb +5 -0
- data/lib/roglew/extensions/GL_SGIX_sprite.rb +10 -0
- data/lib/roglew/extensions/GL_SGIX_tag_sample_buffer.rb +7 -0
- data/lib/roglew/extensions/GL_SGIX_texture_coordinate_clamp.rb +7 -0
- data/lib/roglew/extensions/GL_SGIX_texture_multi_buffer.rb +5 -0
- data/lib/roglew/extensions/GL_SGIX_texture_range.rb +32 -0
- data/lib/roglew/extensions/GL_SGIX_texture_scale_bias.rb +8 -0
- data/lib/roglew/extensions/GL_SGIX_vertex_preclip.rb +6 -0
- data/lib/roglew/extensions/GL_SGIX_vertex_preclip_hint.rb +6 -0
- data/lib/roglew/extensions/GL_SGI_color_matrix.rb +15 -0
- data/lib/roglew/extensions/GL_SGI_color_table.rb +35 -0
- data/lib/roglew/extensions/GL_SGI_texture_color_table.rb +6 -0
- data/lib/roglew/extensions/GL_SUNX_constant_data.rb +15 -0
- data/lib/roglew/extensions/GL_SUN_convolution_border_modes.rb +5 -0
- data/lib/roglew/extensions/GL_SUN_global_alpha.rb +22 -0
- data/lib/roglew/extensions/GL_SUN_mesh_array.rb +6 -0
- data/lib/roglew/extensions/GL_SUN_read_video_pixels.rb +7 -0
- data/lib/roglew/extensions/GL_SUN_slice_accum.rb +5 -0
- data/lib/roglew/extensions/GL_SUN_triangle_list.rb +36 -0
- data/lib/roglew/extensions/GL_SUN_vertex.rb +46 -0
- data/lib/roglew/extensions/GL_VERSION_1_2.rb +62 -0
- data/lib/roglew/extensions/GL_VERSION_1_3.rb +154 -0
- data/lib/roglew/extensions/GL_VERSION_1_4.rb +99 -0
- data/lib/roglew/extensions/GL_VERSION_1_5.rb +79 -0
- data/lib/roglew/extensions/GL_VERSION_2_0/shader.rb +52 -0
- data/lib/roglew/extensions/GL_VERSION_2_0/shader_program.rb +33 -0
- data/lib/roglew/extensions/GL_VERSION_2_0.rb +251 -0
- data/lib/roglew/extensions/GL_VERSION_2_1.rb +40 -0
- data/lib/roglew/extensions/GL_VERSION_3_0.rb +178 -0
- data/lib/roglew/extensions/GL_VERSION_3_1.rb +53 -0
- data/lib/roglew/extensions/GL_VERSION_3_2.rb +43 -0
- data/lib/roglew/extensions/GL_VERSION_3_3.rb +19 -0
- data/lib/roglew/extensions/GL_VERSION_4_0.rb +46 -0
- data/lib/roglew/extensions/GL_VERSION_4_2.rb +21 -0
- data/lib/roglew/extensions/GL_VERSION_4_3.rb +30 -0
- data/lib/roglew/extensions/GL_WIN_specular_fog.rb +5 -0
- data/lib/roglew/extensions/GL_WIN_swap_hint.rb +7 -0
- data/lib/roglew/extensions/WGL_3DFX_multisample.rb +6 -0
- data/lib/roglew/extensions/WGL_3DL_stereo_control.rb +16 -0
- data/lib/roglew/extensions/WGL_AMD_gpu_association.rb +30 -0
- data/lib/roglew/extensions/WGL_ARB_buffer_region.rb +19 -0
- data/lib/roglew/extensions/WGL_ARB_create_context.rb +20 -0
- data/lib/roglew/extensions/WGL_ARB_create_context_profile.rb +8 -0
- data/lib/roglew/extensions/WGL_ARB_extensions_string.rb +7 -0
- data/lib/roglew/extensions/WGL_ARB_framebuffer_sRGB.rb +5 -0
- data/lib/roglew/extensions/WGL_ARB_make_current_read.rb +15 -0
- data/lib/roglew/extensions/WGL_ARB_multisample.rb +6 -0
- data/lib/roglew/extensions/WGL_ARB_pbuffer.rb +24 -0
- data/lib/roglew/extensions/WGL_ARB_pixel_format.rb +63 -0
- data/lib/roglew/extensions/WGL_ARB_pixel_format_float.rb +5 -0
- data/lib/roglew/extensions/WGL_ARB_render_texture.rb +47 -0
- data/lib/roglew/extensions/WGL_ATI_pixel_format_float.rb +10 -0
- data/lib/roglew/extensions/WGL_ATI_render_texture_rectangle.rb +5 -0
- data/lib/roglew/extensions/WGL_EXT_create_context_es2_profile.rb +5 -0
- data/lib/roglew/extensions/WGL_EXT_create_context_es_profile.rb +5 -0
- data/lib/roglew/extensions/WGL_EXT_depth_float.rb +5 -0
- data/lib/roglew/extensions/WGL_EXT_display_color_table.rb +10 -0
- data/lib/roglew/extensions/WGL_EXT_extensions_string.rb +7 -0
- data/lib/roglew/extensions/WGL_EXT_framebuffer_sRGB.rb +5 -0
- data/lib/roglew/extensions/WGL_EXT_make_current_read.rb +14 -0
- data/lib/roglew/extensions/WGL_EXT_multisample.rb +6 -0
- data/lib/roglew/extensions/WGL_EXT_pbuffer.rb +25 -0
- data/lib/roglew/extensions/WGL_EXT_pixel_format.rb +59 -0
- data/lib/roglew/extensions/WGL_EXT_pixel_format_packed_float.rb +5 -0
- data/lib/roglew/extensions/WGL_EXT_swap_control.rb +8 -0
- data/lib/roglew/extensions/WGL_I3D_digital_video_control.rb +17 -0
- data/lib/roglew/extensions/WGL_I3D_gamma.rb +17 -0
- data/lib/roglew/extensions/WGL_I3D_genlock.rb +32 -0
- data/lib/roglew/extensions/WGL_I3D_image_buffer.rb +18 -0
- data/lib/roglew/extensions/WGL_I3D_swap_frame_lock.rb +10 -0
- data/lib/roglew/extensions/WGL_I3D_swap_frame_usage.rb +10 -0
- data/lib/roglew/extensions/WGL_NV_DX_interop.rb +22 -0
- data/lib/roglew/extensions/WGL_NV_copy_image.rb +7 -0
- data/lib/roglew/extensions/WGL_NV_float_buffer.rb +13 -0
- data/lib/roglew/extensions/WGL_NV_gpu_affinity.rb +26 -0
- data/lib/roglew/extensions/WGL_NV_multisample_coverage.rb +6 -0
- data/lib/roglew/extensions/WGL_NV_present_video.rb +15 -0
- data/lib/roglew/extensions/WGL_NV_render_depth_texture.rb +10 -0
- data/lib/roglew/extensions/WGL_NV_render_texture_rectangle.rb +7 -0
- data/lib/roglew/extensions/WGL_NV_swap_group.rb +12 -0
- data/lib/roglew/extensions/WGL_NV_vertex_array_range.rb +8 -0
- data/lib/roglew/extensions/WGL_NV_video_capture.rb +18 -0
- data/lib/roglew/extensions/WGL_NV_video_output.rb +30 -0
- data/lib/roglew/extensions/WGL_OML_sync_control.rb +12 -0
- data/lib/roglew/gl_extension.rb +21 -0
- data/lib/roglew/gl_object.rb +32 -0
- data/lib/roglew/native/gdi32.rb +242 -0
- data/lib/roglew/native/gl.rb +906 -0
- data/lib/roglew/native/glx.rb +8 -0
- data/lib/roglew/native/kernel32.rb +9 -0
- data/lib/roglew/native/native_object.rb +11 -0
- data/lib/roglew/native/wgl.rb +138 -0
- data/lib/roglew/native/win32ffi.rb +27 -0
- data/lib/roglew/render_context.rb +229 -0
- data/lib/roglew/render_handle.rb +64 -0
- data/lib/roglew/texture2d.rb +23 -0
- data/lib/roglew/texture_context.rb +46 -0
- data/lib/roglew.rb +32 -0
- metadata +531 -0
@@ -0,0 +1,154 @@
|
|
1
|
+
module Roglew
|
2
|
+
module GL
|
3
|
+
ACTIVE_TEXTURE ||= 0x84E0
|
4
|
+
ADD_SIGNED ||= 0x8574
|
5
|
+
CLAMP_TO_BORDER ||= 0x812D
|
6
|
+
CLIENT_ACTIVE_TEXTURE ||= 0x84E1
|
7
|
+
COMBINE ||= 0x8570
|
8
|
+
COMBINE_ALPHA ||= 0x8572
|
9
|
+
COMBINE_RGB ||= 0x8571
|
10
|
+
COMPRESSED_ALPHA ||= 0x84E9
|
11
|
+
COMPRESSED_INTENSITY ||= 0x84EC
|
12
|
+
COMPRESSED_LUMINANCE ||= 0x84EA
|
13
|
+
COMPRESSED_LUMINANCE_ALPHA ||= 0x84EB
|
14
|
+
COMPRESSED_RGB ||= 0x84ED
|
15
|
+
COMPRESSED_RGBA ||= 0x84EE
|
16
|
+
COMPRESSED_TEXTURE_FORMATS ||= 0x86A3
|
17
|
+
CONSTANT ||= 0x8576
|
18
|
+
DOT3_RGB ||= 0x86AE
|
19
|
+
DOT3_RGBA ||= 0x86AF
|
20
|
+
INTERPOLATE ||= 0x8575
|
21
|
+
MAX_CUBE_MAP_TEXTURE_SIZE ||= 0x851C
|
22
|
+
MAX_TEXTURE_UNITS ||= 0x84E2
|
23
|
+
MULTISAMPLE ||= 0x809D
|
24
|
+
MULTISAMPLE_BIT ||= 0x20000000
|
25
|
+
NORMAL_MAP ||= 0x8511
|
26
|
+
NUM_COMPRESSED_TEXTURE_FORMATS ||= 0x86A2
|
27
|
+
OPERAND0_ALPHA ||= 0x8598
|
28
|
+
OPERAND0_RGB ||= 0x8590
|
29
|
+
OPERAND1_ALPHA ||= 0x8599
|
30
|
+
OPERAND1_RGB ||= 0x8591
|
31
|
+
OPERAND2_ALPHA ||= 0x859A
|
32
|
+
OPERAND2_RGB ||= 0x8592
|
33
|
+
PREVIOUS ||= 0x8578
|
34
|
+
PRIMARY_COLOR ||= 0x8577
|
35
|
+
PROXY_TEXTURE_CUBE_MAP ||= 0x851B
|
36
|
+
REFLECTION_MAP ||= 0x8512
|
37
|
+
RGB_SCALE ||= 0x8573
|
38
|
+
SAMPLE_ALPHA_TO_COVERAGE ||= 0x809E
|
39
|
+
SAMPLE_ALPHA_TO_ONE ||= 0x809F
|
40
|
+
SAMPLE_BUFFERS ||= 0x80A8
|
41
|
+
SAMPLE_COVERAGE ||= 0x80A0
|
42
|
+
SAMPLE_COVERAGE_INVERT ||= 0x80AB
|
43
|
+
SAMPLE_COVERAGE_VALUE ||= 0x80AA
|
44
|
+
SAMPLES ||= 0x80A9
|
45
|
+
SOURCE0_ALPHA ||= 0x8588
|
46
|
+
SOURCE0_RGB ||= 0x8580
|
47
|
+
SOURCE1_ALPHA ||= 0x8589
|
48
|
+
SOURCE1_RGB ||= 0x8581
|
49
|
+
SOURCE2_ALPHA ||= 0x858A
|
50
|
+
SOURCE2_RGB ||= 0x8582
|
51
|
+
SUBTRACT ||= 0x84E7
|
52
|
+
TEXTURE_BINDING_CUBE_MAP ||= 0x8514
|
53
|
+
TEXTURE_COMPRESSED ||= 0x86A1
|
54
|
+
TEXTURE_COMPRESSED_IMAGE_SIZE ||= 0x86A0
|
55
|
+
TEXTURE_COMPRESSION_HINT ||= 0x84EF
|
56
|
+
TEXTURE_CUBE_MAP ||= 0x8513
|
57
|
+
TEXTURE_CUBE_MAP_NEGATIVE_X ||= 0x8516
|
58
|
+
TEXTURE_CUBE_MAP_NEGATIVE_Y ||= 0x8518
|
59
|
+
TEXTURE_CUBE_MAP_NEGATIVE_Z ||= 0x851A
|
60
|
+
TEXTURE_CUBE_MAP_POSITIVE_X ||= 0x8515
|
61
|
+
TEXTURE_CUBE_MAP_POSITIVE_Y ||= 0x8517
|
62
|
+
TEXTURE_CUBE_MAP_POSITIVE_Z ||= 0x8519
|
63
|
+
TEXTURE0 ||= 0x84C0
|
64
|
+
TEXTURE1 ||= 0x84C1
|
65
|
+
TEXTURE10 ||= 0x84CA
|
66
|
+
TEXTURE11 ||= 0x84CB
|
67
|
+
TEXTURE12 ||= 0x84CC
|
68
|
+
TEXTURE13 ||= 0x84CD
|
69
|
+
TEXTURE14 ||= 0x84CE
|
70
|
+
TEXTURE15 ||= 0x84CF
|
71
|
+
TEXTURE16 ||= 0x84D0
|
72
|
+
TEXTURE17 ||= 0x84D1
|
73
|
+
TEXTURE18 ||= 0x84D2
|
74
|
+
TEXTURE19 ||= 0x84D3
|
75
|
+
TEXTURE2 ||= 0x84C2
|
76
|
+
TEXTURE20 ||= 0x84D4
|
77
|
+
TEXTURE21 ||= 0x84D5
|
78
|
+
TEXTURE22 ||= 0x84D6
|
79
|
+
TEXTURE23 ||= 0x84D7
|
80
|
+
TEXTURE24 ||= 0x84D8
|
81
|
+
TEXTURE25 ||= 0x84D9
|
82
|
+
TEXTURE26 ||= 0x84DA
|
83
|
+
TEXTURE27 ||= 0x84DB
|
84
|
+
TEXTURE28 ||= 0x84DC
|
85
|
+
TEXTURE29 ||= 0x84DD
|
86
|
+
TEXTURE3 ||= 0x84C3
|
87
|
+
TEXTURE30 ||= 0x84DE
|
88
|
+
TEXTURE31 ||= 0x84DF
|
89
|
+
TEXTURE4 ||= 0x84C4
|
90
|
+
TEXTURE5 ||= 0x84C5
|
91
|
+
TEXTURE6 ||= 0x84C6
|
92
|
+
TEXTURE7 ||= 0x84C7
|
93
|
+
TEXTURE8 ||= 0x84C8
|
94
|
+
TEXTURE9 ||= 0x84C9
|
95
|
+
TRANSPOSE_COLOR_MATRIX ||= 0x84E6
|
96
|
+
TRANSPOSE_MODELVIEW_MATRIX ||= 0x84E3
|
97
|
+
TRANSPOSE_PROJECTION_MATRIX ||= 0x84E4
|
98
|
+
TRANSPOSE_TEXTURE_MATRIX ||= 0x84E5
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
module GL_VERSION_1_3
|
103
|
+
module RenderContext
|
104
|
+
include Roglew::GLExtension
|
105
|
+
|
106
|
+
functions [:glActiveTexture, [ :uint ], :void],
|
107
|
+
[:glClientActiveTexture, [ :uint ], :void],
|
108
|
+
[:glCompressedTexImage1D, [ :uint, :int, :uint, :int, :int, :int, :pointer ], :void],
|
109
|
+
[:glCompressedTexImage2D, [ :uint, :int, :uint, :int, :int, :int, :int, :pointer ], :void],
|
110
|
+
[:glCompressedTexImage3D, [ :uint, :int, :uint, :int, :int, :int, :int, :int, :pointer ], :void],
|
111
|
+
[:glCompressedTexSubImage1D, [ :uint, :int, :int, :int, :uint, :int, :pointer ], :void],
|
112
|
+
[:glCompressedTexSubImage2D, [ :uint, :int, :int, :int, :int, :int, :uint, :int, :pointer ], :void],
|
113
|
+
[:glCompressedTexSubImage3D, [ :uint, :int, :int, :int, :int, :int, :int, :int, :uint, :int, :pointer ], :void],
|
114
|
+
[:glGetCompressedTexImage, [ :uint, :int, :pointer ], :void],
|
115
|
+
[:glLoadTransposeMatrixd, [:double] * 16, :void],
|
116
|
+
[:glLoadTransposeMatrixf, [:float] * 16, :void],
|
117
|
+
[:glMultiTexCoord1d, [ :uint, :double ], :void],
|
118
|
+
[:glMultiTexCoord1dv, [ :uint, :pointer ], :void],
|
119
|
+
[:glMultiTexCoord1f, [ :uint, :float ], :void],
|
120
|
+
[:glMultiTexCoord1fv, [ :uint, :pointer ], :void],
|
121
|
+
[:glMultiTexCoord1i, [ :uint, :int ], :void],
|
122
|
+
[:glMultiTexCoord1iv, [ :uint, :pointer ], :void],
|
123
|
+
[:glMultiTexCoord1s, [ :uint, :short ], :void],
|
124
|
+
[:glMultiTexCoord1sv, [ :uint, :pointer ], :void],
|
125
|
+
[:glMultiTexCoord2d, [ :uint, :double, :double ], :void],
|
126
|
+
[:glMultiTexCoord2dv, [ :uint, :pointer ], :void],
|
127
|
+
[:glMultiTexCoord2f, [ :uint, :float, :float ], :void],
|
128
|
+
[:glMultiTexCoord2fv, [ :uint, :pointer ], :void],
|
129
|
+
[:glMultiTexCoord2i, [ :uint, :int, :int ], :void],
|
130
|
+
[:glMultiTexCoord2iv, [ :uint, :pointer ], :void],
|
131
|
+
[:glMultiTexCoord2s, [ :uint, :short, :short ], :void],
|
132
|
+
[:glMultiTexCoord2sv, [ :uint, :pointer ], :void],
|
133
|
+
[:glMultiTexCoord3d, [ :uint, :double, :double, :double ], :void],
|
134
|
+
[:glMultiTexCoord3dv, [ :uint, :pointer ], :void],
|
135
|
+
[:glMultiTexCoord3f, [ :uint, :float, :float, :float ], :void],
|
136
|
+
[:glMultiTexCoord3fv, [ :uint, :pointer ], :void],
|
137
|
+
[:glMultiTexCoord3i, [ :uint, :int, :int, :int ], :void],
|
138
|
+
[:glMultiTexCoord3iv, [ :uint, :pointer ], :void],
|
139
|
+
[:glMultiTexCoord3s, [ :uint, :short, :short, :short ], :void],
|
140
|
+
[:glMultiTexCoord3sv, [ :uint, :pointer ], :void],
|
141
|
+
[:glMultiTexCoord4d, [ :uint, :double, :double, :double, :double ], :void],
|
142
|
+
[:glMultiTexCoord4dv, [ :uint, :pointer ], :void],
|
143
|
+
[:glMultiTexCoord4f, [ :uint, :float, :float, :float, :float ], :void],
|
144
|
+
[:glMultiTexCoord4fv, [ :uint, :pointer ], :void],
|
145
|
+
[:glMultiTexCoord4i, [ :uint, :int, :int, :int, :int ], :void],
|
146
|
+
[:glMultiTexCoord4iv, [ :uint, :pointer ], :void],
|
147
|
+
[:glMultiTexCoord4s, [ :uint, :short, :short, :short, :short ], :void],
|
148
|
+
[:glMultiTexCoord4sv, [ :uint, :pointer ], :void],
|
149
|
+
[:glMultTransposeMatrixd, [:double] * 16, :void],
|
150
|
+
[:glMultTransposeMatrixf, [:float] * 16, :void],
|
151
|
+
[:glSampleCoverage, [ :float, :uchar ], :void]
|
152
|
+
|
153
|
+
end
|
154
|
+
end
|
@@ -0,0 +1,99 @@
|
|
1
|
+
module Roglew
|
2
|
+
module GL
|
3
|
+
BLEND_DST_ALPHA ||= 0x80CA
|
4
|
+
BLEND_DST_RGB ||= 0x80C8
|
5
|
+
BLEND_SRC_ALPHA ||= 0x80CB
|
6
|
+
BLEND_SRC_RGB ||= 0x80C9
|
7
|
+
COLOR_SUM ||= 0x8458
|
8
|
+
COMPARE_R_TO_TEXTURE ||= 0x884E
|
9
|
+
CURRENT_FOG_COORDINATE ||= 0x8453
|
10
|
+
CURRENT_SECONDARY_COLOR ||= 0x8459
|
11
|
+
DECR_WRAP ||= 0x8508
|
12
|
+
DEPTH_COMPONENT16 ||= 0x81A5
|
13
|
+
DEPTH_COMPONENT24 ||= 0x81A6
|
14
|
+
DEPTH_COMPONENT32 ||= 0x81A7
|
15
|
+
DEPTH_TEXTURE_MODE ||= 0x884B
|
16
|
+
FOG_COORDINATE ||= 0x8451
|
17
|
+
FOG_COORDINATE_ARRAY ||= 0x8457
|
18
|
+
FOG_COORDINATE_ARRAY_POINTER ||= 0x8456
|
19
|
+
FOG_COORDINATE_ARRAY_STRIDE ||= 0x8455
|
20
|
+
FOG_COORDINATE_ARRAY_TYPE ||= 0x8454
|
21
|
+
FOG_COORDINATE_SOURCE ||= 0x8450
|
22
|
+
FRAGMENT_DEPTH ||= 0x8452
|
23
|
+
GENERATE_MIPMAP ||= 0x8191
|
24
|
+
GENERATE_MIPMAP_HINT ||= 0x8192
|
25
|
+
INCR_WRAP ||= 0x8507
|
26
|
+
MAX_TEXTURE_LOD_BIAS ||= 0x84FD
|
27
|
+
MIRRORED_REPEAT ||= 0x8370
|
28
|
+
POINT_DISTANCE_ATTENUATION ||= 0x8129
|
29
|
+
POINT_FADE_THRESHOLD_SIZE ||= 0x8128
|
30
|
+
POINT_SIZE_MAX ||= 0x8127
|
31
|
+
POINT_SIZE_MIN ||= 0x8126
|
32
|
+
SECONDARY_COLOR_ARRAY ||= 0x845E
|
33
|
+
SECONDARY_COLOR_ARRAY_POINTER ||= 0x845D
|
34
|
+
SECONDARY_COLOR_ARRAY_SIZE ||= 0x845A
|
35
|
+
SECONDARY_COLOR_ARRAY_STRIDE ||= 0x845C
|
36
|
+
SECONDARY_COLOR_ARRAY_TYPE ||= 0x845B
|
37
|
+
TEXTURE_COMPARE_FUNC ||= 0x884D
|
38
|
+
TEXTURE_COMPARE_MODE ||= 0x884C
|
39
|
+
TEXTURE_DEPTH_SIZE ||= 0x884A
|
40
|
+
TEXTURE_FILTER_CONTROL ||= 0x8500
|
41
|
+
TEXTURE_LOD_BIAS ||= 0x8501
|
42
|
+
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
module GL_VERSION_1_4
|
47
|
+
module RenderContext
|
48
|
+
include Roglew::GLExtension
|
49
|
+
|
50
|
+
functions [:glBlendColor, [ :float, :float, :float, :float ], :void],
|
51
|
+
[:glBlendEquation, [ :uint ], :void],
|
52
|
+
[:glBlendFuncSeparate, [ :uint, :uint, :uint, :uint ], :void],
|
53
|
+
[:glFogCoordd, [ :double ], :void],
|
54
|
+
[:glFogCoorddv, [ :pointer ], :void],
|
55
|
+
[:glFogCoordf, [ :float ], :void],
|
56
|
+
[:glFogCoordfv, [ :pointer ], :void],
|
57
|
+
[:glFogCoordPointer, [ :uint, :int, :pointer ], :void],
|
58
|
+
[:glMultiDrawArrays, [ :uint, :pointer, :pointer, :int ], :void],
|
59
|
+
[:glMultiDrawElements, [ :uint, :pointer, :uint, :pointer, :int ], :void],
|
60
|
+
[:glPointParameterf, [ :uint, :float ], :void],
|
61
|
+
[:glPointParameterfv, [ :uint, :pointer ], :void],
|
62
|
+
[:glPointParameteri, [ :uint, :int ], :void],
|
63
|
+
[:glPointParameteriv, [ :uint, :pointer ], :void],
|
64
|
+
[:glSecondaryColor3b, [ :char, :char, :char ], :void],
|
65
|
+
[:glSecondaryColor3bv, [ :pointer ], :void],
|
66
|
+
[:glSecondaryColor3d, [ :double, :double, :double ], :void],
|
67
|
+
[:glSecondaryColor3dv, [ :pointer ], :void],
|
68
|
+
[:glSecondaryColor3f, [ :float, :float, :float ], :void],
|
69
|
+
[:glSecondaryColor3fv, [ :pointer ], :void],
|
70
|
+
[:glSecondaryColor3i, [ :int, :int, :int ], :void],
|
71
|
+
[:glSecondaryColor3iv, [ :pointer ], :void],
|
72
|
+
[:glSecondaryColor3s, [ :short, :short, :short ], :void],
|
73
|
+
[:glSecondaryColor3sv, [ :pointer ], :void],
|
74
|
+
[:glSecondaryColor3ub, [ :uchar, :uchar, :uchar ], :void],
|
75
|
+
[:glSecondaryColor3ubv, [ :pointer ], :void],
|
76
|
+
[:glSecondaryColor3ui, [ :uint, :uint, :uint ], :void],
|
77
|
+
[:glSecondaryColor3uiv, [ :pointer ], :void],
|
78
|
+
[:glSecondaryColor3us, [ :ushort, :ushort, :ushort ], :void],
|
79
|
+
[:glSecondaryColor3usv, [ :pointer ], :void],
|
80
|
+
[:glSecondaryColorPointer, [ :int, :uint, :int, :pointer ], :void],
|
81
|
+
[:glWindowPos2d, [ :double, :double ], :void],
|
82
|
+
[:glWindowPos2dv, [ :pointer ], :void],
|
83
|
+
[:glWindowPos2f, [ :float, :float ], :void],
|
84
|
+
[:glWindowPos2fv, [ :pointer ], :void],
|
85
|
+
[:glWindowPos2i, [ :int, :int ], :void],
|
86
|
+
[:glWindowPos2iv, [ :pointer ], :void],
|
87
|
+
[:glWindowPos2s, [ :short, :short ], :void],
|
88
|
+
[:glWindowPos2sv, [ :pointer ], :void],
|
89
|
+
[:glWindowPos3d, [ :double, :double, :double ], :void],
|
90
|
+
[:glWindowPos3dv, [ :pointer ], :void],
|
91
|
+
[:glWindowPos3f, [ :float, :float, :float ], :void],
|
92
|
+
[:glWindowPos3fv, [ :pointer ], :void],
|
93
|
+
[:glWindowPos3i, [ :int, :int, :int ], :void],
|
94
|
+
[:glWindowPos3iv, [ :pointer ], :void],
|
95
|
+
[:glWindowPos3s, [ :short, :short, :short ], :void],
|
96
|
+
[:glWindowPos3sv, [ :pointer ], :void]
|
97
|
+
|
98
|
+
end
|
99
|
+
end
|
@@ -0,0 +1,79 @@
|
|
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 RenderContext
|
57
|
+
include Roglew::GLExtension
|
58
|
+
|
59
|
+
functions [:glBeginQuery, [ :uint, :uint ], :void],
|
60
|
+
[:glBindBuffer, [ :uint, :uint ], :void],
|
61
|
+
[:glBufferData, [ :uint, :size_t, :pointer, :uint ], :void],
|
62
|
+
[:glBufferSubData, [ :uint, :size_t, :size_t, :pointer ], :void],
|
63
|
+
[:glDeleteBuffers, [ :int, :pointer ], :void],
|
64
|
+
[:glDeleteQueries, [ :int, :pointer ], :void],
|
65
|
+
[:glEndQuery, [ :uint ], :void],
|
66
|
+
[:glGenBuffers, [ :int, :pointer ], :void],
|
67
|
+
[:glGenQueries, [ :int, :pointer ], :void],
|
68
|
+
[:glGetBufferParameteriv, [ :uint, :uint, :pointer ], :void],
|
69
|
+
[:glGetBufferPointerv, [ :uint, :uint, :pointer ], :void],
|
70
|
+
[:glGetBufferSubData, [ :uint, :size_t, :size_t, :pointer ], :void],
|
71
|
+
[:glGetQueryiv, [ :uint, :uint, :pointer ], :void],
|
72
|
+
[:glGetQueryObjectiv, [ :uint, :uint, :pointer ], :void],
|
73
|
+
[:glGetQueryObjectuiv, [ :uint, :uint, :pointer ], :void],
|
74
|
+
[:glIsBuffer, [ :uint ], :uchar],
|
75
|
+
[:glIsQuery, [ :uint ], :uchar],
|
76
|
+
[:glMapBuffer, [ :uint, :uint ], :pointer],
|
77
|
+
[:glUnmapBuffer, [ :uint ], :uchar]
|
78
|
+
end
|
79
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
module Roglew
|
2
|
+
class Shader
|
3
|
+
attr_reader :context, :id, :type
|
4
|
+
|
5
|
+
def initialize(context, type, src = nil)
|
6
|
+
@context = context.bind { |c| @id = c.glCreateShader(type) }
|
7
|
+
@type = type
|
8
|
+
raise OpenGLError, "couldn't create a shader of type #{type.to_s(16)}" if @id == 0
|
9
|
+
|
10
|
+
if src
|
11
|
+
src = File.read(src) if File.file? src
|
12
|
+
@context.bind { |_| compile(src) }
|
13
|
+
end
|
14
|
+
|
15
|
+
self.class.finalize(self, @id, @context)
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.finalize(obj, id, ctx)
|
19
|
+
ObjectSpace.define_finalizer(obj, proc do
|
20
|
+
ctx.glDeleteShader(id)
|
21
|
+
end)
|
22
|
+
end
|
23
|
+
|
24
|
+
def compile(src)
|
25
|
+
@context.shader_sources(@id, src)
|
26
|
+
@context.glCompileShader(@id)
|
27
|
+
raise CompileError, info_log unless compile_status
|
28
|
+
end
|
29
|
+
|
30
|
+
def compile_status
|
31
|
+
@context.get_shader(@id, GL::COMPILE_STATUS)
|
32
|
+
end
|
33
|
+
|
34
|
+
def delete_status
|
35
|
+
@context.get_shader(@id, GL::DELETE_STATUS)
|
36
|
+
end
|
37
|
+
|
38
|
+
def info_log_length
|
39
|
+
@context.get_shader(@id, GL::INFO_LOG_LENGTH)
|
40
|
+
end
|
41
|
+
|
42
|
+
def info_log
|
43
|
+
@context.get_shader_info_log(@id)
|
44
|
+
end
|
45
|
+
|
46
|
+
def source_length
|
47
|
+
@context.get_shader(@id, GL::SHADER_SOURCE_LENGTH)
|
48
|
+
end
|
49
|
+
|
50
|
+
alias_method :compiled?, :compile_status
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Roglew
|
2
|
+
class ShaderProgram
|
3
|
+
attr_reader :context,
|
4
|
+
:id,
|
5
|
+
:shaders
|
6
|
+
|
7
|
+
def initialize(context)
|
8
|
+
@context = context.bind { |c| @id = c.glCreateProgram() }
|
9
|
+
end
|
10
|
+
|
11
|
+
def attach(*shaders)
|
12
|
+
@shaders = shaders unless shaders.length == 0
|
13
|
+
@shaders.each { |shader| @context.glAttachShader(@id, shader.id) }
|
14
|
+
nil
|
15
|
+
end
|
16
|
+
|
17
|
+
def link_program
|
18
|
+
@context.glLinkProgram(@id)
|
19
|
+
raise CompileError, info_log unless link_status
|
20
|
+
end
|
21
|
+
|
22
|
+
def link_status
|
23
|
+
@context.get_program(@id, GL::LINK_STATUS)
|
24
|
+
end
|
25
|
+
|
26
|
+
def use_program
|
27
|
+
@context.glUseProgram(@id)
|
28
|
+
end
|
29
|
+
|
30
|
+
alias_method :link, :link_program
|
31
|
+
alias_method :use, :use_program
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,251 @@
|
|
1
|
+
module Roglew
|
2
|
+
module GL
|
3
|
+
ACTIVE_ATTRIBUTE_MAX_LENGTH ||= 0x8B8A
|
4
|
+
ACTIVE_ATTRIBUTES ||= 0x8B89
|
5
|
+
ACTIVE_UNIFORM_MAX_LENGTH ||= 0x8B87
|
6
|
+
ACTIVE_UNIFORMS ||= 0x8B86
|
7
|
+
ATTACHED_SHADERS ||= 0x8B85
|
8
|
+
BLEND_EQUATION_ALPHA ||= 0x883D
|
9
|
+
BLEND_EQUATION ||= 0x8009
|
10
|
+
BLEND_EQUATION_RGB ||= BLEND_EQUATION
|
11
|
+
BOOL ||= 0x8B56
|
12
|
+
BOOL_VEC2 ||= 0x8B57
|
13
|
+
BOOL_VEC3 ||= 0x8B58
|
14
|
+
BOOL_VEC4 ||= 0x8B59
|
15
|
+
COMPILE_STATUS ||= 0x8B81
|
16
|
+
COORD_REPLACE ||= 0x8862
|
17
|
+
CURRENT_PROGRAM ||= 0x8B8D
|
18
|
+
CURRENT_VERTEX_ATTRIB ||= 0x8626
|
19
|
+
DELETE_STATUS ||= 0x8B80
|
20
|
+
DRAW_BUFFER0 ||= 0x8825
|
21
|
+
DRAW_BUFFER1 ||= 0x8826
|
22
|
+
DRAW_BUFFER10 ||= 0x882F
|
23
|
+
DRAW_BUFFER11 ||= 0x8830
|
24
|
+
DRAW_BUFFER12 ||= 0x8831
|
25
|
+
DRAW_BUFFER13 ||= 0x8832
|
26
|
+
DRAW_BUFFER14 ||= 0x8833
|
27
|
+
DRAW_BUFFER15 ||= 0x8834
|
28
|
+
DRAW_BUFFER2 ||= 0x8827
|
29
|
+
DRAW_BUFFER3 ||= 0x8828
|
30
|
+
DRAW_BUFFER4 ||= 0x8829
|
31
|
+
DRAW_BUFFER5 ||= 0x882A
|
32
|
+
DRAW_BUFFER6 ||= 0x882B
|
33
|
+
DRAW_BUFFER7 ||= 0x882C
|
34
|
+
DRAW_BUFFER8 ||= 0x882D
|
35
|
+
DRAW_BUFFER9 ||= 0x882E
|
36
|
+
FLOAT_MAT2 ||= 0x8B5A
|
37
|
+
FLOAT_MAT3 ||= 0x8B5B
|
38
|
+
FLOAT_MAT4 ||= 0x8B5C
|
39
|
+
FLOAT_VEC2 ||= 0x8B50
|
40
|
+
FLOAT_VEC3 ||= 0x8B51
|
41
|
+
FLOAT_VEC4 ||= 0x8B52
|
42
|
+
FRAGMENT_SHADER ||= 0x8B30
|
43
|
+
FRAGMENT_SHADER_DERIVATIVE_HINT ||= 0x8B8B
|
44
|
+
INFO_LOG_LENGTH ||= 0x8B84
|
45
|
+
INT_VEC2 ||= 0x8B53
|
46
|
+
INT_VEC3 ||= 0x8B54
|
47
|
+
INT_VEC4 ||= 0x8B55
|
48
|
+
LINK_STATUS ||= 0x8B82
|
49
|
+
LOWER_LEFT ||= 0x8CA1
|
50
|
+
MAX_COMBINED_TEXTURE_IMAGE_UNITS ||= 0x8B4D
|
51
|
+
MAX_DRAW_BUFFERS ||= 0x8824
|
52
|
+
MAX_FRAGMENT_UNIFORM_COMPONENTS ||= 0x8B49
|
53
|
+
MAX_TEXTURE_COORDS ||= 0x8871
|
54
|
+
MAX_TEXTURE_IMAGE_UNITS ||= 0x8872
|
55
|
+
MAX_VARYING_FLOATS ||= 0x8B4B
|
56
|
+
MAX_VERTEX_ATTRIBS ||= 0x8869
|
57
|
+
MAX_VERTEX_TEXTURE_IMAGE_UNITS ||= 0x8B4C
|
58
|
+
MAX_VERTEX_UNIFORM_COMPONENTS ||= 0x8B4A
|
59
|
+
POINT_SPRITE ||= 0x8861
|
60
|
+
POINT_SPRITE_COORD_ORIGIN ||= 0x8CA0
|
61
|
+
SAMPLER_1D ||= 0x8B5D
|
62
|
+
SAMPLER_1D_SHADOW ||= 0x8B61
|
63
|
+
SAMPLER_2D ||= 0x8B5E
|
64
|
+
SAMPLER_2D_SHADOW ||= 0x8B62
|
65
|
+
SAMPLER_3D ||= 0x8B5F
|
66
|
+
SAMPLER_CUBE ||= 0x8B60
|
67
|
+
SHADER_SOURCE_LENGTH ||= 0x8B88
|
68
|
+
SHADER_TYPE ||= 0x8B4F
|
69
|
+
SHADING_LANGUAGE_VERSION ||= 0x8B8C
|
70
|
+
STENCIL_BACK_FAIL ||= 0x8801
|
71
|
+
STENCIL_BACK_FUNC ||= 0x8800
|
72
|
+
STENCIL_BACK_PASS_DEPTH_FAIL ||= 0x8802
|
73
|
+
STENCIL_BACK_PASS_DEPTH_PASS ||= 0x8803
|
74
|
+
STENCIL_BACK_REF ||= 0x8CA3
|
75
|
+
STENCIL_BACK_VALUE_MASK ||= 0x8CA4
|
76
|
+
STENCIL_BACK_WRITEMASK ||= 0x8CA5
|
77
|
+
UPPER_LEFT ||= 0x8CA2
|
78
|
+
VALIDATE_STATUS ||= 0x8B83
|
79
|
+
VERTEX_ATTRIB_ARRAY_ENABLED ||= 0x8622
|
80
|
+
VERTEX_ATTRIB_ARRAY_NORMALIZED ||= 0x886A
|
81
|
+
VERTEX_ATTRIB_ARRAY_POINTER ||= 0x8645
|
82
|
+
VERTEX_ATTRIB_ARRAY_SIZE ||= 0x8623
|
83
|
+
VERTEX_ATTRIB_ARRAY_STRIDE ||= 0x8624
|
84
|
+
VERTEX_ATTRIB_ARRAY_TYPE ||= 0x8625
|
85
|
+
VERTEX_PROGRAM_POINT_SIZE ||= 0x8642
|
86
|
+
VERTEX_PROGRAM_TWO_SIDE ||= 0x8643
|
87
|
+
VERTEX_SHADER ||= 0x8B31
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
module GL_VERSION_2_0
|
92
|
+
module RenderContext
|
93
|
+
include Roglew::GLExtension
|
94
|
+
|
95
|
+
def create_program(shaders = nil)
|
96
|
+
program = Roglew::ShaderProgram.new(self)
|
97
|
+
return program unless shaders
|
98
|
+
shaders = case shaders
|
99
|
+
when Hash
|
100
|
+
shaders.map { |type, source| create_shader(type, source) }
|
101
|
+
when Array
|
102
|
+
shaders
|
103
|
+
else
|
104
|
+
raise ArgumentError, "It must be Hash or Array. Given: #{shaders.class}"
|
105
|
+
end
|
106
|
+
bind { |_|
|
107
|
+
program.attach(*shaders)
|
108
|
+
program.link
|
109
|
+
}
|
110
|
+
program
|
111
|
+
end
|
112
|
+
|
113
|
+
def create_shader(*args)
|
114
|
+
Roglew::Shader.new(self, *args)
|
115
|
+
end
|
116
|
+
|
117
|
+
functions [:glAttachShader, [:uint, :uint], :void],
|
118
|
+
[:glBindAttribLocation, [:uint, :uint, :string], :void],
|
119
|
+
[:glBlendEquationSeparate, [:uint, :uint], :void],
|
120
|
+
[:glCompileShader, [:uint], :void],
|
121
|
+
[:glCreateProgram, [], :uint],
|
122
|
+
[:glCreateShader, [:uint], :uint],
|
123
|
+
[:glDeleteProgram, [:uint], :void],
|
124
|
+
[:glDeleteShader, [:uint], :void],
|
125
|
+
[:glDetachShader, [:uint, :uint], :void],
|
126
|
+
[:glDisableVertexAttribArray, [:uint], :void],
|
127
|
+
[:glDrawBuffers, [:int, :pointer], :void],
|
128
|
+
[:glEnableVertexAttribArray, [:uint], :void],
|
129
|
+
[:glGetActiveAttrib, [:uint, :uint, :int, :pointer, :pointer, :pointer, :pointer], :void],
|
130
|
+
[:glGetActiveUniform, [:uint, :uint, :int, :pointer, :pointer, :pointer, :pointer], :void],
|
131
|
+
[:glGetAttachedShaders, [:uint, :int, :pointer, :pointer], :void],
|
132
|
+
[:glGetAttribLocation, [:uint, :string], :int],
|
133
|
+
[:glGetProgramInfoLog, [:uint, :int, :pointer, :pointer], :void],
|
134
|
+
[:glGetProgramiv, [:uint, :uint, :pointer], :void],
|
135
|
+
[:glGetShaderInfoLog, [:uint, :int, :pointer, :pointer], :void],
|
136
|
+
[:glGetShaderiv, [:uint, :uint, :pointer], :void],
|
137
|
+
[:glGetShaderSource, [:uint, :int, :pointer, :pointer], :void],
|
138
|
+
[:glGetUniformfv, [:uint, :int, :pointer], :void],
|
139
|
+
[:glGetUniformiv, [:uint, :int, :pointer], :void],
|
140
|
+
[:glGetUniformLocation, [:uint, :string], :int],
|
141
|
+
[:glGetVertexAttribdv, [:uint, :uint, :pointer], :void],
|
142
|
+
[:glGetVertexAttribfv, [:uint, :uint, :pointer], :void],
|
143
|
+
[:glGetVertexAttribiv, [:uint, :uint, :pointer], :void],
|
144
|
+
[:glGetVertexAttribPointerv, [:uint, :uint, :pointer], :void],
|
145
|
+
[:glIsProgram, [:uint], :bool],
|
146
|
+
[:glIsShader, [:uint], :bool],
|
147
|
+
[:glLinkProgram, [:uint], :void],
|
148
|
+
[:glShaderSource, [:uint, :int, :pointer, :pointer], :void],
|
149
|
+
[:glStencilFuncSeparate, [:uint, :uint, :int, :uint], :void],
|
150
|
+
[:glStencilMaskSeparate, [:uint, :uint], :void],
|
151
|
+
[:glStencilOpSeparate, [:uint, :uint, :uint, :uint], :void],
|
152
|
+
[:glUniform1f, [:int, :float], :void],
|
153
|
+
[:glUniform1fv, [:int, :int, :pointer], :void],
|
154
|
+
[:glUniform1i, [:int, :int], :void],
|
155
|
+
[:glUniform1iv, [:int, :int, :pointer], :void],
|
156
|
+
[:glUniform2f, [:int, :float, :float], :void],
|
157
|
+
[:glUniform2fv, [:int, :int, :pointer], :void],
|
158
|
+
[:glUniform2i, [:int, :int, :int], :void],
|
159
|
+
[:glUniform2iv, [:int, :int, :pointer], :void],
|
160
|
+
[:glUniform3f, [:int, :float, :float, :float], :void],
|
161
|
+
[:glUniform3fv, [:int, :int, :pointer], :void],
|
162
|
+
[:glUniform3i, [:int, :int, :int, :int], :void],
|
163
|
+
[:glUniform3iv, [:int, :int, :pointer], :void],
|
164
|
+
[:glUniform4f, [:int, :float, :float, :float, :float], :void],
|
165
|
+
[:glUniform4fv, [:int, :int, :pointer], :void],
|
166
|
+
[:glUniform4i, [:int, :int, :int, :int, :int], :void],
|
167
|
+
[:glUniform4iv, [:int, :int, :pointer], :void],
|
168
|
+
[:glUniformMatrix2fv, [:int, :int, :bool, :pointer], :void],
|
169
|
+
[:glUniformMatrix3fv, [:int, :int, :bool, :pointer], :void],
|
170
|
+
[:glUniformMatrix4fv, [:int, :int, :bool, :pointer], :void],
|
171
|
+
[:glUseProgram, [:uint], :void],
|
172
|
+
[:glValidateProgram, [:uint], :void],
|
173
|
+
[:glVertexAttrib1d, [:uint, :double], :void],
|
174
|
+
[:glVertexAttrib1dv, [:uint, :pointer], :void],
|
175
|
+
[:glVertexAttrib1f, [:uint, :float], :void],
|
176
|
+
[:glVertexAttrib1fv, [:uint, :pointer], :void],
|
177
|
+
[:glVertexAttrib1s, [:uint, :short], :void],
|
178
|
+
[:glVertexAttrib1sv, [:uint, :pointer], :void],
|
179
|
+
[:glVertexAttrib2d, [:uint, :double, :double], :void],
|
180
|
+
[:glVertexAttrib2dv, [:uint, :pointer], :void],
|
181
|
+
[:glVertexAttrib2f, [:uint, :float, :float], :void],
|
182
|
+
[:glVertexAttrib2fv, [:uint, :pointer], :void],
|
183
|
+
[:glVertexAttrib2s, [:uint, :short, :short], :void],
|
184
|
+
[:glVertexAttrib2sv, [:uint, :pointer], :void],
|
185
|
+
[:glVertexAttrib3d, [:uint, :double, :double, :double], :void],
|
186
|
+
[:glVertexAttrib3dv, [:uint, :pointer], :void],
|
187
|
+
[:glVertexAttrib3f, [:uint, :float, :float, :float], :void],
|
188
|
+
[:glVertexAttrib3fv, [:uint, :pointer], :void],
|
189
|
+
[:glVertexAttrib3s, [:uint, :short, :short, :short], :void],
|
190
|
+
[:glVertexAttrib3sv, [:uint, :pointer], :void],
|
191
|
+
[:glVertexAttrib4bv, [:uint, :pointer], :void],
|
192
|
+
[:glVertexAttrib4d, [:uint, :double, :double, :double, :double], :void],
|
193
|
+
[:glVertexAttrib4dv, [:uint, :pointer], :void],
|
194
|
+
[:glVertexAttrib4f, [:uint, :float, :float, :float, :float], :void],
|
195
|
+
[:glVertexAttrib4fv, [:uint, :pointer], :void],
|
196
|
+
[:glVertexAttrib4iv, [:uint, :pointer], :void],
|
197
|
+
[:glVertexAttrib4Nbv, [:uint, :pointer], :void],
|
198
|
+
[:glVertexAttrib4Niv, [:uint, :pointer], :void],
|
199
|
+
[:glVertexAttrib4Nsv, [:uint, :pointer], :void],
|
200
|
+
[:glVertexAttrib4Nub, [:uint, :uchar, :uchar, :uchar, :uchar], :void],
|
201
|
+
[:glVertexAttrib4Nubv, [:uint, :pointer], :void],
|
202
|
+
[:glVertexAttrib4Nuiv, [:uint, :pointer], :void],
|
203
|
+
[:glVertexAttrib4Nusv, [:uint, :pointer], :void],
|
204
|
+
[:glVertexAttrib4s, [:uint, :short, :short, :short, :short], :void],
|
205
|
+
[:glVertexAttrib4sv, [:uint, :pointer], :void],
|
206
|
+
[:glVertexAttrib4ubv, [:uint, :pointer], :void],
|
207
|
+
[:glVertexAttrib4uiv, [:uint, :pointer], :void],
|
208
|
+
[:glVertexAttrib4usv, [:uint, :pointer], :void],
|
209
|
+
[:glVertexAttribPointer, [:uint, :int, :uint, :bool, :int, :pointer], :void]
|
210
|
+
|
211
|
+
def get_program(program, pname)
|
212
|
+
p = FFI::MemoryPointer.new(:int)
|
213
|
+
glGetProgramiv(program, pname, p)
|
214
|
+
result = p.read_int
|
215
|
+
[Roglew::GL::DELETE_STATUS, Roglew::GL::COMPILE_STATUS].include?(pname) ? result == Roglew::GL::TRUE : result
|
216
|
+
end
|
217
|
+
|
218
|
+
def get_program_info_log(program)
|
219
|
+
length = get_program(program, Roglew::GL::INFO_LOG_LENGTH)
|
220
|
+
p = FFI::MemoryPointer.new(:char, length)
|
221
|
+
glGetProgramInfoLog(program, length, nil, p)
|
222
|
+
p.read_string
|
223
|
+
end
|
224
|
+
|
225
|
+
def get_shader(shader, pname)
|
226
|
+
p = FFI::MemoryPointer.new(:int)
|
227
|
+
glGetShaderiv(shader, pname, p)
|
228
|
+
result = p.read_int
|
229
|
+
[Roglew::GL::DELETE_STATUS, Roglew::GL::COMPILE_STATUS].include?(pname) ? result == Roglew::GL::TRUE : result
|
230
|
+
end
|
231
|
+
|
232
|
+
def get_shader_info_log(shader)
|
233
|
+
length = get_shader(shader, Roglew::GL::INFO_LOG_LENGTH)
|
234
|
+
p = FFI::MemoryPointer.new(:char, length)
|
235
|
+
glGetShaderInfoLog(shader, length, nil, p)
|
236
|
+
p.read_string
|
237
|
+
end
|
238
|
+
|
239
|
+
def shader_sources(shader, *srcs)
|
240
|
+
ps = FFI::MemoryPointer.new(:string, srcs.length)
|
241
|
+
ps.write_array_of_pointer(srcs.map { |src| FFI::MemoryPointer.from_string(src) })
|
242
|
+
pl = FFI::MemoryPointer.new(:int, srcs.length)
|
243
|
+
pl.write_array_of_int(srcs.map { |src| src.length })
|
244
|
+
glShaderSource(shader, srcs.length, ps, pl)
|
245
|
+
end
|
246
|
+
end
|
247
|
+
end
|
248
|
+
|
249
|
+
%w'shader
|
250
|
+
shader_program
|
251
|
+
'.each { |f| require "#{File.expand_path(__FILE__)[0..-4]}/#{f}" }
|