generator #
Internal module used for generating the Godot V bindings.
Setup
Setup library
- Clone/download this repo somewhere:
git clone https://github.com/rosshadden/gdext-v.git
- Point a symlink to it from V's module directory (or make this where you clone it):
ln -s /absolute/path/to/gdext-v ~/.vmodules/gd
- Dump the extension API from Godot into
./data/
:
cd data
godot --headless --dump-extension-api
cd ..
- Run the generator:
./bin/gen.vsh
fn Generator.new #
fn Generator.new(api_dump string) Generator
struct API #
struct API {
pub mut:
header APIVersion @[required]
builtin_class_sizes []struct {
build_configuration string @[required]
sizes []struct {
name string @[required]
size int @[required]
} @[required]
} @[required]
builtin_class_member_offsets []struct {
build_configuration string @[required]
classes []struct {
name string @[required]
members []struct {
member string @[required]
offset int @[required]
meta string @[required]
} @[required]
} @[required]
} @[required]
global_constants []struct {}
global_enums []struct {
name string @[required]
is_bitfield bool @[required]
values []struct {
name string @[required]
value i64 @[required]
description string
} @[required]
} @[required]
utility_functions []struct {
name string @[required]
return_type string
category string @[required]
is_vararg bool @[required]
hash u64 @[required]
arguments []struct {
name string @[required]
type string @[required]
}
description string
} @[required]
builtin_classes []APIBuiltinClass @[required]
classes []APIClass @[required]
singletons []struct {
name string @[required]
type string @[required]
} @[required]
native_structures []struct {
name string @[required]
format string @[required]
} @[required]
}
struct APIVersion #
struct APIVersion {
version_major int @[required]
version_minor int @[required]
version_patch int @[required]
version_status string @[required]
version_build string @[required]
version_full_name string @[required]
precision string
}
struct Generator #
struct Generator {
api API @[required]
mut:
class_names []string
builtin_names []string
enum_defaults map[string]string = map[string]string{}
}
fn (Generator) run #
fn (mut g Generator) run() !