sfml3.rb

Module: SFML::Vulkan

Defined in:
ext/window/vulkan.c,
ext/window/vulkan.c

Overview

Vulkan support queries. Vulkan handles (instances, surfaces, allocators) cross this binding as plain Integers; see Window#create_vulkan_surface.

Class Method Summary collapse

Class Method Details

.available?(require_graphics = false) ⇒ Boolean

Returns true if Vulkan is available, optionally requiring graphics support.

Returns:

  • (Boolean)

Returns:

  • (Boolean) —

    whether Vulkan is available, optionally also requiring graphics-capable support when require_graphics is true



16
17
18
19
20
21
22
23
24
25
26
27
# File 'ext/window/vulkan.c', line 16

static VALUE Vulkan_is_available(int argc, VALUE* argv, VALUE module) {
    VALUE rb_require_graphics;
    bool require_graphics = false;

    rb_scan_args(argc, argv, "01", &rb_require_graphics);

    if (!NIL_P(rb_require_graphics)) {
        require_graphics = RTEST(rb_require_graphics);
    }

    return BOOL2RB(sfVulkan_isAvailable(require_graphics));
}

.function(name) ⇒ Integer

Returns the address of the Vulkan function or extension name as an Integer, or 0 when it is not available.

Returns:

  • (Integer)

Returns:

  • (Integer) —

    the address of the Vulkan function/extension name, as a raw pointer value, or 0 if it is not available



38
39
40
# File 'ext/window/vulkan.c', line 38

static VALUE Vulkan_get_function(VALUE module, VALUE rb_name) {
    return ULL2NUM((unsigned long long)(uintptr_t)sfVulkan_getFunction(StringValueCStr(rb_name)));
}

.graphics_required_instance_extensions ⇒ Array<String>

Returns the Vulkan instance extensions needed to create a window surface.

Returns:

  • (Array<String>)

Returns:

  • (Array<String>) —

    the Vulkan instance extensions required to create a Vulkan surface for a Window



49
50
51
52
53
54
55
56
57
58
59
# File 'ext/window/vulkan.c', line 49

static VALUE Vulkan_get_graphics_required_instance_extensions(VALUE module) {
    size_t count = 0;
    const char* const* extensions = sfVulkan_getGraphicsRequiredInstanceExtensions(&count);
    VALUE array = rb_ary_new_capa((long)count);

    for (size_t i = 0; i < count; i++) {
        rb_ary_push(array, rb_str_new_cstr(extensions[i]));
    }

    return array;
}