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
-
.available?(require_graphics = false) ⇒ Boolean
Returns
trueif Vulkan is available, optionally requiring graphics support. -
.function(name) ⇒ Integer
Returns the address of the Vulkan function or extension
nameas an Integer, or 0 when it is not available. -
.graphics_required_instance_extensions ⇒ Array<String>
Returns the Vulkan instance extensions needed to create a window surface.
Class Method Details
.available?(require_graphics = false) ⇒ Boolean
Returns true if Vulkan is available, optionally requiring graphics support.
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.
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.
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;
}
|