diff --git a/.gitattributes b/.gitattributes index a059fc353..212566614 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1 @@ -*.diff text=auto \ No newline at end of file +* text=auto \ No newline at end of file diff --git a/engine/lib/luajit-ffi-gen/README.md b/engine/lib/luajit-ffi-gen/README.md index e857e2033..73b6ed542 100644 --- a/engine/lib/luajit-ffi-gen/README.md +++ b/engine/lib/luajit-ffi-gen/README.md @@ -38,28 +38,42 @@ pub extern "C" fn MyStruct_FUNC3(this: &MyStruct) -> u32 { and **My_Struct.lua**: ```lua -- My_Struct ------------------------------------------------------------------- -local ffi = require('ffi') -local libphx = require('ffi.libphx').lib -local My_Struct - -do -- C Definitions - ffi.cdef [[ - void My_Struct_SetU32 (My_Struct*, uint32 val); - uint32 My_Struct_FUNC3 (My_Struct*); - ]] -end +local Loader = {} + +function Loader.declareType() + ffi.cdef [[ + typedef struct My_Struct {} My_Struct; + ]] -do -- Global Symbol Table - My_Struct = { - SetU32 = libphx.My_Struct_SetU32, - FUNC3 = libphx.My_Struct_FUNC3, - } + return 1, 'My_Struct' +end - if onDef_My_Struct then onDef_My_Struct(My_Struct, mt) end - My_Struct = setmetatable(My_Struct, mt) +function Loader.defineType() + local ffi = require('ffi') + local libphx = require('ffi.libphx').lib + local My_Struct + + do -- C Definitions + ffi.cdef [[ + void My_Struct_SetU32 (My_Struct*, uint32 val); + uint32 My_Struct_FUNC3 (My_Struct*); + ]] + end + + do -- Global Symbol Table + My_Struct = { + SetU32 = libphx.My_Struct_SetU32, + FUNC3 = libphx.My_Struct_FUNC3, + } + + if onDef_My_Struct then onDef_My_Struct(My_Struct, mt) end + My_Struct = setmetatable(My_Struct, mt) + end + + return My_Struct end -return My_Struct +return Loader ``` By default function names are converted to camel case but it is possible to set a user defined names. See **Attribute parameters** section below for details. @@ -77,11 +91,11 @@ In all other cases types are following these rules: - **&str**/**String** is converted to **\*const libc::c_char** - all other types are accepted either as **&** or **&mut** into the C wrapper, and are boxed (**Box\**) as outer -By default all generated Lua code created in the **phx/script/ffi** folder. User can manually set this folder via **LUAJIT_FFI_GEN_DIR** environment variable. Path should be either absolute or relative to the **luajit_ffi_gen** folder. +By default all generated Lua code created in the **phx/script/ffi_gen** folder. User can manually set this folder via **LUAJIT_FFI_GEN_DIR** environment variable. Path should be either absolute or relative to the **luajit_ffi_gen** folder. ## Usage with the enums -Attribute can be applied to the enum types (see ./tests/test_enum.rs for examples): +Attribute can be applied to the enum types (see **./tests/test_enum.rs** for examples): ```rust #[luajit_ffi_gen::luajit_ffi(name = "My_Enum1", start_index = 3, lua_ffi = false)] @@ -127,34 +141,46 @@ pub extern "C" fn MyEnum2_ToString(this: MyEnum2) -> *const libc::c_char { and **My_Enum1.lua**: ```lua -- My_Enum1 -------------------------------------------------------------------- -local ffi = require('ffi') -local libphx = require('ffi.libphx').lib -local My_Enum1 +local Loader = {} -do -- C Definitions +function Loader.declareType() ffi.cdef [[ typedef uint8 My_Enum1; - - My_Enum1 My_Enum1_Var1; - My_Enum1 My_Enum1_Var2; - - cstr My_Enum1_ToString(My_Enum1); ]] + + return 2, 'My_Enum1' end -do -- Global Symbol Table - My_Enum1 = { - Var1 = libphx.My_Enum1_Var1, - Var2 = libphx.My_Enum1_Var2, +function Loader.defineType() + local ffi = require('ffi') + local libphx = require('ffi.libphx').lib + local My_Enum1 - ToString = libphx.My_Enum1_ToString, - } + do -- C Definitions + ffi.cdef [[ + My_Enum1 My_Enum1_Var1; + My_Enum1 My_Enum1_Var2; + + cstr My_Enum1_ToString(My_Enum1); + ]] + end + + do -- Global Symbol Table + My_Enum1 = { + Var1 = libphx.My_Enum1_Var1, + Var2 = libphx.My_Enum1_Var2, - if onDef_My_Enum1 then onDef_My_Enum1(My_Enum1, mt) end - My_Enum1 = setmetatable(My_Enum1, mt) + ToString = libphx.My_Enum1_ToString, + } + + if onDef_My_Enum1 then onDef_My_Enum1(My_Enum1, mt) end + My_Enum1 = setmetatable(My_Enum1, mt) + end + + return My_Enum1 end -return My_Enum1 +return Loader ``` Under the hood `ToString` trait is implemented for the enum so it should derive `Debug` to support that. @@ -163,7 +189,7 @@ Only unit variants of the enum are supported. Also they should be all either wit For the variants without values starting index can be set, otherwise it starts from 0. See attribute parameters description below. -If `repr` parameter is set then `#[repr(...)]` attribute will be added with the specified type, otherwise type will be deducted from the maximal variant value: u8, u16, u32 or u64. +If `repr` parameter is set then `#[repr(...)]` attribute will be added with the specified type, otherwise type will be deducted from the variants count: `u8` or `u16`. ## Joining enum and impl blocks @@ -207,43 +233,55 @@ pub extern "C" fn MyEnum1_IsVar1(this: &MyEnum1) -> bool { and **MyEnum1.lua**: ```lua -- My_Enum1 -------------------------------------------------------------------- -local ffi = require('ffi') -local libphx = require('ffi.libphx').lib -local MyEnum1 +local Loader = {} -do -- C Definitions +function Loader.declareType() ffi.cdef [[ typedef uint8 MyEnum1; + ]] - MyEnum1 MyEnum1_Var1; - MyEnum1 MyEnum1_Var2; + return 2, 'MyEnum1' +end - cstr MyEnum1_ToString(MyEnum1); +function Loader.defineType() + local ffi = require('ffi') + local libphx = require('ffi.libphx').lib + local MyEnum1 - bool MyEnum1_IsVar1(MyEnum1); - ]] -end + do -- C Definitions + ffi.cdef [[ + MyEnum1 MyEnum1_Var1; + MyEnum1 MyEnum1_Var2; -do -- Global Symbol Table - MyEnum1 = { - Var1 = libphx.MyEnum1_Var1, - Var2 = libphx.MyEnum1_Var2, + cstr MyEnum1_ToString(MyEnum1); - ToString = libphx.MyEnum1_ToString, + bool MyEnum1_IsVar1(MyEnum1); + ]] + end - IsVar1 = libphx.MyEnum1_IsVar1, - } + do -- Global Symbol Table + MyEnum1 = { + Var1 = libphx.MyEnum1_Var1, + Var2 = libphx.MyEnum1_Var2, + + ToString = libphx.MyEnum1_ToString, + + IsVar1 = libphx.MyEnum1_IsVar1, + } + + if onDef_MyEnum1 then onDef_MyEnum1(MyEnum1, mt) end + MyEnum1 = setmetatable(MyEnum1, mt) + end - if onDef_MyEnum1 then onDef_MyEnum1(MyEnum1, mt) end - MyEnum1 = setmetatable(MyEnum1, mt) + return MyEnum1 end -return MyEnum1 +return Loader ``` -Take in account that `enum` block should be defined before `impl` otherwise `enum` data will be lost. Also `opaque` parameter doesn't have any influence in this case. +Take in account that `enum` block should be defined before `impl` otherwise `enum` data will be lost. Also `opaque` parameter doesn't have any effect in this case. -Under the hood proc macro on the `enum` block instead of generating ***.lua** script saves all necessary information in JSON file in **target/ffi** folder. Thi information is merged later by proc macro on `impl` block. +Under the hood proc macro on the `enum` block instead of generating ***.lua** script saves all necessary information in JSON file in **target/ffi** folder. This information is merged later by proc macro on `impl` block. ## Attribute parameters diff --git a/engine/lib/luajit-ffi-gen/src/enum_item/lua_ffi.rs b/engine/lib/luajit-ffi-gen/src/enum_item/lua_ffi.rs index 54c55f703..2c61c0727 100644 --- a/engine/lib/luajit-ffi-gen/src/enum_item/lua_ffi.rs +++ b/engine/lib/luajit-ffi-gen/src/enum_item/lua_ffi.rs @@ -1,9 +1,6 @@ -use std::io::Write; -use std::{env::VarError, fs::File, path::PathBuf}; - -use crate::ffi_data::FfiData; +use crate::ffi_generator::FfiGenerator; use crate::impl_item::TypeVariant; -use crate::{args::EnumAttrArgs, IDENT, LUAJIT_FFI_GEN_DIR, LUAJIT_FFI_GEN_DIR_ENV}; +use crate::{args::EnumAttrArgs, IDENT}; use super::EnumInfo; @@ -13,134 +10,43 @@ impl EnumInfo { let module_name = attr_args.name().unwrap_or(self.name.clone()); let enum_repr_ty = TypeVariant::from_str(repr_type).unwrap_or(TypeVariant::U32); let variant_names = self.variants.get_names(); - let c_definitions = gen_c_definitions(&module_name, &enum_repr_ty, &variant_names); - let global_symbol_table = gen_global_symbol_table(&module_name, &variant_names); - if attr_args.with_impl() { - let ffi_data = FfiData { - has_typedef: true, - c_definitions, - global_symbol_table, - }; + let mut ffi_gen = FfiGenerator::new(&module_name); + + ffi_gen.set_type_decl_struct(enum_repr_ty.as_ffi_string()); - ffi_data.save(&module_name); + gen_c_definitions(&mut ffi_gen, &module_name, &variant_names); + gen_global_symbol_table(&mut ffi_gen, &module_name, &variant_names); + + if attr_args.with_impl() { + ffi_gen.save(); return; } - let luajit_ffi_gen_dir = match std::env::var(LUAJIT_FFI_GEN_DIR_ENV) { - Ok(var) => { - if !var.is_empty() { - var - } else { - LUAJIT_FFI_GEN_DIR.into() - } - } - Err(VarError::NotPresent) => LUAJIT_FFI_GEN_DIR.into(), - Err(err) => { - println!("Cannot read '{LUAJIT_FFI_GEN_DIR_ENV}' environment variable. Use default value: {LUAJIT_FFI_GEN_DIR}. Error: {err}"); - - LUAJIT_FFI_GEN_DIR.into() - } - }; - - let cargo_manifest_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR")); - let luajit_ffi_gen_dir_path = cargo_manifest_dir.join(&luajit_ffi_gen_dir); - assert!( - luajit_ffi_gen_dir_path.exists(), - "FFI directory '{luajit_ffi_gen_dir_path:?}' doesn't exist" - ); - - let luajit_ffi_module_path = luajit_ffi_gen_dir_path.join(format!("{module_name}.lua")); - let mut file = File::create(&luajit_ffi_module_path).expect(&format!( - "Cannot create file: {luajit_ffi_module_path:?}\nCurrent folder: {:?}", - std::env::current_dir() - )); - - // Header - writeln!( - &mut file, - "-- {module_name} {:-<1$}", - "-", - 80 - 4 - module_name.len() - ) - .unwrap(); - writeln!(&mut file, "local ffi = require('ffi')").unwrap(); - writeln!(&mut file, "local libphx = require('ffi.libphx').lib").unwrap(); - writeln!(&mut file, "local {module_name}\n").unwrap(); - - // C Definitions - writeln!(&mut file, "do -- C Definitions").unwrap(); - writeln!(&mut file, "{IDENT}ffi.cdef [[").unwrap(); - - c_definitions - .iter() - .for_each(|def| writeln!(&mut file, "{def}").unwrap()); - - writeln!(&mut file, "{IDENT}]]").unwrap(); - writeln!(&mut file, "end\n").unwrap(); - - // Global Symbol Table - writeln!(&mut file, "do -- Global Symbol Table").unwrap(); - writeln!(&mut file, "{IDENT}{module_name} = {{").unwrap(); - - global_symbol_table - .iter() - .for_each(|def| writeln!(&mut file, "{def}").unwrap()); - - writeln!(&mut file, "{IDENT}}}\n").unwrap(); - - writeln!( - &mut file, - "{IDENT}if onDef_{module_name} then onDef_{module_name}({module_name}, mt) end" - ) - .unwrap(); - writeln!( - &mut file, - "{IDENT}{module_name} = setmetatable({module_name}, mt)" - ) - .unwrap(); - writeln!(&mut file, "end\n").unwrap(); - - writeln!(&mut file, "return {module_name}").unwrap(); + ffi_gen.generate(); } } -fn gen_c_definitions( - module_name: &str, - _enum_repr_ty: &TypeVariant, - variant_names: &[&str], -) -> Vec { - let mut res = vec![]; - - // TODO: refactor the way generated FFI is processed so typedef is registered before all other FFI parts to prevent a problem with unknown types - // res.push(format!( - // "{IDENT}{IDENT}typedef {} {module_name};\n", - // enum_repr_ty.as_ffi_string() - // )); - +fn gen_c_definitions(ffi_gen: &mut FfiGenerator, module_name: &str, variant_names: &[&str]) { let max_ret_len = std::cmp::max("cstr".len(), module_name.len()); variant_names.iter().for_each(|v| { - res.push(format!( - "{IDENT}{IDENT}{module_name:<0$} {module_name}_{v};", + ffi_gen.add_c_definition(format!( + "{IDENT}{IDENT}{IDENT}{module_name:<0$} {module_name}_{v};", max_ret_len )); }); - res.push("".into()); + ffi_gen.add_c_definition(""); - res.push(format!( - "{IDENT}{IDENT}{0:<1$} {module_name}_ToString({module_name});", + ffi_gen.add_c_definition(format!( + "{IDENT}{IDENT}{IDENT}{0:<1$} {module_name}_ToString({module_name});", "cstr", max_ret_len )); - - res } -fn gen_global_symbol_table(module_name: &str, variant_names: &[&str]) -> Vec { - let mut res = vec![]; - +fn gen_global_symbol_table(ffi_gen: &mut FfiGenerator, module_name: &str, variant_names: &[&str]) { let max_variant_len = variant_names .iter() .map(|name| name.len()) @@ -149,18 +55,16 @@ fn gen_global_symbol_table(module_name: &str, variant_names: &[&str]) -> Vec, - pub global_symbol_table: Vec, -} - -impl FfiData { - pub fn load(module_name: &str) -> Option { - let target_ffi_file = Self::ffi_file(module_name); - - if !target_ffi_file.exists() { - return None; - } - - let data = std::fs::read_to_string(&target_ffi_file) - .expect(&format!("Cannot load {target_ffi_file:?} FFI data file")); - - let res = serde_json::from_str(&data) - .expect(&format!("Cannot parse {target_ffi_file:?} FFI data file")); - - std::fs::remove_file(&target_ffi_file) - .expect(&format!("Cannot remove {target_ffi_file:?} FFI data file")); - - Some(res) - } - - pub fn save(&self, module_name: &str) { - let data = - serde_json::to_string(self).expect(&format!("Cannot serialize {module_name} data")); - - let target_ffi_dir = Self::ffi_dir(); - - std::fs::create_dir_all(&target_ffi_dir) - .expect(&format!("Cannot create {target_ffi_dir:?} folder")); - - let target_ffi_file = Self::ffi_file(module_name); - - std::fs::write(&target_ffi_file, data) - .expect(&format!("Cannot save {target_ffi_file:?} FFI data file")); - } - - fn ffi_dir() -> PathBuf { - // TODO: env!("OUT_DIR") doesn't work - PathBuf::new().join("target").join("ffi") - } - - fn ffi_file(module_name: &str) -> PathBuf { - Self::ffi_dir().join(format!("{module_name}.json")) - } -} diff --git a/engine/lib/luajit-ffi-gen/src/ffi_generator.rs b/engine/lib/luajit-ffi-gen/src/ffi_generator.rs new file mode 100644 index 000000000..908055865 --- /dev/null +++ b/engine/lib/luajit-ffi-gen/src/ffi_generator.rs @@ -0,0 +1,340 @@ +use std::io::Write; +use std::{env::VarError, fs::File, path::PathBuf}; + +use serde::{Deserialize, Serialize}; + +use crate::IDENT; + +const LUAJIT_FFI_GEN_DIR_ENV: &str = "LUAJIT_FFI_GEN_DIR"; +const LUAJIT_FFI_GEN_DIR: &str = "../phx/script/ffi_gen"; + +/// FFI type declaration type. +#[derive(Debug, Default, Serialize, Deserialize)] +pub enum TypeDecl { + /// Simple type. Used for manual type aliases declared in libphx.lua. + #[default] + NoDecl, + /// Opaque type declaration. Used for complex Rust types sent by reference. + Opaque, + /// Autogenerated transparent type aliases. Parameter contains aliased type name. + Struct(String), +} + +impl TypeDecl { + /// Type declaration identifier used in the generated `Loader.defineType()` Lua functions. + fn id(&self) -> u8 { + match self { + TypeDecl::NoDecl => 0, + TypeDecl::Opaque => 1, + TypeDecl::Struct(_) => 2, + } + } +} + +/// Lua FFI module generator. Used also to transfer information between `enum`` (and potentially `struct``) and `impl` attribute usages. +#[derive(Debug, Serialize, Deserialize)] +pub struct FfiGenerator { + module_name: String, + type_decl: TypeDecl, + c_definitions: Vec, + global_symbol_table: Vec, + is_mt_clone: bool, + to_string_method: Option, + metatype: Vec, +} + +/// Initialization +impl FfiGenerator { + /// Create generator for module. + pub fn new(module_name: &str) -> Self { + Self { + module_name: module_name.into(), + type_decl: Default::default(), + c_definitions: Default::default(), + global_symbol_table: Default::default(), + is_mt_clone: Default::default(), + to_string_method: Default::default(), + metatype: Default::default(), + } + } + + pub fn set_type_decl_opaque(&mut self) { + self.type_decl = TypeDecl::Opaque; + } + + pub fn set_type_decl_struct(&mut self, ty: impl Into) { + self.type_decl = TypeDecl::Struct(ty.into()); + } + + pub fn has_type_decl(&self) -> bool { + !matches!(self.type_decl, TypeDecl::NoDecl) + } + + pub fn add_c_definition(&mut self, value: impl Into) { + self.c_definitions.push(value.into()); + } + + pub fn has_c_definitions(&self) -> bool { + !self.c_definitions.is_empty() + } + + pub fn add_global_symbol(&mut self, value: impl Into) { + self.global_symbol_table.push(value.into()); + } + + pub fn has_global_symbols(&self) -> bool { + !self.global_symbol_table.is_empty() + } + + pub fn set_mt_clone(&mut self) { + self.is_mt_clone = true; + } + + pub fn set_to_string_method(&mut self, method: &str) { + self.to_string_method = Some(method.into()); + } + + pub fn add_metatype(&mut self, value: impl Into) { + self.metatype.push(value.into()); + } +} + +/// Serialization and deserialization +impl FfiGenerator { + /// Deserialize generator from the `json` file in the `target/ffi` folder + /// or create default one if file doesn't exist. + pub fn load(module_name: &str) -> Self { + let target_ffi_file = Self::ffi_file(module_name); + + if !target_ffi_file.exists() { + return Self::new(module_name); + } + + let data = std::fs::read_to_string(&target_ffi_file) + .expect(&format!("Cannot load {target_ffi_file:?} FFI data file")); + + let res: Self = serde_json::from_str(&data) + .expect(&format!("Cannot parse {target_ffi_file:?} FFI data file")); + + std::fs::remove_file(&target_ffi_file) + .expect(&format!("Cannot remove {target_ffi_file:?} FFI data file")); + + assert_eq!(res.module_name, module_name); + + res + } + + /// Serialize generator into the `json` file in the `target/ffi` folder. + pub fn save(&self) { + let data = serde_json::to_string(self) + .expect(&format!("Cannot serialize {} data", self.module_name)); + + let target_ffi_dir = Self::ffi_dir(); + + std::fs::create_dir_all(&target_ffi_dir) + .expect(&format!("Cannot create {target_ffi_dir:?} folder")); + + let target_ffi_file = Self::ffi_file(&self.module_name); + + std::fs::write(&target_ffi_file, data) + .expect(&format!("Cannot save {target_ffi_file:?} FFI data file")); + } + + fn ffi_dir() -> PathBuf { + // TODO: env!("OUT_DIR") doesn't work + PathBuf::new().join("target").join("ffi") + } + + fn ffi_file(module_name: &str) -> PathBuf { + Self::ffi_dir().join(format!("{module_name}.json")) + } +} + +/// Generation +impl FfiGenerator { + /// Generates Lua FFI file. + /// It contains the Loader object with 2 functions: `declareType()` and `defineType()`. + /// Former registers type C declaration, either opaque or transparent, and returns type's id (0 - manual type, 1 - opaque, 2 -transparent) + /// and type name. + /// Latter does overall type registration: c function declarations, symbol table registration, etc. + pub fn generate(&self) { + let luajit_ffi_gen_dir = match std::env::var(LUAJIT_FFI_GEN_DIR_ENV) { + Ok(var) => { + if !var.is_empty() { + var + } else { + LUAJIT_FFI_GEN_DIR.into() + } + } + Err(VarError::NotPresent) => LUAJIT_FFI_GEN_DIR.into(), + Err(err) => { + println!("Cannot read '{LUAJIT_FFI_GEN_DIR_ENV}' environment variable. Use default value: {LUAJIT_FFI_GEN_DIR}. Error: {err}"); + + LUAJIT_FFI_GEN_DIR.into() + } + }; + + let cargo_manifest_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR")); + let luajit_ffi_gen_dir_path = cargo_manifest_dir.join(&luajit_ffi_gen_dir); + assert!( + luajit_ffi_gen_dir_path.exists(), + "FFI directory '{luajit_ffi_gen_dir_path:?}' doesn't exist" + ); + + let luajit_ffi_module_path = + luajit_ffi_gen_dir_path.join(format!("{}.lua", self.module_name)); + let mut file = File::create(&luajit_ffi_module_path).expect(&format!( + "Cannot create file: {luajit_ffi_module_path:?}\nCurrent folder: {:?}", + std::env::current_dir() + )); + + // Header + writeln!( + &mut file, + "-- {} {:-<2$}", + self.module_name, + "-", + 80 - 4 - self.module_name.len() + ) + .unwrap(); + writeln!(&mut file, "local Loader = {{}}\n").unwrap(); + + // Type declaration + writeln!(&mut file, "function Loader.declareType()").unwrap(); + + match &self.type_decl { + TypeDecl::NoDecl => {} + TypeDecl::Opaque => { + writeln!(&mut file, "{IDENT}ffi.cdef [[").unwrap(); + writeln!( + &mut file, + "{IDENT}{IDENT}typedef struct {0} {{}} {0};", + self.module_name + ) + .unwrap(); + writeln!(&mut file, "{IDENT}]]\n").unwrap(); + } + TypeDecl::Struct(ty) => { + writeln!(&mut file, "{IDENT}ffi.cdef [[").unwrap(); + writeln!( + &mut file, + "{IDENT}{IDENT}typedef {ty} {};", + self.module_name + ) + .unwrap(); + writeln!(&mut file, "{IDENT}]]\n").unwrap(); + } + } + writeln!( + &mut file, + "{IDENT}return {}, '{}'", + self.type_decl.id(), + self.module_name + ) + .unwrap(); + + writeln!(&mut file, "end\n").unwrap(); + + // Type definition + writeln!(&mut file, "function Loader.defineType()").unwrap(); + + writeln!(&mut file, "{IDENT}local ffi = require('ffi')").unwrap(); + writeln!(&mut file, "{IDENT}local libphx = require('libphx').lib").unwrap(); + writeln!(&mut file, "{IDENT}local {}\n", self.module_name).unwrap(); + + // C Definitions + writeln!(&mut file, "{IDENT}do -- C Definitions").unwrap(); + writeln!(&mut file, "{IDENT}{IDENT}ffi.cdef [[").unwrap(); + + self.c_definitions + .iter() + .for_each(|def| writeln!(&mut file, "{def}").unwrap()); + + writeln!(&mut file, "{IDENT}{IDENT}]]").unwrap(); + writeln!(&mut file, "{IDENT}end\n").unwrap(); + + // Global Symbol Table + writeln!(&mut file, "{IDENT}do -- Global Symbol Table").unwrap(); + writeln!(&mut file, "{IDENT}{IDENT}{} = {{", self.module_name).unwrap(); + + self.global_symbol_table + .iter() + .for_each(|def| writeln!(&mut file, "{def}").unwrap()); + + writeln!(&mut file, "{IDENT}{IDENT}}}\n").unwrap(); + + if self.is_mt_clone { + writeln!(&mut file, "{IDENT}{IDENT}local mt = {{").unwrap(); + writeln!( + &mut file, + "{IDENT}{IDENT}{IDENT}__call = function(t, ...) return {}_t(...) end,", + self.module_name + ) + .unwrap(); + writeln!(&mut file, "{IDENT}{IDENT}}}\n").unwrap(); + } + + writeln!( + &mut file, + "{IDENT}{IDENT}if onDef_{0} then onDef_{0}({0}, mt) end", + self.module_name + ) + .unwrap(); + writeln!( + &mut file, + "{IDENT}{IDENT}{0} = setmetatable({0}, mt)", + self.module_name + ) + .unwrap(); + writeln!(&mut file, "{IDENT}end\n").unwrap(); + + // Metatype for class instances + if self.to_string_method.is_some() || !self.metatype.is_empty() { + writeln!(&mut file, "{IDENT}do -- Metatype for class instances").unwrap(); + writeln!( + &mut file, + "{IDENT}{IDENT}local t = ffi.typeof('{}')", + self.module_name + ) + .unwrap(); + writeln!(&mut file, "{IDENT}{IDENT}local mt = {{").unwrap(); + + if let Some(method) = &self.to_string_method { + writeln!( + &mut file, + "{IDENT}{IDENT}{IDENT}__tostring = function(self) return ffi.string(libphx.{}_{method}(self)) end,", + self.module_name, + ) + .unwrap(); + } + + writeln!(&mut file, "{IDENT}{IDENT}{IDENT}__index = {{").unwrap(); + + self.metatype + .iter() + .for_each(|mt| writeln!(&mut file, "{mt}").unwrap()); + + writeln!(&mut file, "{IDENT}{IDENT}{IDENT}}},").unwrap(); + writeln!(&mut file, "{IDENT}{IDENT}}}\n").unwrap(); + + writeln!( + &mut file, + "{IDENT}{IDENT}if onDef_{0}_t then onDef_{0}_t(t, mt) end", + self.module_name + ) + .unwrap(); + writeln!( + &mut file, + "{IDENT}{IDENT}{}_t = ffi.metatype(t, mt)", + self.module_name + ) + .unwrap(); + writeln!(&mut file, "{IDENT}end\n").unwrap(); + } + + writeln!(&mut file, "{IDENT}return {}", self.module_name).unwrap(); + + writeln!(&mut file, "end\n").unwrap(); + writeln!(&mut file, "return Loader").unwrap(); + } +} diff --git a/engine/lib/luajit-ffi-gen/src/impl_item/lua_ffi.rs b/engine/lib/luajit-ffi-gen/src/impl_item/lua_ffi.rs index 3ded2dca5..8377bd013 100644 --- a/engine/lib/luajit-ffi-gen/src/impl_item/lua_ffi.rs +++ b/engine/lib/luajit-ffi-gen/src/impl_item/lua_ffi.rs @@ -1,8 +1,4 @@ -use std::{env::VarError, fs::File, io::Write, path::PathBuf}; - -use crate::{ - args::ImplAttrArgs, ffi_data::FfiData, IDENT, LUAJIT_FFI_GEN_DIR, LUAJIT_FFI_GEN_DIR_ENV, -}; +use crate::{args::ImplAttrArgs, ffi_generator::FfiGenerator, IDENT}; use super::{ImplInfo, TypeInfo}; @@ -10,36 +6,7 @@ impl ImplInfo { /// Generate Lua FFI file pub fn generate_ffi(&self, attr_args: &ImplAttrArgs) { let module_name = attr_args.name().unwrap_or(self.name.clone()); - let ffi_data = FfiData::load(&module_name); - - let luajit_ffi_gen_dir = match std::env::var(LUAJIT_FFI_GEN_DIR_ENV) { - Ok(var) => { - if !var.is_empty() { - var - } else { - LUAJIT_FFI_GEN_DIR.into() - } - } - Err(VarError::NotPresent) => LUAJIT_FFI_GEN_DIR.into(), - Err(err) => { - println!("Cannot read '{LUAJIT_FFI_GEN_DIR_ENV}' environment variable. Use default value: {LUAJIT_FFI_GEN_DIR}. Error: {err}"); - - LUAJIT_FFI_GEN_DIR.into() - } - }; - - let cargo_manifest_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR")); - let luajit_ffi_gen_dir_path = cargo_manifest_dir.join(&luajit_ffi_gen_dir); - assert!( - luajit_ffi_gen_dir_path.exists(), - "FFI directory '{luajit_ffi_gen_dir_path:?}' doesn't exist" - ); - - let luajit_ffi_module_path = luajit_ffi_gen_dir_path.join(format!("{module_name}.lua")); - let mut file = File::create(&luajit_ffi_module_path).expect(&format!( - "Cannot create file: {luajit_ffi_module_path:?}\nCurrent folder: {:?}", - std::env::current_dir() - )); + let mut ffi_gen = FfiGenerator::load(&module_name); // Generate metatype section only if there is at least one method with `self` parameter, // or managed or clone parameter is set @@ -50,131 +17,59 @@ impl ImplInfo { .iter() .any(|method| method.bind_args.gen_lua_ffi() && method.self_param.is_some()); - // Header - writeln!( - &mut file, - "-- {module_name} {:-<1$}", - "-", - 80 - 4 - module_name.len() - ) - .unwrap(); - writeln!(&mut file, "local ffi = require('ffi')").unwrap(); - writeln!(&mut file, "local libphx = require('ffi.libphx').lib").unwrap(); - writeln!(&mut file, "local {module_name}\n").unwrap(); + // Type declaration + let is_opaque = !ffi_gen.has_type_decl() && attr_args.is_opaque() && gen_metatype; + + if is_opaque { + ffi_gen.set_type_decl_opaque(); + } // C Definitions - let is_opaque = !ffi_data - .as_ref() - .map(|data| data.has_typedef) - .unwrap_or_default() - && attr_args.is_opaque() - && gen_metatype; - let (max_method_name_len, max_self_method_name_len) = self.write_c_defs( - &mut file, - &module_name, - attr_args.is_managed(), - is_opaque, - ffi_data.as_ref().map(|data| data.c_definitions.as_ref()), - ); + let (max_method_name_len, max_self_method_name_len) = + self.write_c_defs(&mut ffi_gen, &module_name, attr_args.is_managed()); // Global Symbol Table self.write_global_sym_table( - &mut file, + &mut ffi_gen, &module_name, max_method_name_len, attr_args.is_managed(), - ffi_data - .as_ref() - .map(|data| data.global_symbol_table.as_ref()), ); if gen_metatype && attr_args.is_clone() { - writeln!(&mut file, "{IDENT}local mt = {{").unwrap(); - writeln!( - &mut file, - "{IDENT}{IDENT}__call = function(t, ...) return {module_name}_t(...) end," - ) - .unwrap(); - writeln!(&mut file, "{IDENT}}}\n").unwrap(); + ffi_gen.set_mt_clone(); } - writeln!( - &mut file, - "{IDENT}if onDef_{module_name} then onDef_{module_name}({module_name}, mt) end" - ) - .unwrap(); - writeln!( - &mut file, - "{IDENT}{module_name} = setmetatable({module_name}, mt)" - ) - .unwrap(); - writeln!(&mut file, "end\n").unwrap(); - // Metatype for class instances if gen_metatype { - writeln!(&mut file, "do -- Metatype for class instances").unwrap(); - writeln!(&mut file, "{IDENT}local t = ffi.typeof('{module_name}')").unwrap(); - writeln!(&mut file, "{IDENT}local mt = {{").unwrap(); - // Add tostring implementation if declared if let Some(method) = self .methods .iter() .find(|method| method.bind_args.is_to_string()) { - writeln!( - &mut file, - "{IDENT}{IDENT}__tostring = function(self) return ffi.string(libphx.{module_name}_{}(self)) end,", - method.as_ffi_name() - ) - .unwrap(); + ffi_gen.set_to_string_method(&method.as_ffi_name()); } - writeln!(&mut file, "{IDENT}{IDENT}__index = {{").unwrap(); - - self.write_metatype(&mut file, &module_name, max_self_method_name_len, attr_args); - - writeln!(&mut file, "{IDENT}{IDENT}}},").unwrap(); - writeln!(&mut file, "{IDENT}}}\n").unwrap(); - - writeln!( - &mut file, - "{IDENT}if onDef_{module_name}_t then onDef_{module_name}_t(t, mt) end" - ) - .unwrap(); - writeln!(&mut file, "{IDENT}{module_name}_t = ffi.metatype(t, mt)").unwrap(); - writeln!(&mut file, "end\n").unwrap(); + self.write_metatype( + &mut ffi_gen, + &module_name, + max_self_method_name_len, + attr_args, + ); } - writeln!(&mut file, "return {module_name}").unwrap(); + ffi_gen.generate(); } fn write_c_defs( &self, - mut file: &File, + ffi_gen: &mut FfiGenerator, module_name: &str, is_managed: bool, - _is_opaque: bool, - c_definitions: Option<&[String]>, ) -> (usize, usize) { - writeln!(&mut file, "do -- C Definitions").unwrap(); - writeln!(&mut file, "{IDENT}ffi.cdef [[").unwrap(); - - // TODO: refactor the way generated FFI is processed so typedef is registered before all other FFI parts to prevent a problem with unknown types - // if is_opaque { - // writeln!( - // &mut file, - // "{IDENT}{IDENT}typedef struct {module_name} {{}} {module_name};\n" - // ) - // .unwrap(); - // } - - if let Some(c_definitions) = c_definitions { - c_definitions - .iter() - .for_each(|def| writeln!(&mut file, "{def}").unwrap()); - - writeln!(&mut file, "").unwrap(); + if ffi_gen.has_c_definitions() { + ffi_gen.add_c_definition(""); } // Tof managed we add 'void Free' method @@ -211,12 +106,10 @@ impl ImplInfo { }); if is_managed { - writeln!( - file, - "{IDENT}{IDENT}{:<2$} {module_name}_{:<3$} ({module_name}*);", + ffi_gen.add_c_definition(format!( + "{IDENT}{IDENT}{IDENT}{:<2$} {module_name}_{:<3$} ({module_name}*);", "void", "Free", max_ret_len, max_method_name_len - ) - .unwrap(); + )); } self @@ -259,70 +152,52 @@ impl ImplInfo { "".into() }; - writeln!( - file, - "{IDENT}{IDENT}{ret_ty_str:<1$} {module_name}_{method_name:<2$} ({self_str}{});", + ffi_gen.add_c_definition(format!( + "{IDENT}{IDENT}{IDENT}{ret_ty_str:<1$} {module_name}_{method_name:<2$} ({self_str}{});", params_str.join(", "), max_ret_len, max_method_name_len ) - .unwrap(); + ); }); - writeln!(&mut file, "{IDENT}]]").unwrap(); - writeln!(&mut file, "end\n").unwrap(); - // Return max len of the method names (all and self only) to avoid recalculation in the next step (max_method_name_len, max_self_method_name_len) } fn write_global_sym_table( &self, - mut file: &File, + ffi_gen: &mut FfiGenerator, module_name: &str, max_method_name_len: usize, is_managed: bool, - global_symbol_table: Option<&[String]>, ) { - writeln!(&mut file, "do -- Global Symbol Table").unwrap(); - writeln!(&mut file, "{IDENT}{module_name} = {{").unwrap(); - - if let Some(global_symbol_table) = global_symbol_table { - global_symbol_table - .iter() - .for_each(|def| writeln!(&mut file, "{def}").unwrap()); - - writeln!(&mut file, "").unwrap(); + if ffi_gen.has_global_symbols() { + ffi_gen.add_global_symbol(""); } if is_managed { - writeln!( - file, - "{IDENT}{IDENT}{0:<1$} = libphx.{module_name}_{0},", + ffi_gen.add_global_symbol(format!( + "{IDENT}{IDENT}{IDENT}{0:<1$} = libphx.{module_name}_{0},", "Free", max_method_name_len - ) - .unwrap(); + )); } self.methods .iter() .filter(|method| method.bind_args.gen_lua_ffi()) .for_each(|method| { - writeln!( - file, - "{IDENT}{IDENT}{0:<1$} = libphx.{module_name}_{0},", + ffi_gen.add_global_symbol(format!( + "{IDENT}{IDENT}{IDENT}{0:<1$} = libphx.{module_name}_{0},", method.as_ffi_name(), max_method_name_len - ) - .unwrap(); + )); }); - - writeln!(&mut file, "{IDENT}}}\n").unwrap(); } fn write_metatype( &self, - file: &mut File, + ffi_gen: &mut FfiGenerator, module_name: &str, max_self_method_name_len: usize, attr_args: &ImplAttrArgs, @@ -337,43 +212,36 @@ impl ImplInfo { // Add clone method if requested if attr_args.is_clone() { - writeln!( - file, - "{IDENT}{IDENT}{IDENT}{0:<1$} = function(x) return {module_name}_t(x) end,", + ffi_gen.add_metatype(format!( + "{IDENT}{IDENT}{IDENT}{IDENT}{0:<1$} = function(x) return {module_name}_t(x) end,", "clone", max_method_name_len - ) - .unwrap(); + )); } // Add managed method if requested if attr_args.is_managed() { - writeln!( - file, - "{IDENT}{IDENT}{IDENT}{0:<1$} = function(self) return ffi.gc(self, libphx.{module_name}_Free) end,", + ffi_gen.add_metatype(format!( + "{IDENT}{IDENT}{IDENT}{IDENT}{0:<1$} = function(self) return ffi.gc(self, libphx.{module_name}_Free) end,", "managed", max_method_name_len ) - .unwrap(); + ); - writeln!( - file, - "{IDENT}{IDENT}{IDENT}{0:<1$} = libphx.{module_name}_Free,", + ffi_gen.add_metatype(format!( + "{IDENT}{IDENT}{IDENT}{IDENT}{0:<1$} = libphx.{module_name}_Free,", "free", max_method_name_len - ) - .unwrap(); + )); } self.methods .iter() .filter(|method| method.bind_args.gen_lua_ffi() && method.self_param.is_some()) .for_each(|method| { - writeln!( - file, - "{IDENT}{IDENT}{IDENT}{:<2$} = libphx.{module_name}_{},", + ffi_gen.add_metatype(format!( + "{IDENT}{IDENT}{IDENT}{IDENT}{:<2$} = libphx.{module_name}_{},", method.as_ffi_var(), method.as_ffi_name(), max_method_name_len - ) - .unwrap(); + )); }); } } diff --git a/engine/lib/luajit-ffi-gen/src/lib.rs b/engine/lib/luajit-ffi-gen/src/lib.rs index e53069ec5..0834fae4e 100644 --- a/engine/lib/luajit-ffi-gen/src/lib.rs +++ b/engine/lib/luajit-ffi-gen/src/lib.rs @@ -1,6 +1,6 @@ mod args; mod enum_item; -mod ffi_data; +mod ffi_generator; mod impl_item; mod parse; mod util; @@ -13,8 +13,6 @@ use proc_macro::TokenStream; use quote::quote; use syn::parse_macro_input; -pub(crate) const LUAJIT_FFI_GEN_DIR_ENV: &str = "LUAJIT_FFI_GEN_DIR"; -pub(crate) const LUAJIT_FFI_GEN_DIR: &str = "../phx/script/ffi"; pub(crate) const IDENT: &str = " "; /// Proc macro attribute for generating Lua FFI bindings. diff --git a/engine/lib/phx/script/ffi/Audio.lua b/engine/lib/phx/script/ffi/Audio.lua deleted file mode 100644 index 86ed5cc00..000000000 --- a/engine/lib/phx/script/ffi/Audio.lua +++ /dev/null @@ -1,51 +0,0 @@ --- Audio ----------------------------------------------------------------------- -local ffi = require('ffi') -local libphx = require('ffi.libphx').lib -local Audio - -do -- C Definitions - ffi.cdef [[ - void Audio_Free (Audio*); - Audio* Audio_Create (); - void Audio_Play (Audio*, Sound* sound); - void Audio_SetListenerPos (Audio*, Vec3f const* pos, Quat const* rot); - uint64 Audio_GetLoadedCount (Audio const*); - uint64 Audio_GetPlayingCount (Audio const*); - uint64 Audio_GetTotalCount (Audio const*); - ]] -end - -do -- Global Symbol Table - Audio = { - Free = libphx.Audio_Free, - Create = libphx.Audio_Create, - Play = libphx.Audio_Play, - SetListenerPos = libphx.Audio_SetListenerPos, - GetLoadedCount = libphx.Audio_GetLoadedCount, - GetPlayingCount = libphx.Audio_GetPlayingCount, - GetTotalCount = libphx.Audio_GetTotalCount, - } - - if onDef_Audio then onDef_Audio(Audio, mt) end - Audio = setmetatable(Audio, mt) -end - -do -- Metatype for class instances - local t = ffi.typeof('Audio') - local mt = { - __index = { - managed = function(self) return ffi.gc(self, libphx.Audio_Free) end, - free = libphx.Audio_Free, - play = libphx.Audio_Play, - setListenerPos = libphx.Audio_SetListenerPos, - getLoadedCount = libphx.Audio_GetLoadedCount, - getPlayingCount = libphx.Audio_GetPlayingCount, - getTotalCount = libphx.Audio_GetTotalCount, - }, - } - - if onDef_Audio_t then onDef_Audio_t(t, mt) end - Audio_t = ffi.metatype(t, mt) -end - -return Audio diff --git a/engine/lib/phx/script/ffi/Bit.lua b/engine/lib/phx/script/ffi/Bit.lua deleted file mode 100644 index 6feefafe4..000000000 --- a/engine/lib/phx/script/ffi/Bit.lua +++ /dev/null @@ -1,35 +0,0 @@ --- Bit ------------------------------------------------------------------------- -local ffi = require('ffi') -local libphx = require('ffi.libphx').lib -local Bit - -do -- C Definitions - ffi.cdef [[ - uint32 Bit_And32 (uint32 x, uint32 y); - uint32 Bit_Or32 (uint32 x, uint32 y); - uint32 Bit_Xor32 (uint32 x, uint32 y); - bool Bit_Has32 (uint32 x, uint32 y); - uint64 Bit_And64 (uint64 x, uint64 y); - uint64 Bit_Or64 (uint64 x, uint64 y); - uint64 Bit_Xor64 (uint64 x, uint64 y); - bool Bit_Has64 (uint64 x, uint64 y); - ]] -end - -do -- Global Symbol Table - Bit = { - And32 = libphx.Bit_And32, - Or32 = libphx.Bit_Or32, - Xor32 = libphx.Bit_Xor32, - Has32 = libphx.Bit_Has32, - And64 = libphx.Bit_And64, - Or64 = libphx.Bit_Or64, - Xor64 = libphx.Bit_Xor64, - Has64 = libphx.Bit_Has64, - } - - if onDef_Bit then onDef_Bit(Bit, mt) end - Bit = setmetatable(Bit, mt) -end - -return Bit diff --git a/engine/lib/phx/script/ffi/Button.lua b/engine/lib/phx/script/ffi/Button.lua deleted file mode 100644 index 88d17ecd7..000000000 --- a/engine/lib/phx/script/ffi/Button.lua +++ /dev/null @@ -1,431 +0,0 @@ --- Button ---------------------------------------------------------------------- -local ffi = require('ffi') -local libphx = require('ffi.libphx').lib -local Button - -do -- C Definitions - ffi.cdef [[ - Button Button_KeyboardKey1; - Button Button_KeyboardKey2; - Button Button_KeyboardKey3; - Button Button_KeyboardKey4; - Button Button_KeyboardKey5; - Button Button_KeyboardKey6; - Button Button_KeyboardKey7; - Button Button_KeyboardKey8; - Button Button_KeyboardKey9; - Button Button_KeyboardKey0; - Button Button_KeyboardA; - Button Button_KeyboardB; - Button Button_KeyboardC; - Button Button_KeyboardD; - Button Button_KeyboardE; - Button Button_KeyboardF; - Button Button_KeyboardG; - Button Button_KeyboardH; - Button Button_KeyboardI; - Button Button_KeyboardJ; - Button Button_KeyboardK; - Button Button_KeyboardL; - Button Button_KeyboardM; - Button Button_KeyboardN; - Button Button_KeyboardO; - Button Button_KeyboardP; - Button Button_KeyboardQ; - Button Button_KeyboardR; - Button Button_KeyboardS; - Button Button_KeyboardT; - Button Button_KeyboardU; - Button Button_KeyboardV; - Button Button_KeyboardW; - Button Button_KeyboardX; - Button Button_KeyboardY; - Button Button_KeyboardZ; - Button Button_KeyboardEscape; - Button Button_KeyboardF1; - Button Button_KeyboardF2; - Button Button_KeyboardF3; - Button Button_KeyboardF4; - Button Button_KeyboardF5; - Button Button_KeyboardF6; - Button Button_KeyboardF7; - Button Button_KeyboardF8; - Button Button_KeyboardF9; - Button Button_KeyboardF10; - Button Button_KeyboardF11; - Button Button_KeyboardF12; - Button Button_KeyboardF13; - Button Button_KeyboardF14; - Button Button_KeyboardF15; - Button Button_KeyboardF16; - Button Button_KeyboardF17; - Button Button_KeyboardF18; - Button Button_KeyboardF19; - Button Button_KeyboardF20; - Button Button_KeyboardF21; - Button Button_KeyboardF22; - Button Button_KeyboardF23; - Button Button_KeyboardF24; - Button Button_KeyboardSnapshot; - Button Button_KeyboardScroll; - Button Button_KeyboardPause; - Button Button_KeyboardInsert; - Button Button_KeyboardHome; - Button Button_KeyboardDelete; - Button Button_KeyboardEnd; - Button Button_KeyboardPageDown; - Button Button_KeyboardPageUp; - Button Button_KeyboardLeft; - Button Button_KeyboardUp; - Button Button_KeyboardRight; - Button Button_KeyboardDown; - Button Button_KeyboardBack; - Button Button_KeyboardReturn; - Button Button_KeyboardSpace; - Button Button_KeyboardCompose; - Button Button_KeyboardCaret; - Button Button_KeyboardNumlock; - Button Button_KeyboardNumpad0; - Button Button_KeyboardNumpad1; - Button Button_KeyboardNumpad2; - Button Button_KeyboardNumpad3; - Button Button_KeyboardNumpad4; - Button Button_KeyboardNumpad5; - Button Button_KeyboardNumpad6; - Button Button_KeyboardNumpad7; - Button Button_KeyboardNumpad8; - Button Button_KeyboardNumpad9; - Button Button_KeyboardAbntC1; - Button Button_KeyboardAbntC2; - Button Button_KeyboardNumpadAdd; - Button Button_KeyboardApostrophe; - Button Button_KeyboardApps; - Button Button_KeyboardAsterisk; - Button Button_KeyboardPlus; - Button Button_KeyboardAt; - Button Button_KeyboardAx; - Button Button_KeyboardBackslash; - Button Button_KeyboardCalculator; - Button Button_KeyboardCapital; - Button Button_KeyboardColon; - Button Button_KeyboardComma; - Button Button_KeyboardConvert; - Button Button_KeyboardNumpadDecimal; - Button Button_KeyboardNumpadDivide; - Button Button_KeyboardEquals; - Button Button_KeyboardGrave; - Button Button_KeyboardKana; - Button Button_KeyboardKanji; - Button Button_KeyboardAltLeft; - Button Button_KeyboardBracketLeft; - Button Button_KeyboardControlLeft; - Button Button_KeyboardShiftLeft; - Button Button_KeyboardSuperLeft; - Button Button_KeyboardMail; - Button Button_KeyboardMediaSelect; - Button Button_KeyboardMediaStop; - Button Button_KeyboardMinus; - Button Button_KeyboardNumpadMultiply; - Button Button_KeyboardMute; - Button Button_KeyboardMyComputer; - Button Button_KeyboardNavigateForward; - Button Button_KeyboardNavigateBackward; - Button Button_KeyboardNextTrack; - Button Button_KeyboardNoConvert; - Button Button_KeyboardNumpadComma; - Button Button_KeyboardNumpadEnter; - Button Button_KeyboardNumpadEquals; - Button Button_KeyboardOem102; - Button Button_KeyboardPeriod; - Button Button_KeyboardPlayPause; - Button Button_KeyboardPower; - Button Button_KeyboardPrevTrack; - Button Button_KeyboardAltRight; - Button Button_KeyboardBracketRight; - Button Button_KeyboardControlRight; - Button Button_KeyboardShiftRight; - Button Button_KeyboardSuperRight; - Button Button_KeyboardSemicolon; - Button Button_KeyboardSlash; - Button Button_KeyboardSleep; - Button Button_KeyboardStop; - Button Button_KeyboardNumpadSubtract; - Button Button_KeyboardSysrq; - Button Button_KeyboardTab; - Button Button_KeyboardUnderline; - Button Button_KeyboardUnlabeled; - Button Button_KeyboardVolumeDown; - Button Button_KeyboardVolumeUp; - Button Button_KeyboardWake; - Button Button_KeyboardWebBack; - Button Button_KeyboardWebFavorites; - Button Button_KeyboardWebForward; - Button Button_KeyboardWebHome; - Button Button_KeyboardWebRefresh; - Button Button_KeyboardWebSearch; - Button Button_KeyboardWebStop; - Button Button_KeyboardYen; - Button Button_KeyboardCopy; - Button Button_KeyboardPaste; - Button Button_KeyboardCut; - Button Button_MouseLeft; - Button Button_MouseMiddle; - Button Button_MouseRight; - Button Button_MouseX1; - Button Button_MouseX2; - Button Button_MouseDeltaX; - Button Button_MouseDeltaY; - Button Button_MouseScrollX; - Button Button_MouseScrollY; - Button Button_MouseScrollPixelX; - Button Button_MouseScrollPixelY; - Button Button_GamepadSouth; - Button Button_GamepadEast; - Button Button_GamepadNorth; - Button Button_GamepadWest; - Button Button_GamepadC; - Button Button_GamepadZ; - Button Button_GamepadLeftTrigger; - Button Button_GamepadLeftTrigger2; - Button Button_GamepadRightTrigger; - Button Button_GamepadRightTrigger2; - Button Button_GamepadSelect; - Button Button_GamepadStart; - Button Button_GamepadMode; - Button Button_GamepadLeftThumb; - Button Button_GamepadRightThumb; - Button Button_GamepadDPadUp; - Button Button_GamepadDPadDown; - Button Button_GamepadDPadLeft; - Button Button_GamepadDPadRight; - Button Button_GamepadLeftStickX; - Button Button_GamepadLeftStickY; - Button Button_GamepadLeftZ; - Button Button_GamepadRightStickX; - Button Button_GamepadRightStickY; - Button Button_GamepadRightZ; - Button Button_TouchpadX; - Button Button_TouchpadY; - Button Button_TouchpadMagnifyDelta; - Button Button_TouchpadRotateDelta; - Button Button_SystemExit; - - cstr Button_ToString(Button); - ]] -end - -do -- Global Symbol Table - Button = { - KeyboardKey1 = libphx.Button_KeyboardKey1, - KeyboardKey2 = libphx.Button_KeyboardKey2, - KeyboardKey3 = libphx.Button_KeyboardKey3, - KeyboardKey4 = libphx.Button_KeyboardKey4, - KeyboardKey5 = libphx.Button_KeyboardKey5, - KeyboardKey6 = libphx.Button_KeyboardKey6, - KeyboardKey7 = libphx.Button_KeyboardKey7, - KeyboardKey8 = libphx.Button_KeyboardKey8, - KeyboardKey9 = libphx.Button_KeyboardKey9, - KeyboardKey0 = libphx.Button_KeyboardKey0, - KeyboardA = libphx.Button_KeyboardA, - KeyboardB = libphx.Button_KeyboardB, - KeyboardC = libphx.Button_KeyboardC, - KeyboardD = libphx.Button_KeyboardD, - KeyboardE = libphx.Button_KeyboardE, - KeyboardF = libphx.Button_KeyboardF, - KeyboardG = libphx.Button_KeyboardG, - KeyboardH = libphx.Button_KeyboardH, - KeyboardI = libphx.Button_KeyboardI, - KeyboardJ = libphx.Button_KeyboardJ, - KeyboardK = libphx.Button_KeyboardK, - KeyboardL = libphx.Button_KeyboardL, - KeyboardM = libphx.Button_KeyboardM, - KeyboardN = libphx.Button_KeyboardN, - KeyboardO = libphx.Button_KeyboardO, - KeyboardP = libphx.Button_KeyboardP, - KeyboardQ = libphx.Button_KeyboardQ, - KeyboardR = libphx.Button_KeyboardR, - KeyboardS = libphx.Button_KeyboardS, - KeyboardT = libphx.Button_KeyboardT, - KeyboardU = libphx.Button_KeyboardU, - KeyboardV = libphx.Button_KeyboardV, - KeyboardW = libphx.Button_KeyboardW, - KeyboardX = libphx.Button_KeyboardX, - KeyboardY = libphx.Button_KeyboardY, - KeyboardZ = libphx.Button_KeyboardZ, - KeyboardEscape = libphx.Button_KeyboardEscape, - KeyboardF1 = libphx.Button_KeyboardF1, - KeyboardF2 = libphx.Button_KeyboardF2, - KeyboardF3 = libphx.Button_KeyboardF3, - KeyboardF4 = libphx.Button_KeyboardF4, - KeyboardF5 = libphx.Button_KeyboardF5, - KeyboardF6 = libphx.Button_KeyboardF6, - KeyboardF7 = libphx.Button_KeyboardF7, - KeyboardF8 = libphx.Button_KeyboardF8, - KeyboardF9 = libphx.Button_KeyboardF9, - KeyboardF10 = libphx.Button_KeyboardF10, - KeyboardF11 = libphx.Button_KeyboardF11, - KeyboardF12 = libphx.Button_KeyboardF12, - KeyboardF13 = libphx.Button_KeyboardF13, - KeyboardF14 = libphx.Button_KeyboardF14, - KeyboardF15 = libphx.Button_KeyboardF15, - KeyboardF16 = libphx.Button_KeyboardF16, - KeyboardF17 = libphx.Button_KeyboardF17, - KeyboardF18 = libphx.Button_KeyboardF18, - KeyboardF19 = libphx.Button_KeyboardF19, - KeyboardF20 = libphx.Button_KeyboardF20, - KeyboardF21 = libphx.Button_KeyboardF21, - KeyboardF22 = libphx.Button_KeyboardF22, - KeyboardF23 = libphx.Button_KeyboardF23, - KeyboardF24 = libphx.Button_KeyboardF24, - KeyboardSnapshot = libphx.Button_KeyboardSnapshot, - KeyboardScroll = libphx.Button_KeyboardScroll, - KeyboardPause = libphx.Button_KeyboardPause, - KeyboardInsert = libphx.Button_KeyboardInsert, - KeyboardHome = libphx.Button_KeyboardHome, - KeyboardDelete = libphx.Button_KeyboardDelete, - KeyboardEnd = libphx.Button_KeyboardEnd, - KeyboardPageDown = libphx.Button_KeyboardPageDown, - KeyboardPageUp = libphx.Button_KeyboardPageUp, - KeyboardLeft = libphx.Button_KeyboardLeft, - KeyboardUp = libphx.Button_KeyboardUp, - KeyboardRight = libphx.Button_KeyboardRight, - KeyboardDown = libphx.Button_KeyboardDown, - KeyboardBack = libphx.Button_KeyboardBack, - KeyboardReturn = libphx.Button_KeyboardReturn, - KeyboardSpace = libphx.Button_KeyboardSpace, - KeyboardCompose = libphx.Button_KeyboardCompose, - KeyboardCaret = libphx.Button_KeyboardCaret, - KeyboardNumlock = libphx.Button_KeyboardNumlock, - KeyboardNumpad0 = libphx.Button_KeyboardNumpad0, - KeyboardNumpad1 = libphx.Button_KeyboardNumpad1, - KeyboardNumpad2 = libphx.Button_KeyboardNumpad2, - KeyboardNumpad3 = libphx.Button_KeyboardNumpad3, - KeyboardNumpad4 = libphx.Button_KeyboardNumpad4, - KeyboardNumpad5 = libphx.Button_KeyboardNumpad5, - KeyboardNumpad6 = libphx.Button_KeyboardNumpad6, - KeyboardNumpad7 = libphx.Button_KeyboardNumpad7, - KeyboardNumpad8 = libphx.Button_KeyboardNumpad8, - KeyboardNumpad9 = libphx.Button_KeyboardNumpad9, - KeyboardAbntC1 = libphx.Button_KeyboardAbntC1, - KeyboardAbntC2 = libphx.Button_KeyboardAbntC2, - KeyboardNumpadAdd = libphx.Button_KeyboardNumpadAdd, - KeyboardApostrophe = libphx.Button_KeyboardApostrophe, - KeyboardApps = libphx.Button_KeyboardApps, - KeyboardAsterisk = libphx.Button_KeyboardAsterisk, - KeyboardPlus = libphx.Button_KeyboardPlus, - KeyboardAt = libphx.Button_KeyboardAt, - KeyboardAx = libphx.Button_KeyboardAx, - KeyboardBackslash = libphx.Button_KeyboardBackslash, - KeyboardCalculator = libphx.Button_KeyboardCalculator, - KeyboardCapital = libphx.Button_KeyboardCapital, - KeyboardColon = libphx.Button_KeyboardColon, - KeyboardComma = libphx.Button_KeyboardComma, - KeyboardConvert = libphx.Button_KeyboardConvert, - KeyboardNumpadDecimal = libphx.Button_KeyboardNumpadDecimal, - KeyboardNumpadDivide = libphx.Button_KeyboardNumpadDivide, - KeyboardEquals = libphx.Button_KeyboardEquals, - KeyboardGrave = libphx.Button_KeyboardGrave, - KeyboardKana = libphx.Button_KeyboardKana, - KeyboardKanji = libphx.Button_KeyboardKanji, - KeyboardAltLeft = libphx.Button_KeyboardAltLeft, - KeyboardBracketLeft = libphx.Button_KeyboardBracketLeft, - KeyboardControlLeft = libphx.Button_KeyboardControlLeft, - KeyboardShiftLeft = libphx.Button_KeyboardShiftLeft, - KeyboardSuperLeft = libphx.Button_KeyboardSuperLeft, - KeyboardMail = libphx.Button_KeyboardMail, - KeyboardMediaSelect = libphx.Button_KeyboardMediaSelect, - KeyboardMediaStop = libphx.Button_KeyboardMediaStop, - KeyboardMinus = libphx.Button_KeyboardMinus, - KeyboardNumpadMultiply = libphx.Button_KeyboardNumpadMultiply, - KeyboardMute = libphx.Button_KeyboardMute, - KeyboardMyComputer = libphx.Button_KeyboardMyComputer, - KeyboardNavigateForward = libphx.Button_KeyboardNavigateForward, - KeyboardNavigateBackward = libphx.Button_KeyboardNavigateBackward, - KeyboardNextTrack = libphx.Button_KeyboardNextTrack, - KeyboardNoConvert = libphx.Button_KeyboardNoConvert, - KeyboardNumpadComma = libphx.Button_KeyboardNumpadComma, - KeyboardNumpadEnter = libphx.Button_KeyboardNumpadEnter, - KeyboardNumpadEquals = libphx.Button_KeyboardNumpadEquals, - KeyboardOem102 = libphx.Button_KeyboardOem102, - KeyboardPeriod = libphx.Button_KeyboardPeriod, - KeyboardPlayPause = libphx.Button_KeyboardPlayPause, - KeyboardPower = libphx.Button_KeyboardPower, - KeyboardPrevTrack = libphx.Button_KeyboardPrevTrack, - KeyboardAltRight = libphx.Button_KeyboardAltRight, - KeyboardBracketRight = libphx.Button_KeyboardBracketRight, - KeyboardControlRight = libphx.Button_KeyboardControlRight, - KeyboardShiftRight = libphx.Button_KeyboardShiftRight, - KeyboardSuperRight = libphx.Button_KeyboardSuperRight, - KeyboardSemicolon = libphx.Button_KeyboardSemicolon, - KeyboardSlash = libphx.Button_KeyboardSlash, - KeyboardSleep = libphx.Button_KeyboardSleep, - KeyboardStop = libphx.Button_KeyboardStop, - KeyboardNumpadSubtract = libphx.Button_KeyboardNumpadSubtract, - KeyboardSysrq = libphx.Button_KeyboardSysrq, - KeyboardTab = libphx.Button_KeyboardTab, - KeyboardUnderline = libphx.Button_KeyboardUnderline, - KeyboardUnlabeled = libphx.Button_KeyboardUnlabeled, - KeyboardVolumeDown = libphx.Button_KeyboardVolumeDown, - KeyboardVolumeUp = libphx.Button_KeyboardVolumeUp, - KeyboardWake = libphx.Button_KeyboardWake, - KeyboardWebBack = libphx.Button_KeyboardWebBack, - KeyboardWebFavorites = libphx.Button_KeyboardWebFavorites, - KeyboardWebForward = libphx.Button_KeyboardWebForward, - KeyboardWebHome = libphx.Button_KeyboardWebHome, - KeyboardWebRefresh = libphx.Button_KeyboardWebRefresh, - KeyboardWebSearch = libphx.Button_KeyboardWebSearch, - KeyboardWebStop = libphx.Button_KeyboardWebStop, - KeyboardYen = libphx.Button_KeyboardYen, - KeyboardCopy = libphx.Button_KeyboardCopy, - KeyboardPaste = libphx.Button_KeyboardPaste, - KeyboardCut = libphx.Button_KeyboardCut, - MouseLeft = libphx.Button_MouseLeft, - MouseMiddle = libphx.Button_MouseMiddle, - MouseRight = libphx.Button_MouseRight, - MouseX1 = libphx.Button_MouseX1, - MouseX2 = libphx.Button_MouseX2, - MouseDeltaX = libphx.Button_MouseDeltaX, - MouseDeltaY = libphx.Button_MouseDeltaY, - MouseScrollX = libphx.Button_MouseScrollX, - MouseScrollY = libphx.Button_MouseScrollY, - MouseScrollPixelX = libphx.Button_MouseScrollPixelX, - MouseScrollPixelY = libphx.Button_MouseScrollPixelY, - GamepadSouth = libphx.Button_GamepadSouth, - GamepadEast = libphx.Button_GamepadEast, - GamepadNorth = libphx.Button_GamepadNorth, - GamepadWest = libphx.Button_GamepadWest, - GamepadC = libphx.Button_GamepadC, - GamepadZ = libphx.Button_GamepadZ, - GamepadLeftTrigger = libphx.Button_GamepadLeftTrigger, - GamepadLeftTrigger2 = libphx.Button_GamepadLeftTrigger2, - GamepadRightTrigger = libphx.Button_GamepadRightTrigger, - GamepadRightTrigger2 = libphx.Button_GamepadRightTrigger2, - GamepadSelect = libphx.Button_GamepadSelect, - GamepadStart = libphx.Button_GamepadStart, - GamepadMode = libphx.Button_GamepadMode, - GamepadLeftThumb = libphx.Button_GamepadLeftThumb, - GamepadRightThumb = libphx.Button_GamepadRightThumb, - GamepadDPadUp = libphx.Button_GamepadDPadUp, - GamepadDPadDown = libphx.Button_GamepadDPadDown, - GamepadDPadLeft = libphx.Button_GamepadDPadLeft, - GamepadDPadRight = libphx.Button_GamepadDPadRight, - GamepadLeftStickX = libphx.Button_GamepadLeftStickX, - GamepadLeftStickY = libphx.Button_GamepadLeftStickY, - GamepadLeftZ = libphx.Button_GamepadLeftZ, - GamepadRightStickX = libphx.Button_GamepadRightStickX, - GamepadRightStickY = libphx.Button_GamepadRightStickY, - GamepadRightZ = libphx.Button_GamepadRightZ, - TouchpadX = libphx.Button_TouchpadX, - TouchpadY = libphx.Button_TouchpadY, - TouchpadMagnifyDelta = libphx.Button_TouchpadMagnifyDelta, - TouchpadRotateDelta = libphx.Button_TouchpadRotateDelta, - SystemExit = libphx.Button_SystemExit, - - ToString = libphx.Button_ToString, - } - - if onDef_Button then onDef_Button(Button, mt) end - Button = setmetatable(Button, mt) -end - -return Button diff --git a/engine/lib/phx/script/ffi/Cursor.lua b/engine/lib/phx/script/ffi/Cursor.lua deleted file mode 100644 index b7d935896..000000000 --- a/engine/lib/phx/script/ffi/Cursor.lua +++ /dev/null @@ -1,54 +0,0 @@ --- Cursor ---------------------------------------------------------------------- -local ffi = require('ffi') -local libphx = require('ffi.libphx').lib -local Cursor - -do -- C Definitions - ffi.cdef [[ - CursorIcon Cursor_Icon (Cursor const*); - void Cursor_SetIcon (Cursor*, CursorIcon icon); - bool Cursor_IsVisible (Cursor const*); - void Cursor_SetVisible (Cursor*, bool visible); - CursorGrabMode Cursor_GrabMode (Cursor const*); - void Cursor_SetGrabMode (Cursor*, CursorGrabMode grabMode); - bool Cursor_IsHitTest (Cursor const*); - void Cursor_SetHitTest (Cursor*, bool hitTest); - ]] -end - -do -- Global Symbol Table - Cursor = { - Icon = libphx.Cursor_Icon, - SetIcon = libphx.Cursor_SetIcon, - IsVisible = libphx.Cursor_IsVisible, - SetVisible = libphx.Cursor_SetVisible, - GrabMode = libphx.Cursor_GrabMode, - SetGrabMode = libphx.Cursor_SetGrabMode, - IsHitTest = libphx.Cursor_IsHitTest, - SetHitTest = libphx.Cursor_SetHitTest, - } - - if onDef_Cursor then onDef_Cursor(Cursor, mt) end - Cursor = setmetatable(Cursor, mt) -end - -do -- Metatype for class instances - local t = ffi.typeof('Cursor') - local mt = { - __index = { - icon = libphx.Cursor_Icon, - setIcon = libphx.Cursor_SetIcon, - isVisible = libphx.Cursor_IsVisible, - setVisible = libphx.Cursor_SetVisible, - grabMode = libphx.Cursor_GrabMode, - setGrabMode = libphx.Cursor_SetGrabMode, - isHitTest = libphx.Cursor_IsHitTest, - setHitTest = libphx.Cursor_SetHitTest, - }, - } - - if onDef_Cursor_t then onDef_Cursor_t(t, mt) end - Cursor_t = ffi.metatype(t, mt) -end - -return Cursor diff --git a/engine/lib/phx/script/ffi/CursorGrabMode.lua b/engine/lib/phx/script/ffi/CursorGrabMode.lua deleted file mode 100644 index 95dc6810d..000000000 --- a/engine/lib/phx/script/ffi/CursorGrabMode.lua +++ /dev/null @@ -1,29 +0,0 @@ --- CursorGrabMode -------------------------------------------------------------- -local ffi = require('ffi') -local libphx = require('ffi.libphx').lib -local CursorGrabMode - -do -- C Definitions - ffi.cdef [[ - CursorGrabMode CursorGrabMode_None; - CursorGrabMode CursorGrabMode_Confined; - CursorGrabMode CursorGrabMode_Locked; - - cstr CursorGrabMode_ToString(CursorGrabMode); - ]] -end - -do -- Global Symbol Table - CursorGrabMode = { - None = libphx.CursorGrabMode_None, - Confined = libphx.CursorGrabMode_Confined, - Locked = libphx.CursorGrabMode_Locked, - - ToString = libphx.CursorGrabMode_ToString, - } - - if onDef_CursorGrabMode then onDef_CursorGrabMode(CursorGrabMode, mt) end - CursorGrabMode = setmetatable(CursorGrabMode, mt) -end - -return CursorGrabMode diff --git a/engine/lib/phx/script/ffi/CursorIcon.lua b/engine/lib/phx/script/ffi/CursorIcon.lua deleted file mode 100644 index dd29cc3a3..000000000 --- a/engine/lib/phx/script/ffi/CursorIcon.lua +++ /dev/null @@ -1,93 +0,0 @@ --- CursorIcon ------------------------------------------------------------------ -local ffi = require('ffi') -local libphx = require('ffi.libphx').lib -local CursorIcon - -do -- C Definitions - ffi.cdef [[ - CursorIcon CursorIcon_Default; - CursorIcon CursorIcon_Crosshair; - CursorIcon CursorIcon_Hand; - CursorIcon CursorIcon_Arrow; - CursorIcon CursorIcon_Move; - CursorIcon CursorIcon_Text; - CursorIcon CursorIcon_Wait; - CursorIcon CursorIcon_Help; - CursorIcon CursorIcon_Progress; - CursorIcon CursorIcon_NotAllowed; - CursorIcon CursorIcon_ContextMenu; - CursorIcon CursorIcon_Cell; - CursorIcon CursorIcon_VerticalText; - CursorIcon CursorIcon_Alias; - CursorIcon CursorIcon_Copy; - CursorIcon CursorIcon_NoDrop; - CursorIcon CursorIcon_Grab; - CursorIcon CursorIcon_Grabbing; - CursorIcon CursorIcon_AllScroll; - CursorIcon CursorIcon_ZoomIn; - CursorIcon CursorIcon_ZoomOut; - CursorIcon CursorIcon_EResize; - CursorIcon CursorIcon_NResize; - CursorIcon CursorIcon_NeResize; - CursorIcon CursorIcon_NwResize; - CursorIcon CursorIcon_SResize; - CursorIcon CursorIcon_SeResize; - CursorIcon CursorIcon_SwResize; - CursorIcon CursorIcon_WResize; - CursorIcon CursorIcon_EwResize; - CursorIcon CursorIcon_NsResize; - CursorIcon CursorIcon_NeswResize; - CursorIcon CursorIcon_NwseResize; - CursorIcon CursorIcon_ColResize; - CursorIcon CursorIcon_RowResize; - - cstr CursorIcon_ToString(CursorIcon); - ]] -end - -do -- Global Symbol Table - CursorIcon = { - Default = libphx.CursorIcon_Default, - Crosshair = libphx.CursorIcon_Crosshair, - Hand = libphx.CursorIcon_Hand, - Arrow = libphx.CursorIcon_Arrow, - Move = libphx.CursorIcon_Move, - Text = libphx.CursorIcon_Text, - Wait = libphx.CursorIcon_Wait, - Help = libphx.CursorIcon_Help, - Progress = libphx.CursorIcon_Progress, - NotAllowed = libphx.CursorIcon_NotAllowed, - ContextMenu = libphx.CursorIcon_ContextMenu, - Cell = libphx.CursorIcon_Cell, - VerticalText = libphx.CursorIcon_VerticalText, - Alias = libphx.CursorIcon_Alias, - Copy = libphx.CursorIcon_Copy, - NoDrop = libphx.CursorIcon_NoDrop, - Grab = libphx.CursorIcon_Grab, - Grabbing = libphx.CursorIcon_Grabbing, - AllScroll = libphx.CursorIcon_AllScroll, - ZoomIn = libphx.CursorIcon_ZoomIn, - ZoomOut = libphx.CursorIcon_ZoomOut, - EResize = libphx.CursorIcon_EResize, - NResize = libphx.CursorIcon_NResize, - NeResize = libphx.CursorIcon_NeResize, - NwResize = libphx.CursorIcon_NwResize, - SResize = libphx.CursorIcon_SResize, - SeResize = libphx.CursorIcon_SeResize, - SwResize = libphx.CursorIcon_SwResize, - WResize = libphx.CursorIcon_WResize, - EwResize = libphx.CursorIcon_EwResize, - NsResize = libphx.CursorIcon_NsResize, - NeswResize = libphx.CursorIcon_NeswResize, - NwseResize = libphx.CursorIcon_NwseResize, - ColResize = libphx.CursorIcon_ColResize, - RowResize = libphx.CursorIcon_RowResize, - - ToString = libphx.CursorIcon_ToString, - } - - if onDef_CursorIcon then onDef_CursorIcon(CursorIcon, mt) end - CursorIcon = setmetatable(CursorIcon, mt) -end - -return CursorIcon diff --git a/engine/lib/phx/script/ffi/Directory.lua b/engine/lib/phx/script/ffi/Directory.lua deleted file mode 100644 index 966c16bf3..000000000 --- a/engine/lib/phx/script/ffi/Directory.lua +++ /dev/null @@ -1,49 +0,0 @@ --- Directory ------------------------------------------------------------------- -local ffi = require('ffi') -local libphx = require('ffi.libphx').lib -local Directory - -do -- C Definitions - ffi.cdef [[ - void Directory_Free (Directory*); - Directory* Directory_Open (cstr path); - cstr Directory_GetNext (Directory*); - bool Directory_Change (cstr cwd); - bool Directory_Create (cstr path); - cstr Directory_GetCurrent (); - cstr Directory_GetPrefPath (cstr org, cstr app); - bool Directory_Remove (cstr path); - ]] -end - -do -- Global Symbol Table - Directory = { - Free = libphx.Directory_Free, - Open = libphx.Directory_Open, - GetNext = libphx.Directory_GetNext, - Change = libphx.Directory_Change, - Create = libphx.Directory_Create, - GetCurrent = libphx.Directory_GetCurrent, - GetPrefPath = libphx.Directory_GetPrefPath, - Remove = libphx.Directory_Remove, - } - - if onDef_Directory then onDef_Directory(Directory, mt) end - Directory = setmetatable(Directory, mt) -end - -do -- Metatype for class instances - local t = ffi.typeof('Directory') - local mt = { - __index = { - managed = function(self) return ffi.gc(self, libphx.Directory_Free) end, - free = libphx.Directory_Free, - getNext = libphx.Directory_GetNext, - }, - } - - if onDef_Directory_t then onDef_Directory_t(t, mt) end - Directory_t = ffi.metatype(t, mt) -end - -return Directory diff --git a/engine/lib/phx/script/ffi/DragAndDropEvent.lua b/engine/lib/phx/script/ffi/DragAndDropEvent.lua deleted file mode 100644 index deef49466..000000000 --- a/engine/lib/phx/script/ffi/DragAndDropEvent.lua +++ /dev/null @@ -1,29 +0,0 @@ --- DragAndDropEvent ------------------------------------------------------------ -local ffi = require('ffi') -local libphx = require('ffi.libphx').lib -local DragAndDropEvent - -do -- C Definitions - ffi.cdef [[ - DragAndDropEvent DragAndDropEvent_DroppedFile; - DragAndDropEvent DragAndDropEvent_HoveredFile; - DragAndDropEvent DragAndDropEvent_HoveredFileCancelled; - - cstr DragAndDropEvent_ToString(DragAndDropEvent); - ]] -end - -do -- Global Symbol Table - DragAndDropEvent = { - DroppedFile = libphx.DragAndDropEvent_DroppedFile, - HoveredFile = libphx.DragAndDropEvent_HoveredFile, - HoveredFileCancelled = libphx.DragAndDropEvent_HoveredFileCancelled, - - ToString = libphx.DragAndDropEvent_ToString, - } - - if onDef_DragAndDropEvent then onDef_DragAndDropEvent(DragAndDropEvent, mt) end - DragAndDropEvent = setmetatable(DragAndDropEvent, mt) -end - -return DragAndDropEvent diff --git a/engine/lib/phx/script/ffi/DragAndDropState.lua b/engine/lib/phx/script/ffi/DragAndDropState.lua deleted file mode 100644 index 8eb289372..000000000 --- a/engine/lib/phx/script/ffi/DragAndDropState.lua +++ /dev/null @@ -1,39 +0,0 @@ --- DragAndDropState ------------------------------------------------------------ -local ffi = require('ffi') -local libphx = require('ffi.libphx').lib -local DragAndDropState - -do -- C Definitions - ffi.cdef [[ - cstr DragAndDropState_GetDroppedFile (DragAndDropState const*); - cstr DragAndDropState_GetHoveredFile (DragAndDropState const*); - bool DragAndDropState_IfHoveredFileCancelled (DragAndDropState const*); - ]] -end - -do -- Global Symbol Table - DragAndDropState = { - GetDroppedFile = libphx.DragAndDropState_GetDroppedFile, - GetHoveredFile = libphx.DragAndDropState_GetHoveredFile, - IfHoveredFileCancelled = libphx.DragAndDropState_IfHoveredFileCancelled, - } - - if onDef_DragAndDropState then onDef_DragAndDropState(DragAndDropState, mt) end - DragAndDropState = setmetatable(DragAndDropState, mt) -end - -do -- Metatype for class instances - local t = ffi.typeof('DragAndDropState') - local mt = { - __index = { - getDroppedFile = libphx.DragAndDropState_GetDroppedFile, - getHoveredFile = libphx.DragAndDropState_GetHoveredFile, - ifHoveredFileCancelled = libphx.DragAndDropState_IfHoveredFileCancelled, - }, - } - - if onDef_DragAndDropState_t then onDef_DragAndDropState_t(t, mt) end - DragAndDropState_t = ffi.metatype(t, mt) -end - -return DragAndDropState diff --git a/engine/lib/phx/script/ffi/Engine.lua b/engine/lib/phx/script/ffi/Engine.lua deleted file mode 100644 index f2b4deb8e..000000000 --- a/engine/lib/phx/script/ffi/Engine.lua +++ /dev/null @@ -1,54 +0,0 @@ --- Engine ---------------------------------------------------------------------- -local ffi = require('ffi') -local libphx = require('ffi.libphx').lib -local Engine - -do -- C Definitions - ffi.cdef [[ - Window* Engine_Window (Engine*); - Input* Engine_Input (Engine*); - void Engine_Free (); - void Engine_Abort (); - int Engine_GetBits (); - double Engine_GetTime (Engine const*); - cstr Engine_GetVersion (); - void Engine_Exit (Engine*); - void Engine_Terminate (); - void Engine_Update (); - ]] -end - -do -- Global Symbol Table - Engine = { - Window = libphx.Engine_Window, - Input = libphx.Engine_Input, - Free = libphx.Engine_Free, - Abort = libphx.Engine_Abort, - GetBits = libphx.Engine_GetBits, - GetTime = libphx.Engine_GetTime, - GetVersion = libphx.Engine_GetVersion, - Exit = libphx.Engine_Exit, - Terminate = libphx.Engine_Terminate, - Update = libphx.Engine_Update, - } - - if onDef_Engine then onDef_Engine(Engine, mt) end - Engine = setmetatable(Engine, mt) -end - -do -- Metatype for class instances - local t = ffi.typeof('Engine') - local mt = { - __index = { - window = libphx.Engine_Window, - input = libphx.Engine_Input, - getTime = libphx.Engine_GetTime, - exit = libphx.Engine_Exit, - }, - } - - if onDef_Engine_t then onDef_Engine_t(t, mt) end - Engine_t = ffi.metatype(t, mt) -end - -return Engine diff --git a/engine/lib/phx/script/ffi/GamepadAxis.lua b/engine/lib/phx/script/ffi/GamepadAxis.lua deleted file mode 100644 index aa15c7794..000000000 --- a/engine/lib/phx/script/ffi/GamepadAxis.lua +++ /dev/null @@ -1,35 +0,0 @@ --- GamepadAxis ----------------------------------------------------------------- -local ffi = require('ffi') -local libphx = require('ffi.libphx').lib -local GamepadAxis - -do -- C Definitions - ffi.cdef [[ - GamepadAxis GamepadAxis_LeftStickX; - GamepadAxis GamepadAxis_LeftStickY; - GamepadAxis GamepadAxis_LeftZ; - GamepadAxis GamepadAxis_RightStickX; - GamepadAxis GamepadAxis_RightStickY; - GamepadAxis GamepadAxis_RightZ; - - cstr GamepadAxis_ToString(GamepadAxis); - ]] -end - -do -- Global Symbol Table - GamepadAxis = { - LeftStickX = libphx.GamepadAxis_LeftStickX, - LeftStickY = libphx.GamepadAxis_LeftStickY, - LeftZ = libphx.GamepadAxis_LeftZ, - RightStickX = libphx.GamepadAxis_RightStickX, - RightStickY = libphx.GamepadAxis_RightStickY, - RightZ = libphx.GamepadAxis_RightZ, - - ToString = libphx.GamepadAxis_ToString, - } - - if onDef_GamepadAxis then onDef_GamepadAxis(GamepadAxis, mt) end - GamepadAxis = setmetatable(GamepadAxis, mt) -end - -return GamepadAxis diff --git a/engine/lib/phx/script/ffi/GamepadButton.lua b/engine/lib/phx/script/ffi/GamepadButton.lua deleted file mode 100644 index 375ebf65d..000000000 --- a/engine/lib/phx/script/ffi/GamepadButton.lua +++ /dev/null @@ -1,61 +0,0 @@ --- GamepadButton --------------------------------------------------------------- -local ffi = require('ffi') -local libphx = require('ffi.libphx').lib -local GamepadButton - -do -- C Definitions - ffi.cdef [[ - GamepadButton GamepadButton_South; - GamepadButton GamepadButton_East; - GamepadButton GamepadButton_North; - GamepadButton GamepadButton_West; - GamepadButton GamepadButton_C; - GamepadButton GamepadButton_Z; - GamepadButton GamepadButton_LeftTrigger; - GamepadButton GamepadButton_LeftTrigger2; - GamepadButton GamepadButton_RightTrigger; - GamepadButton GamepadButton_RightTrigger2; - GamepadButton GamepadButton_Select; - GamepadButton GamepadButton_Start; - GamepadButton GamepadButton_Mode; - GamepadButton GamepadButton_LeftThumb; - GamepadButton GamepadButton_RightThumb; - GamepadButton GamepadButton_DPadUp; - GamepadButton GamepadButton_DPadDown; - GamepadButton GamepadButton_DPadLeft; - GamepadButton GamepadButton_DPadRight; - - cstr GamepadButton_ToString(GamepadButton); - ]] -end - -do -- Global Symbol Table - GamepadButton = { - South = libphx.GamepadButton_South, - East = libphx.GamepadButton_East, - North = libphx.GamepadButton_North, - West = libphx.GamepadButton_West, - C = libphx.GamepadButton_C, - Z = libphx.GamepadButton_Z, - LeftTrigger = libphx.GamepadButton_LeftTrigger, - LeftTrigger2 = libphx.GamepadButton_LeftTrigger2, - RightTrigger = libphx.GamepadButton_RightTrigger, - RightTrigger2 = libphx.GamepadButton_RightTrigger2, - Select = libphx.GamepadButton_Select, - Start = libphx.GamepadButton_Start, - Mode = libphx.GamepadButton_Mode, - LeftThumb = libphx.GamepadButton_LeftThumb, - RightThumb = libphx.GamepadButton_RightThumb, - DPadUp = libphx.GamepadButton_DPadUp, - DPadDown = libphx.GamepadButton_DPadDown, - DPadLeft = libphx.GamepadButton_DPadLeft, - DPadRight = libphx.GamepadButton_DPadRight, - - ToString = libphx.GamepadButton_ToString, - } - - if onDef_GamepadButton then onDef_GamepadButton(GamepadButton, mt) end - GamepadButton = setmetatable(GamepadButton, mt) -end - -return GamepadButton diff --git a/engine/lib/phx/script/ffi/GamepadState.lua b/engine/lib/phx/script/ffi/GamepadState.lua deleted file mode 100644 index 6bc24dfaa..000000000 --- a/engine/lib/phx/script/ffi/GamepadState.lua +++ /dev/null @@ -1,63 +0,0 @@ --- GamepadState ---------------------------------------------------------------- -local ffi = require('ffi') -local libphx = require('ffi.libphx').lib -local GamepadState - -do -- C Definitions - ffi.cdef [[ - uint64 GamepadState_GamepadsCount (GamepadState const*); - GamepadId const* GamepadState_GamepadId (GamepadState const*, uint64 index); - cstr GamepadState_GamepadName (GamepadState const*, GamepadId gamepadId); - float GamepadState_Value (GamepadState const*, GamepadAxis axis); - bool GamepadState_IsPressed (GamepadState const*, GamepadButton button); - bool GamepadState_IsDown (GamepadState const*, GamepadButton button); - bool GamepadState_IsReleased (GamepadState const*, GamepadButton button); - float GamepadState_ValueById (GamepadState const*, GamepadId gamepadId, GamepadAxis axis); - bool GamepadState_IsPressedById (GamepadState const*, GamepadId gamepadId, GamepadButton button); - bool GamepadState_IsDownById (GamepadState const*, GamepadId gamepadId, GamepadButton button); - bool GamepadState_IsReleasedById (GamepadState const*, GamepadId gamepadId, GamepadButton button); - ]] -end - -do -- Global Symbol Table - GamepadState = { - GamepadsCount = libphx.GamepadState_GamepadsCount, - GamepadId = libphx.GamepadState_GamepadId, - GamepadName = libphx.GamepadState_GamepadName, - Value = libphx.GamepadState_Value, - IsPressed = libphx.GamepadState_IsPressed, - IsDown = libphx.GamepadState_IsDown, - IsReleased = libphx.GamepadState_IsReleased, - ValueById = libphx.GamepadState_ValueById, - IsPressedById = libphx.GamepadState_IsPressedById, - IsDownById = libphx.GamepadState_IsDownById, - IsReleasedById = libphx.GamepadState_IsReleasedById, - } - - if onDef_GamepadState then onDef_GamepadState(GamepadState, mt) end - GamepadState = setmetatable(GamepadState, mt) -end - -do -- Metatype for class instances - local t = ffi.typeof('GamepadState') - local mt = { - __index = { - gamepadsCount = libphx.GamepadState_GamepadsCount, - gamepadId = libphx.GamepadState_GamepadId, - gamepadName = libphx.GamepadState_GamepadName, - value = libphx.GamepadState_Value, - isPressed = libphx.GamepadState_IsPressed, - isDown = libphx.GamepadState_IsDown, - isReleased = libphx.GamepadState_IsReleased, - valueById = libphx.GamepadState_ValueById, - isPressedById = libphx.GamepadState_IsPressedById, - isDownById = libphx.GamepadState_IsDownById, - isReleasedById = libphx.GamepadState_IsReleasedById, - }, - } - - if onDef_GamepadState_t then onDef_GamepadState_t(t, mt) end - GamepadState_t = ffi.metatype(t, mt) -end - -return GamepadState diff --git a/engine/lib/phx/script/ffi/Input.lua b/engine/lib/phx/script/ffi/Input.lua deleted file mode 100644 index d6f7bfeeb..000000000 --- a/engine/lib/phx/script/ffi/Input.lua +++ /dev/null @@ -1,84 +0,0 @@ --- Input ----------------------------------------------------------------------- -local ffi = require('ffi') -local libphx = require('ffi.libphx').lib -local Input - -do -- C Definitions - ffi.cdef [[ - KeyboardState const* Input_Keyboard (Input const*); - MouseState const* Input_Mouse (Input const*); - TouchpadState const* Input_Touchpad (Input const*); - GamepadState const* Input_Gamepad (Input const*); - DragAndDropState const* Input_DragAndDrop (Input const*); - InputDevice const* Input_ActiveDevice (Input const*); - InputDeviceType const* Input_ActiveDeviceType (Input const*); - InputDeviceId const* Input_ActiveDeviceId (Input const*); - void Input_SetCursorVisible (Input*, bool visible); - void Input_SetCursorVisibleAuto (Input*); - void Input_SetCursorPosition (Input*, float x, float y); - bool Input_IsPressed (Input const*, Button button); - bool Input_IsDown (Input const*, Button button); - bool Input_IsReleased (Input const*, Button button); - float Input_GetValue (Input const*, Button button); - bool Input_IsKeyboardAltPressed (Input const*); - bool Input_IsKeyboardCtrlPressed (Input const*); - bool Input_IsKeyboardShiftPressed (Input const*); - ]] -end - -do -- Global Symbol Table - Input = { - Keyboard = libphx.Input_Keyboard, - Mouse = libphx.Input_Mouse, - Touchpad = libphx.Input_Touchpad, - Gamepad = libphx.Input_Gamepad, - DragAndDrop = libphx.Input_DragAndDrop, - ActiveDevice = libphx.Input_ActiveDevice, - ActiveDeviceType = libphx.Input_ActiveDeviceType, - ActiveDeviceId = libphx.Input_ActiveDeviceId, - SetCursorVisible = libphx.Input_SetCursorVisible, - SetCursorVisibleAuto = libphx.Input_SetCursorVisibleAuto, - SetCursorPosition = libphx.Input_SetCursorPosition, - IsPressed = libphx.Input_IsPressed, - IsDown = libphx.Input_IsDown, - IsReleased = libphx.Input_IsReleased, - GetValue = libphx.Input_GetValue, - IsKeyboardAltPressed = libphx.Input_IsKeyboardAltPressed, - IsKeyboardCtrlPressed = libphx.Input_IsKeyboardCtrlPressed, - IsKeyboardShiftPressed = libphx.Input_IsKeyboardShiftPressed, - } - - if onDef_Input then onDef_Input(Input, mt) end - Input = setmetatable(Input, mt) -end - -do -- Metatype for class instances - local t = ffi.typeof('Input') - local mt = { - __index = { - keyboard = libphx.Input_Keyboard, - mouse = libphx.Input_Mouse, - touchpad = libphx.Input_Touchpad, - gamepad = libphx.Input_Gamepad, - dragAndDrop = libphx.Input_DragAndDrop, - activeDevice = libphx.Input_ActiveDevice, - activeDeviceType = libphx.Input_ActiveDeviceType, - activeDeviceId = libphx.Input_ActiveDeviceId, - setCursorVisible = libphx.Input_SetCursorVisible, - setCursorVisibleAuto = libphx.Input_SetCursorVisibleAuto, - setCursorPosition = libphx.Input_SetCursorPosition, - isPressed = libphx.Input_IsPressed, - isDown = libphx.Input_IsDown, - isReleased = libphx.Input_IsReleased, - getValue = libphx.Input_GetValue, - isKeyboardAltPressed = libphx.Input_IsKeyboardAltPressed, - isKeyboardCtrlPressed = libphx.Input_IsKeyboardCtrlPressed, - isKeyboardShiftPressed = libphx.Input_IsKeyboardShiftPressed, - }, - } - - if onDef_Input_t then onDef_Input_t(t, mt) end - Input_t = ffi.metatype(t, mt) -end - -return Input diff --git a/engine/lib/phx/script/ffi/InputDevice.lua b/engine/lib/phx/script/ffi/InputDevice.lua deleted file mode 100644 index ff8510d5d..000000000 --- a/engine/lib/phx/script/ffi/InputDevice.lua +++ /dev/null @@ -1,42 +0,0 @@ --- InputDevice ----------------------------------------------------------------- -local ffi = require('ffi') -local libphx = require('ffi.libphx').lib -local InputDevice - -do -- C Definitions - ffi.cdef [[ - bool InputDevice_Equal (InputDevice const*, InputDevice const* other); - cstr InputDevice_ToString (InputDevice const*); - ]] -end - -do -- Global Symbol Table - InputDevice = { - Equal = libphx.InputDevice_Equal, - ToString = libphx.InputDevice_ToString, - } - - local mt = { - __call = function(t, ...) return InputDevice_t(...) end, - } - - if onDef_InputDevice then onDef_InputDevice(InputDevice, mt) end - InputDevice = setmetatable(InputDevice, mt) -end - -do -- Metatype for class instances - local t = ffi.typeof('InputDevice') - local mt = { - __tostring = function(self) return ffi.string(libphx.InputDevice_ToString(self)) end, - __index = { - clone = function(x) return InputDevice_t(x) end, - equal = libphx.InputDevice_Equal, - toString = libphx.InputDevice_ToString, - }, - } - - if onDef_InputDevice_t then onDef_InputDevice_t(t, mt) end - InputDevice_t = ffi.metatype(t, mt) -end - -return InputDevice diff --git a/engine/lib/phx/script/ffi/InputDeviceId.lua b/engine/lib/phx/script/ffi/InputDeviceId.lua deleted file mode 100644 index 0bca1b188..000000000 --- a/engine/lib/phx/script/ffi/InputDeviceId.lua +++ /dev/null @@ -1,34 +0,0 @@ --- InputDeviceId --------------------------------------------------------------- -local ffi = require('ffi') -local libphx = require('ffi.libphx').lib -local InputDeviceId - -do -- C Definitions - ffi.cdef [[ - cstr InputDeviceId_ToString (InputDeviceId const*); - ]] -end - -do -- Global Symbol Table - InputDeviceId = { - ToString = libphx.InputDeviceId_ToString, - } - - if onDef_InputDeviceId then onDef_InputDeviceId(InputDeviceId, mt) end - InputDeviceId = setmetatable(InputDeviceId, mt) -end - -do -- Metatype for class instances - local t = ffi.typeof('InputDeviceId') - local mt = { - __tostring = function(self) return ffi.string(libphx.InputDeviceId_ToString(self)) end, - __index = { - toString = libphx.InputDeviceId_ToString, - }, - } - - if onDef_InputDeviceId_t then onDef_InputDeviceId_t(t, mt) end - InputDeviceId_t = ffi.metatype(t, mt) -end - -return InputDeviceId diff --git a/engine/lib/phx/script/ffi/InputDeviceType.lua b/engine/lib/phx/script/ffi/InputDeviceType.lua deleted file mode 100644 index b555ca378..000000000 --- a/engine/lib/phx/script/ffi/InputDeviceType.lua +++ /dev/null @@ -1,35 +0,0 @@ --- InputDeviceType ------------------------------------------------------------- -local ffi = require('ffi') -local libphx = require('ffi.libphx').lib -local InputDeviceType - -do -- C Definitions - ffi.cdef [[ - InputDeviceType InputDeviceType_Cursor; - InputDeviceType InputDeviceType_Gamepad; - InputDeviceType InputDeviceType_Keyboard; - InputDeviceType InputDeviceType_Mouse; - InputDeviceType InputDeviceType_Touchpad; - InputDeviceType InputDeviceType_SystemEvent; - - cstr InputDeviceType_ToString(InputDeviceType); - ]] -end - -do -- Global Symbol Table - InputDeviceType = { - Cursor = libphx.InputDeviceType_Cursor, - Gamepad = libphx.InputDeviceType_Gamepad, - Keyboard = libphx.InputDeviceType_Keyboard, - Mouse = libphx.InputDeviceType_Mouse, - Touchpad = libphx.InputDeviceType_Touchpad, - SystemEvent = libphx.InputDeviceType_SystemEvent, - - ToString = libphx.InputDeviceType_ToString, - } - - if onDef_InputDeviceType then onDef_InputDeviceType(InputDeviceType, mt) end - InputDeviceType = setmetatable(InputDeviceType, mt) -end - -return InputDeviceType diff --git a/engine/lib/phx/script/ffi/KeyboardButton.lua b/engine/lib/phx/script/ffi/KeyboardButton.lua deleted file mode 100644 index 7609ff4be..000000000 --- a/engine/lib/phx/script/ffi/KeyboardButton.lua +++ /dev/null @@ -1,349 +0,0 @@ --- KeyboardButton -------------------------------------------------------------- -local ffi = require('ffi') -local libphx = require('ffi.libphx').lib -local KeyboardButton - -do -- C Definitions - ffi.cdef [[ - KeyboardButton KeyboardButton_Key1; - KeyboardButton KeyboardButton_Key2; - KeyboardButton KeyboardButton_Key3; - KeyboardButton KeyboardButton_Key4; - KeyboardButton KeyboardButton_Key5; - KeyboardButton KeyboardButton_Key6; - KeyboardButton KeyboardButton_Key7; - KeyboardButton KeyboardButton_Key8; - KeyboardButton KeyboardButton_Key9; - KeyboardButton KeyboardButton_Key0; - KeyboardButton KeyboardButton_A; - KeyboardButton KeyboardButton_B; - KeyboardButton KeyboardButton_C; - KeyboardButton KeyboardButton_D; - KeyboardButton KeyboardButton_E; - KeyboardButton KeyboardButton_F; - KeyboardButton KeyboardButton_G; - KeyboardButton KeyboardButton_H; - KeyboardButton KeyboardButton_I; - KeyboardButton KeyboardButton_J; - KeyboardButton KeyboardButton_K; - KeyboardButton KeyboardButton_L; - KeyboardButton KeyboardButton_M; - KeyboardButton KeyboardButton_N; - KeyboardButton KeyboardButton_O; - KeyboardButton KeyboardButton_P; - KeyboardButton KeyboardButton_Q; - KeyboardButton KeyboardButton_R; - KeyboardButton KeyboardButton_S; - KeyboardButton KeyboardButton_T; - KeyboardButton KeyboardButton_U; - KeyboardButton KeyboardButton_V; - KeyboardButton KeyboardButton_W; - KeyboardButton KeyboardButton_X; - KeyboardButton KeyboardButton_Y; - KeyboardButton KeyboardButton_Z; - KeyboardButton KeyboardButton_Escape; - KeyboardButton KeyboardButton_F1; - KeyboardButton KeyboardButton_F2; - KeyboardButton KeyboardButton_F3; - KeyboardButton KeyboardButton_F4; - KeyboardButton KeyboardButton_F5; - KeyboardButton KeyboardButton_F6; - KeyboardButton KeyboardButton_F7; - KeyboardButton KeyboardButton_F8; - KeyboardButton KeyboardButton_F9; - KeyboardButton KeyboardButton_F10; - KeyboardButton KeyboardButton_F11; - KeyboardButton KeyboardButton_F12; - KeyboardButton KeyboardButton_F13; - KeyboardButton KeyboardButton_F14; - KeyboardButton KeyboardButton_F15; - KeyboardButton KeyboardButton_F16; - KeyboardButton KeyboardButton_F17; - KeyboardButton KeyboardButton_F18; - KeyboardButton KeyboardButton_F19; - KeyboardButton KeyboardButton_F20; - KeyboardButton KeyboardButton_F21; - KeyboardButton KeyboardButton_F22; - KeyboardButton KeyboardButton_F23; - KeyboardButton KeyboardButton_F24; - KeyboardButton KeyboardButton_Snapshot; - KeyboardButton KeyboardButton_Scroll; - KeyboardButton KeyboardButton_Pause; - KeyboardButton KeyboardButton_Insert; - KeyboardButton KeyboardButton_Home; - KeyboardButton KeyboardButton_Delete; - KeyboardButton KeyboardButton_End; - KeyboardButton KeyboardButton_PageDown; - KeyboardButton KeyboardButton_PageUp; - KeyboardButton KeyboardButton_Left; - KeyboardButton KeyboardButton_Up; - KeyboardButton KeyboardButton_Right; - KeyboardButton KeyboardButton_Down; - KeyboardButton KeyboardButton_Back; - KeyboardButton KeyboardButton_Return; - KeyboardButton KeyboardButton_Space; - KeyboardButton KeyboardButton_Compose; - KeyboardButton KeyboardButton_Caret; - KeyboardButton KeyboardButton_Numlock; - KeyboardButton KeyboardButton_Numpad0; - KeyboardButton KeyboardButton_Numpad1; - KeyboardButton KeyboardButton_Numpad2; - KeyboardButton KeyboardButton_Numpad3; - KeyboardButton KeyboardButton_Numpad4; - KeyboardButton KeyboardButton_Numpad5; - KeyboardButton KeyboardButton_Numpad6; - KeyboardButton KeyboardButton_Numpad7; - KeyboardButton KeyboardButton_Numpad8; - KeyboardButton KeyboardButton_Numpad9; - KeyboardButton KeyboardButton_AbntC1; - KeyboardButton KeyboardButton_AbntC2; - KeyboardButton KeyboardButton_NumpadAdd; - KeyboardButton KeyboardButton_Apostrophe; - KeyboardButton KeyboardButton_Apps; - KeyboardButton KeyboardButton_Asterisk; - KeyboardButton KeyboardButton_Plus; - KeyboardButton KeyboardButton_At; - KeyboardButton KeyboardButton_Ax; - KeyboardButton KeyboardButton_Backslash; - KeyboardButton KeyboardButton_Calculator; - KeyboardButton KeyboardButton_Capital; - KeyboardButton KeyboardButton_Colon; - KeyboardButton KeyboardButton_Comma; - KeyboardButton KeyboardButton_Convert; - KeyboardButton KeyboardButton_NumpadDecimal; - KeyboardButton KeyboardButton_NumpadDivide; - KeyboardButton KeyboardButton_Equals; - KeyboardButton KeyboardButton_Grave; - KeyboardButton KeyboardButton_Kana; - KeyboardButton KeyboardButton_Kanji; - KeyboardButton KeyboardButton_AltLeft; - KeyboardButton KeyboardButton_BracketLeft; - KeyboardButton KeyboardButton_ControlLeft; - KeyboardButton KeyboardButton_ShiftLeft; - KeyboardButton KeyboardButton_SuperLeft; - KeyboardButton KeyboardButton_Mail; - KeyboardButton KeyboardButton_MediaSelect; - KeyboardButton KeyboardButton_MediaStop; - KeyboardButton KeyboardButton_Minus; - KeyboardButton KeyboardButton_NumpadMultiply; - KeyboardButton KeyboardButton_Mute; - KeyboardButton KeyboardButton_MyComputer; - KeyboardButton KeyboardButton_NavigateForward; - KeyboardButton KeyboardButton_NavigateBackward; - KeyboardButton KeyboardButton_NextTrack; - KeyboardButton KeyboardButton_NoConvert; - KeyboardButton KeyboardButton_NumpadComma; - KeyboardButton KeyboardButton_NumpadEnter; - KeyboardButton KeyboardButton_NumpadEquals; - KeyboardButton KeyboardButton_Oem102; - KeyboardButton KeyboardButton_Period; - KeyboardButton KeyboardButton_PlayPause; - KeyboardButton KeyboardButton_Power; - KeyboardButton KeyboardButton_PrevTrack; - KeyboardButton KeyboardButton_AltRight; - KeyboardButton KeyboardButton_BracketRight; - KeyboardButton KeyboardButton_ControlRight; - KeyboardButton KeyboardButton_ShiftRight; - KeyboardButton KeyboardButton_SuperRight; - KeyboardButton KeyboardButton_Semicolon; - KeyboardButton KeyboardButton_Slash; - KeyboardButton KeyboardButton_Sleep; - KeyboardButton KeyboardButton_Stop; - KeyboardButton KeyboardButton_NumpadSubtract; - KeyboardButton KeyboardButton_Sysrq; - KeyboardButton KeyboardButton_Tab; - KeyboardButton KeyboardButton_Underline; - KeyboardButton KeyboardButton_Unlabeled; - KeyboardButton KeyboardButton_VolumeDown; - KeyboardButton KeyboardButton_VolumeUp; - KeyboardButton KeyboardButton_Wake; - KeyboardButton KeyboardButton_WebBack; - KeyboardButton KeyboardButton_WebFavorites; - KeyboardButton KeyboardButton_WebForward; - KeyboardButton KeyboardButton_WebHome; - KeyboardButton KeyboardButton_WebRefresh; - KeyboardButton KeyboardButton_WebSearch; - KeyboardButton KeyboardButton_WebStop; - KeyboardButton KeyboardButton_Yen; - KeyboardButton KeyboardButton_Copy; - KeyboardButton KeyboardButton_Paste; - KeyboardButton KeyboardButton_Cut; - - cstr KeyboardButton_ToString(KeyboardButton); - ]] -end - -do -- Global Symbol Table - KeyboardButton = { - Key1 = libphx.KeyboardButton_Key1, - Key2 = libphx.KeyboardButton_Key2, - Key3 = libphx.KeyboardButton_Key3, - Key4 = libphx.KeyboardButton_Key4, - Key5 = libphx.KeyboardButton_Key5, - Key6 = libphx.KeyboardButton_Key6, - Key7 = libphx.KeyboardButton_Key7, - Key8 = libphx.KeyboardButton_Key8, - Key9 = libphx.KeyboardButton_Key9, - Key0 = libphx.KeyboardButton_Key0, - A = libphx.KeyboardButton_A, - B = libphx.KeyboardButton_B, - C = libphx.KeyboardButton_C, - D = libphx.KeyboardButton_D, - E = libphx.KeyboardButton_E, - F = libphx.KeyboardButton_F, - G = libphx.KeyboardButton_G, - H = libphx.KeyboardButton_H, - I = libphx.KeyboardButton_I, - J = libphx.KeyboardButton_J, - K = libphx.KeyboardButton_K, - L = libphx.KeyboardButton_L, - M = libphx.KeyboardButton_M, - N = libphx.KeyboardButton_N, - O = libphx.KeyboardButton_O, - P = libphx.KeyboardButton_P, - Q = libphx.KeyboardButton_Q, - R = libphx.KeyboardButton_R, - S = libphx.KeyboardButton_S, - T = libphx.KeyboardButton_T, - U = libphx.KeyboardButton_U, - V = libphx.KeyboardButton_V, - W = libphx.KeyboardButton_W, - X = libphx.KeyboardButton_X, - Y = libphx.KeyboardButton_Y, - Z = libphx.KeyboardButton_Z, - Escape = libphx.KeyboardButton_Escape, - F1 = libphx.KeyboardButton_F1, - F2 = libphx.KeyboardButton_F2, - F3 = libphx.KeyboardButton_F3, - F4 = libphx.KeyboardButton_F4, - F5 = libphx.KeyboardButton_F5, - F6 = libphx.KeyboardButton_F6, - F7 = libphx.KeyboardButton_F7, - F8 = libphx.KeyboardButton_F8, - F9 = libphx.KeyboardButton_F9, - F10 = libphx.KeyboardButton_F10, - F11 = libphx.KeyboardButton_F11, - F12 = libphx.KeyboardButton_F12, - F13 = libphx.KeyboardButton_F13, - F14 = libphx.KeyboardButton_F14, - F15 = libphx.KeyboardButton_F15, - F16 = libphx.KeyboardButton_F16, - F17 = libphx.KeyboardButton_F17, - F18 = libphx.KeyboardButton_F18, - F19 = libphx.KeyboardButton_F19, - F20 = libphx.KeyboardButton_F20, - F21 = libphx.KeyboardButton_F21, - F22 = libphx.KeyboardButton_F22, - F23 = libphx.KeyboardButton_F23, - F24 = libphx.KeyboardButton_F24, - Snapshot = libphx.KeyboardButton_Snapshot, - Scroll = libphx.KeyboardButton_Scroll, - Pause = libphx.KeyboardButton_Pause, - Insert = libphx.KeyboardButton_Insert, - Home = libphx.KeyboardButton_Home, - Delete = libphx.KeyboardButton_Delete, - End = libphx.KeyboardButton_End, - PageDown = libphx.KeyboardButton_PageDown, - PageUp = libphx.KeyboardButton_PageUp, - Left = libphx.KeyboardButton_Left, - Up = libphx.KeyboardButton_Up, - Right = libphx.KeyboardButton_Right, - Down = libphx.KeyboardButton_Down, - Back = libphx.KeyboardButton_Back, - Return = libphx.KeyboardButton_Return, - Space = libphx.KeyboardButton_Space, - Compose = libphx.KeyboardButton_Compose, - Caret = libphx.KeyboardButton_Caret, - Numlock = libphx.KeyboardButton_Numlock, - Numpad0 = libphx.KeyboardButton_Numpad0, - Numpad1 = libphx.KeyboardButton_Numpad1, - Numpad2 = libphx.KeyboardButton_Numpad2, - Numpad3 = libphx.KeyboardButton_Numpad3, - Numpad4 = libphx.KeyboardButton_Numpad4, - Numpad5 = libphx.KeyboardButton_Numpad5, - Numpad6 = libphx.KeyboardButton_Numpad6, - Numpad7 = libphx.KeyboardButton_Numpad7, - Numpad8 = libphx.KeyboardButton_Numpad8, - Numpad9 = libphx.KeyboardButton_Numpad9, - AbntC1 = libphx.KeyboardButton_AbntC1, - AbntC2 = libphx.KeyboardButton_AbntC2, - NumpadAdd = libphx.KeyboardButton_NumpadAdd, - Apostrophe = libphx.KeyboardButton_Apostrophe, - Apps = libphx.KeyboardButton_Apps, - Asterisk = libphx.KeyboardButton_Asterisk, - Plus = libphx.KeyboardButton_Plus, - At = libphx.KeyboardButton_At, - Ax = libphx.KeyboardButton_Ax, - Backslash = libphx.KeyboardButton_Backslash, - Calculator = libphx.KeyboardButton_Calculator, - Capital = libphx.KeyboardButton_Capital, - Colon = libphx.KeyboardButton_Colon, - Comma = libphx.KeyboardButton_Comma, - Convert = libphx.KeyboardButton_Convert, - NumpadDecimal = libphx.KeyboardButton_NumpadDecimal, - NumpadDivide = libphx.KeyboardButton_NumpadDivide, - Equals = libphx.KeyboardButton_Equals, - Grave = libphx.KeyboardButton_Grave, - Kana = libphx.KeyboardButton_Kana, - Kanji = libphx.KeyboardButton_Kanji, - AltLeft = libphx.KeyboardButton_AltLeft, - BracketLeft = libphx.KeyboardButton_BracketLeft, - ControlLeft = libphx.KeyboardButton_ControlLeft, - ShiftLeft = libphx.KeyboardButton_ShiftLeft, - SuperLeft = libphx.KeyboardButton_SuperLeft, - Mail = libphx.KeyboardButton_Mail, - MediaSelect = libphx.KeyboardButton_MediaSelect, - MediaStop = libphx.KeyboardButton_MediaStop, - Minus = libphx.KeyboardButton_Minus, - NumpadMultiply = libphx.KeyboardButton_NumpadMultiply, - Mute = libphx.KeyboardButton_Mute, - MyComputer = libphx.KeyboardButton_MyComputer, - NavigateForward = libphx.KeyboardButton_NavigateForward, - NavigateBackward = libphx.KeyboardButton_NavigateBackward, - NextTrack = libphx.KeyboardButton_NextTrack, - NoConvert = libphx.KeyboardButton_NoConvert, - NumpadComma = libphx.KeyboardButton_NumpadComma, - NumpadEnter = libphx.KeyboardButton_NumpadEnter, - NumpadEquals = libphx.KeyboardButton_NumpadEquals, - Oem102 = libphx.KeyboardButton_Oem102, - Period = libphx.KeyboardButton_Period, - PlayPause = libphx.KeyboardButton_PlayPause, - Power = libphx.KeyboardButton_Power, - PrevTrack = libphx.KeyboardButton_PrevTrack, - AltRight = libphx.KeyboardButton_AltRight, - BracketRight = libphx.KeyboardButton_BracketRight, - ControlRight = libphx.KeyboardButton_ControlRight, - ShiftRight = libphx.KeyboardButton_ShiftRight, - SuperRight = libphx.KeyboardButton_SuperRight, - Semicolon = libphx.KeyboardButton_Semicolon, - Slash = libphx.KeyboardButton_Slash, - Sleep = libphx.KeyboardButton_Sleep, - Stop = libphx.KeyboardButton_Stop, - NumpadSubtract = libphx.KeyboardButton_NumpadSubtract, - Sysrq = libphx.KeyboardButton_Sysrq, - Tab = libphx.KeyboardButton_Tab, - Underline = libphx.KeyboardButton_Underline, - Unlabeled = libphx.KeyboardButton_Unlabeled, - VolumeDown = libphx.KeyboardButton_VolumeDown, - VolumeUp = libphx.KeyboardButton_VolumeUp, - Wake = libphx.KeyboardButton_Wake, - WebBack = libphx.KeyboardButton_WebBack, - WebFavorites = libphx.KeyboardButton_WebFavorites, - WebForward = libphx.KeyboardButton_WebForward, - WebHome = libphx.KeyboardButton_WebHome, - WebRefresh = libphx.KeyboardButton_WebRefresh, - WebSearch = libphx.KeyboardButton_WebSearch, - WebStop = libphx.KeyboardButton_WebStop, - Yen = libphx.KeyboardButton_Yen, - Copy = libphx.KeyboardButton_Copy, - Paste = libphx.KeyboardButton_Paste, - Cut = libphx.KeyboardButton_Cut, - - ToString = libphx.KeyboardButton_ToString, - } - - if onDef_KeyboardButton then onDef_KeyboardButton(KeyboardButton, mt) end - KeyboardButton = setmetatable(KeyboardButton, mt) -end - -return KeyboardButton diff --git a/engine/lib/phx/script/ffi/KeyboardState.lua b/engine/lib/phx/script/ffi/KeyboardState.lua deleted file mode 100644 index e5a6ce214..000000000 --- a/engine/lib/phx/script/ffi/KeyboardState.lua +++ /dev/null @@ -1,51 +0,0 @@ --- KeyboardState --------------------------------------------------------------- -local ffi = require('ffi') -local libphx = require('ffi.libphx').lib -local KeyboardState - -do -- C Definitions - ffi.cdef [[ - bool KeyboardState_IsPressed (KeyboardState const*, KeyboardButton button); - bool KeyboardState_IsDown (KeyboardState const*, KeyboardButton button); - bool KeyboardState_IsReleased (KeyboardState const*, KeyboardButton button); - bool KeyboardState_AltPressed (KeyboardState const*); - bool KeyboardState_CtrlPressed (KeyboardState const*); - bool KeyboardState_ShiftPressed (KeyboardState const*); - float KeyboardState_Value (KeyboardState const*, KeyboardButton button); - ]] -end - -do -- Global Symbol Table - KeyboardState = { - IsPressed = libphx.KeyboardState_IsPressed, - IsDown = libphx.KeyboardState_IsDown, - IsReleased = libphx.KeyboardState_IsReleased, - AltPressed = libphx.KeyboardState_AltPressed, - CtrlPressed = libphx.KeyboardState_CtrlPressed, - ShiftPressed = libphx.KeyboardState_ShiftPressed, - Value = libphx.KeyboardState_Value, - } - - if onDef_KeyboardState then onDef_KeyboardState(KeyboardState, mt) end - KeyboardState = setmetatable(KeyboardState, mt) -end - -do -- Metatype for class instances - local t = ffi.typeof('KeyboardState') - local mt = { - __index = { - isPressed = libphx.KeyboardState_IsPressed, - isDown = libphx.KeyboardState_IsDown, - isReleased = libphx.KeyboardState_IsReleased, - altPressed = libphx.KeyboardState_AltPressed, - ctrlPressed = libphx.KeyboardState_CtrlPressed, - shiftPressed = libphx.KeyboardState_ShiftPressed, - value = libphx.KeyboardState_Value, - }, - } - - if onDef_KeyboardState_t then onDef_KeyboardState_t(t, mt) end - KeyboardState_t = ffi.metatype(t, mt) -end - -return KeyboardState diff --git a/engine/lib/phx/script/ffi/LineSegment.lua b/engine/lib/phx/script/ffi/LineSegment.lua deleted file mode 100644 index 550828fe3..000000000 --- a/engine/lib/phx/script/ffi/LineSegment.lua +++ /dev/null @@ -1,44 +0,0 @@ --- LineSegment ----------------------------------------------------------------- -local ffi = require('ffi') -local libphx = require('ffi.libphx').lib -local LineSegment - -do -- C Definitions - ffi.cdef [[ - void LineSegment_ToRay (LineSegment const*, Ray* out); - void LineSegment_FromRay (Ray const* ray, LineSegment* out); - cstr LineSegment_ToString (LineSegment const*); - ]] -end - -do -- Global Symbol Table - LineSegment = { - ToRay = libphx.LineSegment_ToRay, - FromRay = libphx.LineSegment_FromRay, - ToString = libphx.LineSegment_ToString, - } - - local mt = { - __call = function(t, ...) return LineSegment_t(...) end, - } - - if onDef_LineSegment then onDef_LineSegment(LineSegment, mt) end - LineSegment = setmetatable(LineSegment, mt) -end - -do -- Metatype for class instances - local t = ffi.typeof('LineSegment') - local mt = { - __tostring = function(self) return ffi.string(libphx.LineSegment_ToString(self)) end, - __index = { - clone = function(x) return LineSegment_t(x) end, - toRay = libphx.LineSegment_ToRay, - toString = libphx.LineSegment_ToString, - }, - } - - if onDef_LineSegment_t then onDef_LineSegment_t(t, mt) end - LineSegment_t = ffi.metatype(t, mt) -end - -return LineSegment diff --git a/engine/lib/phx/script/ffi/Logger.lua b/engine/lib/phx/script/ffi/Logger.lua deleted file mode 100644 index 260027676..000000000 --- a/engine/lib/phx/script/ffi/Logger.lua +++ /dev/null @@ -1,29 +0,0 @@ --- Logger ---------------------------------------------------------------------- -local ffi = require('ffi') -local libphx = require('ffi.libphx').lib -local Logger - -do -- C Definitions - ffi.cdef [[ - void Logger_Trace (cstr msg); - void Logger_Debug (cstr msg); - void Logger_Info (cstr msg); - void Logger_Warn (cstr msg); - void Logger_Error (cstr msg); - ]] -end - -do -- Global Symbol Table - Logger = { - Trace = libphx.Logger_Trace, - Debug = libphx.Logger_Debug, - Info = libphx.Logger_Info, - Warn = libphx.Logger_Warn, - Error = libphx.Logger_Error, - } - - if onDef_Logger then onDef_Logger(Logger, mt) end - Logger = setmetatable(Logger, mt) -end - -return Logger diff --git a/engine/lib/phx/script/ffi/MouseControl.lua b/engine/lib/phx/script/ffi/MouseControl.lua deleted file mode 100644 index 40a743a0b..000000000 --- a/engine/lib/phx/script/ffi/MouseControl.lua +++ /dev/null @@ -1,45 +0,0 @@ --- MouseControl ---------------------------------------------------------------- -local ffi = require('ffi') -local libphx = require('ffi.libphx').lib -local MouseControl - -do -- C Definitions - ffi.cdef [[ - MouseControl MouseControl_Left; - MouseControl MouseControl_Middle; - MouseControl MouseControl_Right; - MouseControl MouseControl_X1; - MouseControl MouseControl_X2; - MouseControl MouseControl_DeltaX; - MouseControl MouseControl_DeltaY; - MouseControl MouseControl_ScrollX; - MouseControl MouseControl_ScrollY; - MouseControl MouseControl_ScrollPixelX; - MouseControl MouseControl_ScrollPixelY; - - cstr MouseControl_ToString(MouseControl); - ]] -end - -do -- Global Symbol Table - MouseControl = { - Left = libphx.MouseControl_Left, - Middle = libphx.MouseControl_Middle, - Right = libphx.MouseControl_Right, - X1 = libphx.MouseControl_X1, - X2 = libphx.MouseControl_X2, - DeltaX = libphx.MouseControl_DeltaX, - DeltaY = libphx.MouseControl_DeltaY, - ScrollX = libphx.MouseControl_ScrollX, - ScrollY = libphx.MouseControl_ScrollY, - ScrollPixelX = libphx.MouseControl_ScrollPixelX, - ScrollPixelY = libphx.MouseControl_ScrollPixelY, - - ToString = libphx.MouseControl_ToString, - } - - if onDef_MouseControl then onDef_MouseControl(MouseControl, mt) end - MouseControl = setmetatable(MouseControl, mt) -end - -return MouseControl diff --git a/engine/lib/phx/script/ffi/MouseState.lua b/engine/lib/phx/script/ffi/MouseState.lua deleted file mode 100644 index 74e40656b..000000000 --- a/engine/lib/phx/script/ffi/MouseState.lua +++ /dev/null @@ -1,57 +0,0 @@ --- MouseState ------------------------------------------------------------------ -local ffi = require('ffi') -local libphx = require('ffi.libphx').lib -local MouseState - -do -- C Definitions - ffi.cdef [[ - float MouseState_Value (MouseState const*, MouseControl control); - bool MouseState_IsPressed (MouseState const*, MouseControl control); - bool MouseState_IsDown (MouseState const*, MouseControl control); - bool MouseState_IsReleased (MouseState const*, MouseControl control); - Vec2f MouseState_Delta (MouseState const*); - Vec2f MouseState_Scroll (MouseState const*); - Vec2f MouseState_ScrollPixel (MouseState const*); - Vec2f MouseState_Position (MouseState const*); - bool MouseState_InWindow (MouseState const*); - ]] -end - -do -- Global Symbol Table - MouseState = { - Value = libphx.MouseState_Value, - IsPressed = libphx.MouseState_IsPressed, - IsDown = libphx.MouseState_IsDown, - IsReleased = libphx.MouseState_IsReleased, - Delta = libphx.MouseState_Delta, - Scroll = libphx.MouseState_Scroll, - ScrollPixel = libphx.MouseState_ScrollPixel, - Position = libphx.MouseState_Position, - InWindow = libphx.MouseState_InWindow, - } - - if onDef_MouseState then onDef_MouseState(MouseState, mt) end - MouseState = setmetatable(MouseState, mt) -end - -do -- Metatype for class instances - local t = ffi.typeof('MouseState') - local mt = { - __index = { - value = libphx.MouseState_Value, - isPressed = libphx.MouseState_IsPressed, - isDown = libphx.MouseState_IsDown, - isReleased = libphx.MouseState_IsReleased, - delta = libphx.MouseState_Delta, - scroll = libphx.MouseState_Scroll, - scrollPixel = libphx.MouseState_ScrollPixel, - position = libphx.MouseState_Position, - inWindow = libphx.MouseState_InWindow, - }, - } - - if onDef_MouseState_t then onDef_MouseState_t(t, mt) end - MouseState_t = ffi.metatype(t, mt) -end - -return MouseState diff --git a/engine/lib/phx/script/ffi/PresentMode.lua b/engine/lib/phx/script/ffi/PresentMode.lua deleted file mode 100644 index 90cb94819..000000000 --- a/engine/lib/phx/script/ffi/PresentMode.lua +++ /dev/null @@ -1,33 +0,0 @@ --- PresentMode ----------------------------------------------------------------- -local ffi = require('ffi') -local libphx = require('ffi.libphx').lib -local PresentMode - -do -- C Definitions - ffi.cdef [[ - PresentMode PresentMode_AutoVsync; - PresentMode PresentMode_AutoNoVsync; - PresentMode PresentMode_Immediate; - PresentMode PresentMode_Mailbox; - PresentMode PresentMode_Fifo; - - cstr PresentMode_ToString(PresentMode); - ]] -end - -do -- Global Symbol Table - PresentMode = { - AutoVsync = libphx.PresentMode_AutoVsync, - AutoNoVsync = libphx.PresentMode_AutoNoVsync, - Immediate = libphx.PresentMode_Immediate, - Mailbox = libphx.PresentMode_Mailbox, - Fifo = libphx.PresentMode_Fifo, - - ToString = libphx.PresentMode_ToString, - } - - if onDef_PresentMode then onDef_PresentMode(PresentMode, mt) end - PresentMode = setmetatable(PresentMode, mt) -end - -return PresentMode diff --git a/engine/lib/phx/script/ffi/Sound.lua b/engine/lib/phx/script/ffi/Sound.lua deleted file mode 100644 index 082184031..000000000 --- a/engine/lib/phx/script/ffi/Sound.lua +++ /dev/null @@ -1,72 +0,0 @@ --- Sound ----------------------------------------------------------------------- -local ffi = require('ffi') -local libphx = require('ffi.libphx').lib -local Sound - -do -- C Definitions - ffi.cdef [[ - void Sound_Free (Sound*); - Sound* Sound_Load (cstr path, bool isLooping); - float Sound_GetDuration (Sound const*); - cstr Sound_GetPath (Sound const*); - bool Sound_IsPlaying (Sound const*); - bool Sound_IsPaused (Sound const*); - bool Sound_IsStopped (Sound const*); - void Sound_SetVolume (Sound*, double volume); - void Sound_Pause (Sound*, uint64 fadeMillis); - void Sound_Resume (Sound*, uint64 fadeMillis); - void Sound_Stop (Sound*, uint64 fadeMillis); - void Sound_SetPlayPos (Sound*, double position); - void Sound_MovePlayPos (Sound*, double offset); - void Sound_SetEmitterPos (Sound*, Vec3f const* position); - ]] -end - -do -- Global Symbol Table - Sound = { - Free = libphx.Sound_Free, - Load = libphx.Sound_Load, - GetDuration = libphx.Sound_GetDuration, - GetPath = libphx.Sound_GetPath, - IsPlaying = libphx.Sound_IsPlaying, - IsPaused = libphx.Sound_IsPaused, - IsStopped = libphx.Sound_IsStopped, - SetVolume = libphx.Sound_SetVolume, - Pause = libphx.Sound_Pause, - Resume = libphx.Sound_Resume, - Stop = libphx.Sound_Stop, - SetPlayPos = libphx.Sound_SetPlayPos, - MovePlayPos = libphx.Sound_MovePlayPos, - SetEmitterPos = libphx.Sound_SetEmitterPos, - } - - if onDef_Sound then onDef_Sound(Sound, mt) end - Sound = setmetatable(Sound, mt) -end - -do -- Metatype for class instances - local t = ffi.typeof('Sound') - local mt = { - __index = { - managed = function(self) return ffi.gc(self, libphx.Sound_Free) end, - free = libphx.Sound_Free, - getDuration = libphx.Sound_GetDuration, - getPath = libphx.Sound_GetPath, - isPlaying = libphx.Sound_IsPlaying, - isPaused = libphx.Sound_IsPaused, - isStopped = libphx.Sound_IsStopped, - setVolume = libphx.Sound_SetVolume, - pause = libphx.Sound_Pause, - resume = libphx.Sound_Resume, - stop = libphx.Sound_Stop, - setPlayPos = libphx.Sound_SetPlayPos, - movePlayPos = libphx.Sound_MovePlayPos, - setEmitterPos = libphx.Sound_SetEmitterPos, - }, - } - - if onDef_Sound_t then onDef_Sound_t(t, mt) end - Sound_t = ffi.metatype(t, mt) -end - -return Sound diff --git a/engine/lib/phx/script/ffi/SystemEvent.lua b/engine/lib/phx/script/ffi/SystemEvent.lua deleted file mode 100644 index 99ab86882..000000000 --- a/engine/lib/phx/script/ffi/SystemEvent.lua +++ /dev/null @@ -1,25 +0,0 @@ --- SystemEvent ----------------------------------------------------------------- -local ffi = require('ffi') -local libphx = require('ffi.libphx').lib -local SystemEvent - -do -- C Definitions - ffi.cdef [[ - SystemEvent SystemEvent_Exit; - - cstr SystemEvent_ToString(SystemEvent); - ]] -end - -do -- Global Symbol Table - SystemEvent = { - Exit = libphx.SystemEvent_Exit, - - ToString = libphx.SystemEvent_ToString, - } - - if onDef_SystemEvent then onDef_SystemEvent(SystemEvent, mt) end - SystemEvent = setmetatable(SystemEvent, mt) -end - -return SystemEvent diff --git a/engine/lib/phx/script/ffi/SystemEventState.lua b/engine/lib/phx/script/ffi/SystemEventState.lua deleted file mode 100644 index 785be5a7c..000000000 --- a/engine/lib/phx/script/ffi/SystemEventState.lua +++ /dev/null @@ -1,33 +0,0 @@ --- SystemEventState ------------------------------------------------------------ -local ffi = require('ffi') -local libphx = require('ffi.libphx').lib -local SystemEventState - -do -- C Definitions - ffi.cdef [[ - bool SystemEventState_IsExit (SystemEventState const*); - ]] -end - -do -- Global Symbol Table - SystemEventState = { - IsExit = libphx.SystemEventState_IsExit, - } - - if onDef_SystemEventState then onDef_SystemEventState(SystemEventState, mt) end - SystemEventState = setmetatable(SystemEventState, mt) -end - -do -- Metatype for class instances - local t = ffi.typeof('SystemEventState') - local mt = { - __index = { - isExit = libphx.SystemEventState_IsExit, - }, - } - - if onDef_SystemEventState_t then onDef_SystemEventState_t(t, mt) end - SystemEventState_t = ffi.metatype(t, mt) -end - -return SystemEventState diff --git a/engine/lib/phx/script/ffi/Time.lua b/engine/lib/phx/script/ffi/Time.lua deleted file mode 100644 index 21009c482..000000000 --- a/engine/lib/phx/script/ffi/Time.lua +++ /dev/null @@ -1,41 +0,0 @@ --- Time ------------------------------------------------------------------------ -local ffi = require('ffi') -local libphx = require('ffi.libphx').lib -local Time - -do -- C Definitions - ffi.cdef [[ - Time* Time_GetLocal (); - Time* Time_GetUtc (); - uint32 Time_GetRaw (); - ]] -end - -do -- Global Symbol Table - Time = { - GetLocal = libphx.Time_GetLocal, - GetUtc = libphx.Time_GetUtc, - GetRaw = libphx.Time_GetRaw, - } - - local mt = { - __call = function(t, ...) return Time_t(...) end, - } - - if onDef_Time then onDef_Time(Time, mt) end - Time = setmetatable(Time, mt) -end - -do -- Metatype for class instances - local t = ffi.typeof('Time') - local mt = { - __index = { - clone = function(x) return Time_t(x) end, - }, - } - - if onDef_Time_t then onDef_Time_t(t, mt) end - Time_t = ffi.metatype(t, mt) -end - -return Time diff --git a/engine/lib/phx/script/ffi/TimeStamp.lua b/engine/lib/phx/script/ffi/TimeStamp.lua deleted file mode 100644 index 960a20371..000000000 --- a/engine/lib/phx/script/ffi/TimeStamp.lua +++ /dev/null @@ -1,56 +0,0 @@ --- TimeStamp ------------------------------------------------------------------- -local ffi = require('ffi') -local libphx = require('ffi.libphx').lib -local TimeStamp - -do -- C Definitions - ffi.cdef [[ - void TimeStamp_Free (TimeStamp*); - TimeStamp* TimeStamp_Now (); - TimeStamp* TimeStamp_GetFuture (double seconds); - double TimeStamp_GetDifference (TimeStamp const*, TimeStamp const* end); - double TimeStamp_GetElapsed (TimeStamp const*); - double TimeStamp_GetElapsedMs (TimeStamp const*); - TimeStamp* TimeStamp_GetRelative (TimeStamp const*, double seconds); - double TimeStamp_ToDouble (TimeStamp const*); - uint64 TimeStamp_ToSeconds (TimeStamp const*); - ]] -end - -do -- Global Symbol Table - TimeStamp = { - Free = libphx.TimeStamp_Free, - Now = libphx.TimeStamp_Now, - GetFuture = libphx.TimeStamp_GetFuture, - GetDifference = libphx.TimeStamp_GetDifference, - GetElapsed = libphx.TimeStamp_GetElapsed, - GetElapsedMs = libphx.TimeStamp_GetElapsedMs, - GetRelative = libphx.TimeStamp_GetRelative, - ToDouble = libphx.TimeStamp_ToDouble, - ToSeconds = libphx.TimeStamp_ToSeconds, - } - - if onDef_TimeStamp then onDef_TimeStamp(TimeStamp, mt) end - TimeStamp = setmetatable(TimeStamp, mt) -end - -do -- Metatype for class instances - local t = ffi.typeof('TimeStamp') - local mt = { - __index = { - managed = function(self) return ffi.gc(self, libphx.TimeStamp_Free) end, - free = libphx.TimeStamp_Free, - getDifference = libphx.TimeStamp_GetDifference, - getElapsed = libphx.TimeStamp_GetElapsed, - getElapsedMs = libphx.TimeStamp_GetElapsedMs, - getRelative = libphx.TimeStamp_GetRelative, - toDouble = libphx.TimeStamp_ToDouble, - toSeconds = libphx.TimeStamp_ToSeconds, - }, - } - - if onDef_TimeStamp_t then onDef_TimeStamp_t(t, mt) end - TimeStamp_t = ffi.metatype(t, mt) -end - -return TimeStamp diff --git a/engine/lib/phx/script/ffi/Timer.lua b/engine/lib/phx/script/ffi/Timer.lua deleted file mode 100644 index df1323de5..000000000 --- a/engine/lib/phx/script/ffi/Timer.lua +++ /dev/null @@ -1,45 +0,0 @@ --- Timer ----------------------------------------------------------------------- -local ffi = require('ffi') -local libphx = require('ffi.libphx').lib -local Timer - -do -- C Definitions - ffi.cdef [[ - void Timer_Free (Timer*); - Timer* Timer_Create (); - double Timer_GetAndReset (Timer*); - double Timer_GetElapsed (Timer const*); - void Timer_Reset (Timer*); - ]] -end - -do -- Global Symbol Table - Timer = { - Free = libphx.Timer_Free, - Create = libphx.Timer_Create, - GetAndReset = libphx.Timer_GetAndReset, - GetElapsed = libphx.Timer_GetElapsed, - Reset = libphx.Timer_Reset, - } - - if onDef_Timer then onDef_Timer(Timer, mt) end - Timer = setmetatable(Timer, mt) -end - -do -- Metatype for class instances - local t = ffi.typeof('Timer') - local mt = { - __index = { - managed = function(self) return ffi.gc(self, libphx.Timer_Free) end, - free = libphx.Timer_Free, - getAndReset = libphx.Timer_GetAndReset, - getElapsed = libphx.Timer_GetElapsed, - reset = libphx.Timer_Reset, - }, - } - - if onDef_Timer_t then onDef_Timer_t(t, mt) end - Timer_t = ffi.metatype(t, mt) -end - -return Timer diff --git a/engine/lib/phx/script/ffi/TouchpadAxis.lua b/engine/lib/phx/script/ffi/TouchpadAxis.lua deleted file mode 100644 index 5bd04f34b..000000000 --- a/engine/lib/phx/script/ffi/TouchpadAxis.lua +++ /dev/null @@ -1,31 +0,0 @@ --- TouchpadAxis ---------------------------------------------------------------- -local ffi = require('ffi') -local libphx = require('ffi.libphx').lib -local TouchpadAxis - -do -- C Definitions - ffi.cdef [[ - TouchpadAxis TouchpadAxis_X; - TouchpadAxis TouchpadAxis_Y; - TouchpadAxis TouchpadAxis_MagnifyDelta; - TouchpadAxis TouchpadAxis_RotateDelta; - - cstr TouchpadAxis_ToString(TouchpadAxis); - ]] -end - -do -- Global Symbol Table - TouchpadAxis = { - X = libphx.TouchpadAxis_X, - Y = libphx.TouchpadAxis_Y, - MagnifyDelta = libphx.TouchpadAxis_MagnifyDelta, - RotateDelta = libphx.TouchpadAxis_RotateDelta, - - ToString = libphx.TouchpadAxis_ToString, - } - - if onDef_TouchpadAxis then onDef_TouchpadAxis(TouchpadAxis, mt) end - TouchpadAxis = setmetatable(TouchpadAxis, mt) -end - -return TouchpadAxis diff --git a/engine/lib/phx/script/ffi/TouchpadState.lua b/engine/lib/phx/script/ffi/TouchpadState.lua deleted file mode 100644 index 0897d3bb9..000000000 --- a/engine/lib/phx/script/ffi/TouchpadState.lua +++ /dev/null @@ -1,42 +0,0 @@ --- TouchpadState --------------------------------------------------------------- -local ffi = require('ffi') -local libphx = require('ffi.libphx').lib -local TouchpadState - -do -- C Definitions - ffi.cdef [[ - float TouchpadState_Value (TouchpadState const*, TouchpadAxis axis); - Vec2f TouchpadState_Position (TouchpadState const*); - float TouchpadState_MagnifyDelta (TouchpadState const*); - float TouchpadState_RotateDelta (TouchpadState const*); - ]] -end - -do -- Global Symbol Table - TouchpadState = { - Value = libphx.TouchpadState_Value, - Position = libphx.TouchpadState_Position, - MagnifyDelta = libphx.TouchpadState_MagnifyDelta, - RotateDelta = libphx.TouchpadState_RotateDelta, - } - - if onDef_TouchpadState then onDef_TouchpadState(TouchpadState, mt) end - TouchpadState = setmetatable(TouchpadState, mt) -end - -do -- Metatype for class instances - local t = ffi.typeof('TouchpadState') - local mt = { - __index = { - value = libphx.TouchpadState_Value, - position = libphx.TouchpadState_Position, - magnifyDelta = libphx.TouchpadState_MagnifyDelta, - rotateDelta = libphx.TouchpadState_RotateDelta, - }, - } - - if onDef_TouchpadState_t then onDef_TouchpadState_t(t, mt) end - TouchpadState_t = ffi.metatype(t, mt) -end - -return TouchpadState diff --git a/engine/lib/phx/script/ffi/Window.lua b/engine/lib/phx/script/ffi/Window.lua deleted file mode 100644 index 85275b130..000000000 --- a/engine/lib/phx/script/ffi/Window.lua +++ /dev/null @@ -1,135 +0,0 @@ --- Window ---------------------------------------------------------------------- -local ffi = require('ffi') -local libphx = require('ffi.libphx').lib -local Window - -do -- C Definitions - ffi.cdef [[ - void Window_BeginDraw (Window const*); - void Window_EndDraw (Window const*); - cstr Window_Title (Window const*); - void Window_SetTitle (Window*, cstr title); - Cursor* Window_Cursor (Window*); - PresentMode Window_PresentMode (Window const*); - void Window_SetPresentMode (Window*, PresentMode presentMode); - void Window_SetMaximized (Window*, bool maximized); - void Window_SetMinimized (Window*, bool minimized); - Vec2i Window_Position (Window const*); - void Window_SetCenteredPosition (Window*); - void Window_SetPosition (Window*, int x, int y); - float Window_Width (Window const*); - float Window_Height (Window const*); - Vec2f Window_Size (Window const*); - void Window_SetSize (Window*, float width, float height); - uint32 Window_PhysicalWidth (Window const*); - uint32 Window_PhysicalHeight (Window const*); - Vec2i Window_PhysicalSize (Window const*); - void Window_SetPhysicalSize (Window*, int width, int height); - bool Window_IsResizable (Window const*); - void Window_SetResizable (Window*, bool resizable); - bool Window_HasDecorations (Window const*); - void Window_SetDecorations (Window*, bool decorations); - bool Window_IsTransparent (Window const*); - void Window_SetTransparent (Window*, bool transparent); - bool Window_IsFocused (Window const*); - void Window_SetFocused (Window*, bool focused); - void Window_SetFullscreen (Window*, bool fs); - void Window_ToggleFullscreen (Window*); - double Window_ScaleFactor (Window const*); - Vec2f const* Window_CursorPosition (Window const*); - void Window_SetCursorPosition (Window*, Vec2f const* position); - Vec2f const* Window_PhysicalCursorPosition (Window const*); - void Window_SetPhysicalCursorPosition (Window*, Vec2d const* position); - ]] -end - -do -- Global Symbol Table - Window = { - BeginDraw = libphx.Window_BeginDraw, - EndDraw = libphx.Window_EndDraw, - Title = libphx.Window_Title, - SetTitle = libphx.Window_SetTitle, - Cursor = libphx.Window_Cursor, - PresentMode = libphx.Window_PresentMode, - SetPresentMode = libphx.Window_SetPresentMode, - SetMaximized = libphx.Window_SetMaximized, - SetMinimized = libphx.Window_SetMinimized, - Position = libphx.Window_Position, - SetCenteredPosition = libphx.Window_SetCenteredPosition, - SetPosition = libphx.Window_SetPosition, - Width = libphx.Window_Width, - Height = libphx.Window_Height, - Size = libphx.Window_Size, - SetSize = libphx.Window_SetSize, - PhysicalWidth = libphx.Window_PhysicalWidth, - PhysicalHeight = libphx.Window_PhysicalHeight, - PhysicalSize = libphx.Window_PhysicalSize, - SetPhysicalSize = libphx.Window_SetPhysicalSize, - IsResizable = libphx.Window_IsResizable, - SetResizable = libphx.Window_SetResizable, - HasDecorations = libphx.Window_HasDecorations, - SetDecorations = libphx.Window_SetDecorations, - IsTransparent = libphx.Window_IsTransparent, - SetTransparent = libphx.Window_SetTransparent, - IsFocused = libphx.Window_IsFocused, - SetFocused = libphx.Window_SetFocused, - SetFullscreen = libphx.Window_SetFullscreen, - ToggleFullscreen = libphx.Window_ToggleFullscreen, - ScaleFactor = libphx.Window_ScaleFactor, - CursorPosition = libphx.Window_CursorPosition, - SetCursorPosition = libphx.Window_SetCursorPosition, - PhysicalCursorPosition = libphx.Window_PhysicalCursorPosition, - SetPhysicalCursorPosition = libphx.Window_SetPhysicalCursorPosition, - } - - if onDef_Window then onDef_Window(Window, mt) end - Window = setmetatable(Window, mt) -end - -do -- Metatype for class instances - local t = ffi.typeof('Window') - local mt = { - __index = { - beginDraw = libphx.Window_BeginDraw, - endDraw = libphx.Window_EndDraw, - title = libphx.Window_Title, - setTitle = libphx.Window_SetTitle, - cursor = libphx.Window_Cursor, - presentMode = libphx.Window_PresentMode, - setPresentMode = libphx.Window_SetPresentMode, - setMaximized = libphx.Window_SetMaximized, - setMinimized = libphx.Window_SetMinimized, - position = libphx.Window_Position, - setCenteredPosition = libphx.Window_SetCenteredPosition, - setPosition = libphx.Window_SetPosition, - width = libphx.Window_Width, - height = libphx.Window_Height, - size = libphx.Window_Size, - setSize = libphx.Window_SetSize, - physicalWidth = libphx.Window_PhysicalWidth, - physicalHeight = libphx.Window_PhysicalHeight, - physicalSize = libphx.Window_PhysicalSize, - setPhysicalSize = libphx.Window_SetPhysicalSize, - isResizable = libphx.Window_IsResizable, - setResizable = libphx.Window_SetResizable, - hasDecorations = libphx.Window_HasDecorations, - setDecorations = libphx.Window_SetDecorations, - isTransparent = libphx.Window_IsTransparent, - setTransparent = libphx.Window_SetTransparent, - isFocused = libphx.Window_IsFocused, - setFocused = libphx.Window_SetFocused, - setFullscreen = libphx.Window_SetFullscreen, - toggleFullscreen = libphx.Window_ToggleFullscreen, - scaleFactor = libphx.Window_ScaleFactor, - cursorPosition = libphx.Window_CursorPosition, - setCursorPosition = libphx.Window_SetCursorPosition, - physicalCursorPosition = libphx.Window_PhysicalCursorPosition, - setPhysicalCursorPosition = libphx.Window_SetPhysicalCursorPosition, - }, - } - - if onDef_Window_t then onDef_Window_t(t, mt) end - Window_t = ffi.metatype(t, mt) -end - -return Window diff --git a/engine/lib/phx/script/ffi/WindowMode.lua b/engine/lib/phx/script/ffi/WindowMode.lua deleted file mode 100644 index 00d23dc2b..000000000 --- a/engine/lib/phx/script/ffi/WindowMode.lua +++ /dev/null @@ -1,31 +0,0 @@ --- WindowMode ------------------------------------------------------------------ -local ffi = require('ffi') -local libphx = require('ffi.libphx').lib -local WindowMode - -do -- C Definitions - ffi.cdef [[ - WindowMode WindowMode_Windowed; - WindowMode WindowMode_BorderlessFullscreen; - WindowMode WindowMode_SizedFullscreen; - WindowMode WindowMode_Fullscreen; - - cstr WindowMode_ToString(WindowMode); - ]] -end - -do -- Global Symbol Table - WindowMode = { - Windowed = libphx.WindowMode_Windowed, - BorderlessFullscreen = libphx.WindowMode_BorderlessFullscreen, - SizedFullscreen = libphx.WindowMode_SizedFullscreen, - Fullscreen = libphx.WindowMode_Fullscreen, - - ToString = libphx.WindowMode_ToString, - } - - if onDef_WindowMode then onDef_WindowMode(WindowMode, mt) end - WindowMode = setmetatable(WindowMode, mt) -end - -return WindowMode diff --git a/engine/lib/phx/script/ffi/BSP.lua b/engine/lib/phx/script/ffi_common/BSP.lua similarity index 97% rename from engine/lib/phx/script/ffi/BSP.lua rename to engine/lib/phx/script/ffi_common/BSP.lua index f51d0f7c6..3225ad506 100644 --- a/engine/lib/phx/script/ffi/BSP.lua +++ b/engine/lib/phx/script/ffi_common/BSP.lua @@ -1,6 +1,6 @@ -- BSP ------------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local BSP do -- C Definitions diff --git a/engine/lib/phx/script/ffi/BSPDebug.lua b/engine/lib/phx/script/ffi_common/BSPDebug.lua similarity index 97% rename from engine/lib/phx/script/ffi/BSPDebug.lua rename to engine/lib/phx/script/ffi_common/BSPDebug.lua index 8e48db996..00c1e34f1 100644 --- a/engine/lib/phx/script/ffi/BSPDebug.lua +++ b/engine/lib/phx/script/ffi_common/BSPDebug.lua @@ -1,6 +1,6 @@ -- BSPDebug -------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local BSPDebug do -- C Definitions diff --git a/engine/lib/phx/script/ffi/BSPNodeRef.lua b/engine/lib/phx/script/ffi_common/BSPNodeRef.lua similarity index 94% rename from engine/lib/phx/script/ffi/BSPNodeRef.lua rename to engine/lib/phx/script/ffi_common/BSPNodeRef.lua index b6a6eda4b..7f1c56dc0 100644 --- a/engine/lib/phx/script/ffi/BSPNodeRef.lua +++ b/engine/lib/phx/script/ffi_common/BSPNodeRef.lua @@ -1,6 +1,6 @@ -- BSPNodeRef ------------------------------------------------------------------ local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local BSPNodeRef do -- Global Symbol Table diff --git a/engine/lib/phx/script/ffi/BSPNodeRel.lua b/engine/lib/phx/script/ffi_common/BSPNodeRel.lua similarity index 93% rename from engine/lib/phx/script/ffi/BSPNodeRel.lua rename to engine/lib/phx/script/ffi_common/BSPNodeRel.lua index c6ed15324..49b100179 100644 --- a/engine/lib/phx/script/ffi/BSPNodeRel.lua +++ b/engine/lib/phx/script/ffi_common/BSPNodeRel.lua @@ -1,6 +1,6 @@ -- BSPNodeRel ------------------------------------------------------------------ local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local BSPNodeRel do -- C Definitions diff --git a/engine/lib/phx/script/ffi/BlendMode.lua b/engine/lib/phx/script/ffi_common/BlendMode.lua similarity index 96% rename from engine/lib/phx/script/ffi/BlendMode.lua rename to engine/lib/phx/script/ffi_common/BlendMode.lua index 4b0f3d24f..6cdcd45dc 100644 --- a/engine/lib/phx/script/ffi/BlendMode.lua +++ b/engine/lib/phx/script/ffi_common/BlendMode.lua @@ -1,6 +1,6 @@ -- BlendMode ------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local BlendMode do -- C Definitions diff --git a/engine/lib/phx/script/ffi/Box3d.lua b/engine/lib/phx/script/ffi_common/Box3d.lua similarity index 93% rename from engine/lib/phx/script/ffi/Box3d.lua rename to engine/lib/phx/script/ffi_common/Box3d.lua index ee55c8446..b52c8f584 100644 --- a/engine/lib/phx/script/ffi/Box3d.lua +++ b/engine/lib/phx/script/ffi_common/Box3d.lua @@ -1,6 +1,6 @@ -- Box3d ----------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Box3d do -- Global Symbol Table diff --git a/engine/lib/phx/script/ffi/Box3f.lua b/engine/lib/phx/script/ffi_common/Box3f.lua similarity index 93% rename from engine/lib/phx/script/ffi/Box3f.lua rename to engine/lib/phx/script/ffi_common/Box3f.lua index f55e55e77..8c717cfa4 100644 --- a/engine/lib/phx/script/ffi/Box3f.lua +++ b/engine/lib/phx/script/ffi_common/Box3f.lua @@ -1,6 +1,6 @@ -- Box3f ----------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Box3f do -- Global Symbol Table diff --git a/engine/lib/phx/script/ffi/Box3i.lua b/engine/lib/phx/script/ffi_common/Box3i.lua similarity index 93% rename from engine/lib/phx/script/ffi/Box3i.lua rename to engine/lib/phx/script/ffi_common/Box3i.lua index 125bcd6cd..cc6cc9801 100644 --- a/engine/lib/phx/script/ffi/Box3i.lua +++ b/engine/lib/phx/script/ffi_common/Box3i.lua @@ -1,6 +1,6 @@ -- Box3i ----------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Box3i do -- Global Symbol Table diff --git a/engine/lib/phx/script/ffi/BoxMesh.lua b/engine/lib/phx/script/ffi_common/BoxMesh.lua similarity index 97% rename from engine/lib/phx/script/ffi/BoxMesh.lua rename to engine/lib/phx/script/ffi_common/BoxMesh.lua index f3adbb82b..805cf2b36 100644 --- a/engine/lib/phx/script/ffi/BoxMesh.lua +++ b/engine/lib/phx/script/ffi_common/BoxMesh.lua @@ -1,6 +1,6 @@ -- BoxMesh --------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local BoxMesh do -- C Definitions diff --git a/engine/lib/phx/script/ffi/BoxTree.lua b/engine/lib/phx/script/ffi_common/BoxTree.lua similarity index 97% rename from engine/lib/phx/script/ffi/BoxTree.lua rename to engine/lib/phx/script/ffi_common/BoxTree.lua index 7743c1305..4c6c80de4 100644 --- a/engine/lib/phx/script/ffi/BoxTree.lua +++ b/engine/lib/phx/script/ffi_common/BoxTree.lua @@ -1,6 +1,6 @@ -- BoxTree --------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local BoxTree do -- C Definitions diff --git a/engine/lib/phx/script/ffi/Bytes.lua b/engine/lib/phx/script/ffi_common/Bytes.lua similarity index 99% rename from engine/lib/phx/script/ffi/Bytes.lua rename to engine/lib/phx/script/ffi_common/Bytes.lua index cad17676d..902f6760c 100644 --- a/engine/lib/phx/script/ffi/Bytes.lua +++ b/engine/lib/phx/script/ffi_common/Bytes.lua @@ -1,6 +1,6 @@ -- Bytes ----------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Bytes do -- C Definitions diff --git a/engine/lib/phx/script/ffi/ClipRect.lua b/engine/lib/phx/script/ffi_common/ClipRect.lua similarity index 95% rename from engine/lib/phx/script/ffi/ClipRect.lua rename to engine/lib/phx/script/ffi_common/ClipRect.lua index 11de157de..634899c52 100644 --- a/engine/lib/phx/script/ffi/ClipRect.lua +++ b/engine/lib/phx/script/ffi_common/ClipRect.lua @@ -1,6 +1,6 @@ -- ClipRect -------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local ClipRect do -- C Definitions diff --git a/engine/lib/phx/script/ffi/Collision.lua b/engine/lib/phx/script/ffi_common/Collision.lua similarity index 94% rename from engine/lib/phx/script/ffi/Collision.lua rename to engine/lib/phx/script/ffi_common/Collision.lua index 48a6fecf1..e1b25802c 100644 --- a/engine/lib/phx/script/ffi/Collision.lua +++ b/engine/lib/phx/script/ffi_common/Collision.lua @@ -1,6 +1,6 @@ -- Collision ------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Collision do -- Global Symbol Table diff --git a/engine/lib/phx/script/ffi/CollisionGroup.lua b/engine/lib/phx/script/ffi_common/CollisionGroup.lua similarity index 89% rename from engine/lib/phx/script/ffi/CollisionGroup.lua rename to engine/lib/phx/script/ffi_common/CollisionGroup.lua index 88fc8f64f..dd25a917d 100644 --- a/engine/lib/phx/script/ffi/CollisionGroup.lua +++ b/engine/lib/phx/script/ffi_common/CollisionGroup.lua @@ -1,6 +1,6 @@ -- CollisionGroup -------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local CollisionGroup do -- Global Symbol Table diff --git a/engine/lib/phx/script/ffi/CollisionMask.lua b/engine/lib/phx/script/ffi_common/CollisionMask.lua similarity index 89% rename from engine/lib/phx/script/ffi/CollisionMask.lua rename to engine/lib/phx/script/ffi_common/CollisionMask.lua index a5494266a..2a9d9c6f2 100644 --- a/engine/lib/phx/script/ffi/CollisionMask.lua +++ b/engine/lib/phx/script/ffi_common/CollisionMask.lua @@ -1,6 +1,6 @@ -- CollisionMask --------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local CollisionMask do -- Global Symbol Table diff --git a/engine/lib/phx/script/ffi/CubeFace.lua b/engine/lib/phx/script/ffi_common/CubeFace.lua similarity index 94% rename from engine/lib/phx/script/ffi/CubeFace.lua rename to engine/lib/phx/script/ffi_common/CubeFace.lua index e652ca8df..84e28817d 100644 --- a/engine/lib/phx/script/ffi/CubeFace.lua +++ b/engine/lib/phx/script/ffi_common/CubeFace.lua @@ -1,6 +1,6 @@ -- CubeFace -------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local CubeFace do -- C Definitions diff --git a/engine/lib/phx/script/ffi/CullFace.lua b/engine/lib/phx/script/ffi_common/CullFace.lua similarity index 95% rename from engine/lib/phx/script/ffi/CullFace.lua rename to engine/lib/phx/script/ffi_common/CullFace.lua index a4b2a7cd0..e1a30e764 100644 --- a/engine/lib/phx/script/ffi/CullFace.lua +++ b/engine/lib/phx/script/ffi_common/CullFace.lua @@ -1,6 +1,6 @@ -- CullFace -------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local CullFace do -- C Definitions diff --git a/engine/lib/phx/script/ffi/DataFormat.lua b/engine/lib/phx/script/ffi_common/DataFormat.lua similarity index 95% rename from engine/lib/phx/script/ffi/DataFormat.lua rename to engine/lib/phx/script/ffi_common/DataFormat.lua index 4056cb73a..b78f66ad0 100644 --- a/engine/lib/phx/script/ffi/DataFormat.lua +++ b/engine/lib/phx/script/ffi_common/DataFormat.lua @@ -1,6 +1,6 @@ -- DataFormat ------------------------------------------------------------------ local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local DataFormat do -- C Definitions diff --git a/engine/lib/phx/script/ffi/DepthTest.lua b/engine/lib/phx/script/ffi_common/DepthTest.lua similarity index 94% rename from engine/lib/phx/script/ffi/DepthTest.lua rename to engine/lib/phx/script/ffi_common/DepthTest.lua index 774c82595..936cde2c7 100644 --- a/engine/lib/phx/script/ffi/DepthTest.lua +++ b/engine/lib/phx/script/ffi_common/DepthTest.lua @@ -1,6 +1,6 @@ -- DepthTest ------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local DepthTest do -- C Definitions diff --git a/engine/lib/phx/script/ffi/Draw.lua b/engine/lib/phx/script/ffi_common/Draw.lua similarity index 98% rename from engine/lib/phx/script/ffi/Draw.lua rename to engine/lib/phx/script/ffi_common/Draw.lua index 9256fca96..07043c094 100644 --- a/engine/lib/phx/script/ffi/Draw.lua +++ b/engine/lib/phx/script/ffi_common/Draw.lua @@ -1,6 +1,6 @@ -- Draw ------------------------------------------------------------------------ local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Draw do -- C Definitions diff --git a/engine/lib/phx/script/ffi/Error.lua b/engine/lib/phx/script/ffi_common/Error.lua similarity index 96% rename from engine/lib/phx/script/ffi/Error.lua rename to engine/lib/phx/script/ffi_common/Error.lua index df951e72b..f338e8e60 100644 --- a/engine/lib/phx/script/ffi/Error.lua +++ b/engine/lib/phx/script/ffi_common/Error.lua @@ -1,6 +1,6 @@ -- Error ----------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Error do -- C Definitions diff --git a/engine/lib/phx/script/ffi/File.lua b/engine/lib/phx/script/ffi_common/File.lua similarity index 99% rename from engine/lib/phx/script/ffi/File.lua rename to engine/lib/phx/script/ffi_common/File.lua index b8f35fbb6..fa8ad4766 100644 --- a/engine/lib/phx/script/ffi/File.lua +++ b/engine/lib/phx/script/ffi_common/File.lua @@ -1,6 +1,6 @@ -- File ------------------------------------------------------------------------ local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local File do -- C Definitions diff --git a/engine/lib/phx/script/ffi/Font.lua b/engine/lib/phx/script/ffi_common/Font.lua similarity index 97% rename from engine/lib/phx/script/ffi/Font.lua rename to engine/lib/phx/script/ffi_common/Font.lua index ce2619abb..c20bffdc6 100644 --- a/engine/lib/phx/script/ffi/Font.lua +++ b/engine/lib/phx/script/ffi_common/Font.lua @@ -1,6 +1,6 @@ -- Font ------------------------------------------------------------------------ local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Font do -- C Definitions diff --git a/engine/lib/phx/script/ffi/GLMatrix.lua b/engine/lib/phx/script/ffi_common/GLMatrix.lua similarity index 97% rename from engine/lib/phx/script/ffi/GLMatrix.lua rename to engine/lib/phx/script/ffi_common/GLMatrix.lua index d536e114c..4ef43d989 100644 --- a/engine/lib/phx/script/ffi/GLMatrix.lua +++ b/engine/lib/phx/script/ffi_common/GLMatrix.lua @@ -1,6 +1,6 @@ -- GLMatrix -------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local GLMatrix do -- C Definitions diff --git a/engine/lib/phx/script/ffi/GUID.lua b/engine/lib/phx/script/ffi_common/GUID.lua similarity index 92% rename from engine/lib/phx/script/ffi/GUID.lua rename to engine/lib/phx/script/ffi_common/GUID.lua index 5b167d79b..0e1040662 100644 --- a/engine/lib/phx/script/ffi/GUID.lua +++ b/engine/lib/phx/script/ffi_common/GUID.lua @@ -1,6 +1,6 @@ -- GUID ------------------------------------------------------------------------ local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local GUID do -- C Definitions diff --git a/engine/lib/phx/script/ffi/Hash.lua b/engine/lib/phx/script/ffi_common/Hash.lua similarity index 96% rename from engine/lib/phx/script/ffi/Hash.lua rename to engine/lib/phx/script/ffi_common/Hash.lua index e0b92cc3c..11d1111c6 100644 --- a/engine/lib/phx/script/ffi/Hash.lua +++ b/engine/lib/phx/script/ffi_common/Hash.lua @@ -1,6 +1,6 @@ -- Hash ------------------------------------------------------------------------ local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Hash do -- C Definitions diff --git a/engine/lib/phx/script/ffi/HashGrid.lua b/engine/lib/phx/script/ffi_common/HashGrid.lua similarity index 98% rename from engine/lib/phx/script/ffi/HashGrid.lua rename to engine/lib/phx/script/ffi_common/HashGrid.lua index e6edb5259..129850302 100644 --- a/engine/lib/phx/script/ffi/HashGrid.lua +++ b/engine/lib/phx/script/ffi_common/HashGrid.lua @@ -1,6 +1,6 @@ -- HashGrid -------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local HashGrid do -- C Definitions diff --git a/engine/lib/phx/script/ffi/HmGui.lua b/engine/lib/phx/script/ffi_common/HmGui.lua similarity index 98% rename from engine/lib/phx/script/ffi/HmGui.lua rename to engine/lib/phx/script/ffi_common/HmGui.lua index 17eff5fd5..cd6a531c5 100644 --- a/engine/lib/phx/script/ffi/HmGui.lua +++ b/engine/lib/phx/script/ffi_common/HmGui.lua @@ -1,6 +1,6 @@ -- HmGui ----------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local HmGui do -- C Definitions diff --git a/engine/lib/phx/script/ffi/Intersect.lua b/engine/lib/phx/script/ffi_common/Intersect.lua similarity index 97% rename from engine/lib/phx/script/ffi/Intersect.lua rename to engine/lib/phx/script/ffi_common/Intersect.lua index b042c52ec..a96e11c2d 100644 --- a/engine/lib/phx/script/ffi/Intersect.lua +++ b/engine/lib/phx/script/ffi_common/Intersect.lua @@ -1,6 +1,6 @@ -- Intersect ------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Intersect do -- C Definitions diff --git a/engine/lib/phx/script/ffi/IntersectSphereProfiling.lua b/engine/lib/phx/script/ffi_common/IntersectSphereProfiling.lua similarity index 95% rename from engine/lib/phx/script/ffi/IntersectSphereProfiling.lua rename to engine/lib/phx/script/ffi_common/IntersectSphereProfiling.lua index 19333516a..d68431ed4 100644 --- a/engine/lib/phx/script/ffi/IntersectSphereProfiling.lua +++ b/engine/lib/phx/script/ffi_common/IntersectSphereProfiling.lua @@ -1,6 +1,6 @@ -- IntersectSphereProfiling ---------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local IntersectSphereProfiling do -- Global Symbol Table diff --git a/engine/lib/phx/script/ffi/KDTree.lua b/engine/lib/phx/script/ffi_common/KDTree.lua similarity index 97% rename from engine/lib/phx/script/ffi/KDTree.lua rename to engine/lib/phx/script/ffi_common/KDTree.lua index ed98a2743..e871d91c0 100644 --- a/engine/lib/phx/script/ffi/KDTree.lua +++ b/engine/lib/phx/script/ffi_common/KDTree.lua @@ -1,6 +1,6 @@ -- KDTree ---------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local KDTree do -- C Definitions diff --git a/engine/lib/phx/script/ffi/LodMesh.lua b/engine/lib/phx/script/ffi_common/LodMesh.lua similarity index 97% rename from engine/lib/phx/script/ffi/LodMesh.lua rename to engine/lib/phx/script/ffi_common/LodMesh.lua index 1ca190bbf..418ac8ca1 100644 --- a/engine/lib/phx/script/ffi/LodMesh.lua +++ b/engine/lib/phx/script/ffi_common/LodMesh.lua @@ -1,6 +1,6 @@ -- LodMesh --------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local LodMesh do -- C Definitions diff --git a/engine/lib/phx/script/ffi/Math.lua b/engine/lib/phx/script/ffi_common/Math.lua similarity index 97% rename from engine/lib/phx/script/ffi/Math.lua rename to engine/lib/phx/script/ffi_common/Math.lua index 5e1820179..73ad3b94e 100644 --- a/engine/lib/phx/script/ffi/Math.lua +++ b/engine/lib/phx/script/ffi_common/Math.lua @@ -1,6 +1,6 @@ -- Math ------------------------------------------------------------------------ local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Math do -- C Definitions diff --git a/engine/lib/phx/script/ffi/Matrix.lua b/engine/lib/phx/script/ffi_common/Matrix.lua similarity index 99% rename from engine/lib/phx/script/ffi/Matrix.lua rename to engine/lib/phx/script/ffi_common/Matrix.lua index 3103e154e..cd74b3b25 100644 --- a/engine/lib/phx/script/ffi/Matrix.lua +++ b/engine/lib/phx/script/ffi_common/Matrix.lua @@ -1,6 +1,6 @@ -- Matrix ---------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Matrix do -- C Definitions diff --git a/engine/lib/phx/script/ffi/MemPool.lua b/engine/lib/phx/script/ffi_common/MemPool.lua similarity index 97% rename from engine/lib/phx/script/ffi/MemPool.lua rename to engine/lib/phx/script/ffi_common/MemPool.lua index e3a2a53d2..01af3ce75 100644 --- a/engine/lib/phx/script/ffi/MemPool.lua +++ b/engine/lib/phx/script/ffi_common/MemPool.lua @@ -1,6 +1,6 @@ -- MemPool --------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local MemPool do -- C Definitions diff --git a/engine/lib/phx/script/ffi/MemStack.lua b/engine/lib/phx/script/ffi_common/MemStack.lua similarity index 97% rename from engine/lib/phx/script/ffi/MemStack.lua rename to engine/lib/phx/script/ffi_common/MemStack.lua index ae430faf3..751fc6459 100644 --- a/engine/lib/phx/script/ffi/MemStack.lua +++ b/engine/lib/phx/script/ffi_common/MemStack.lua @@ -1,6 +1,6 @@ -- MemStack -------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local MemStack do -- C Definitions diff --git a/engine/lib/phx/script/ffi/Memory.lua b/engine/lib/phx/script/ffi_common/Memory.lua similarity index 95% rename from engine/lib/phx/script/ffi/Memory.lua rename to engine/lib/phx/script/ffi_common/Memory.lua index dabd7ee22..082f7f5a5 100644 --- a/engine/lib/phx/script/ffi/Memory.lua +++ b/engine/lib/phx/script/ffi_common/Memory.lua @@ -1,6 +1,6 @@ -- Memory ---------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Memory do -- C Definitions diff --git a/engine/lib/phx/script/ffi/Mesh.lua b/engine/lib/phx/script/ffi_common/Mesh.lua similarity index 99% rename from engine/lib/phx/script/ffi/Mesh.lua rename to engine/lib/phx/script/ffi_common/Mesh.lua index 530fcd4a7..c1a4aafcf 100644 --- a/engine/lib/phx/script/ffi/Mesh.lua +++ b/engine/lib/phx/script/ffi_common/Mesh.lua @@ -1,6 +1,6 @@ -- Mesh ------------------------------------------------------------------------ local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Mesh do -- C Definitions diff --git a/engine/lib/phx/script/ffi/Metric.lua b/engine/lib/phx/script/ffi_common/Metric.lua similarity index 94% rename from engine/lib/phx/script/ffi/Metric.lua rename to engine/lib/phx/script/ffi_common/Metric.lua index 355cbd796..019ee759e 100644 --- a/engine/lib/phx/script/ffi/Metric.lua +++ b/engine/lib/phx/script/ffi_common/Metric.lua @@ -1,6 +1,6 @@ -- Metric ---------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Metric do -- C Definitions diff --git a/engine/lib/phx/script/ffi/Octree.lua b/engine/lib/phx/script/ffi_common/Octree.lua similarity index 97% rename from engine/lib/phx/script/ffi/Octree.lua rename to engine/lib/phx/script/ffi_common/Octree.lua index 696558dd0..07b7736d8 100644 --- a/engine/lib/phx/script/ffi/Octree.lua +++ b/engine/lib/phx/script/ffi_common/Octree.lua @@ -1,6 +1,6 @@ -- Octree ---------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Octree do -- C Definitions diff --git a/engine/lib/phx/script/ffi/Physics.lua b/engine/lib/phx/script/ffi_common/Physics.lua similarity index 99% rename from engine/lib/phx/script/ffi/Physics.lua rename to engine/lib/phx/script/ffi_common/Physics.lua index 19fb65d86..29d6a2885 100644 --- a/engine/lib/phx/script/ffi/Physics.lua +++ b/engine/lib/phx/script/ffi_common/Physics.lua @@ -1,6 +1,6 @@ -- Physics --------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Physics do -- C Definitions diff --git a/engine/lib/phx/script/ffi/PixelFormat.lua b/engine/lib/phx/script/ffi_common/PixelFormat.lua similarity index 96% rename from engine/lib/phx/script/ffi/PixelFormat.lua rename to engine/lib/phx/script/ffi_common/PixelFormat.lua index f28618fac..e826db922 100644 --- a/engine/lib/phx/script/ffi/PixelFormat.lua +++ b/engine/lib/phx/script/ffi_common/PixelFormat.lua @@ -1,6 +1,6 @@ -- PixelFormat ----------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local PixelFormat do -- C Definitions diff --git a/engine/lib/phx/script/ffi/Plane.lua b/engine/lib/phx/script/ffi_common/Plane.lua similarity index 97% rename from engine/lib/phx/script/ffi/Plane.lua rename to engine/lib/phx/script/ffi_common/Plane.lua index 7e0566e5b..0fbcd550f 100644 --- a/engine/lib/phx/script/ffi/Plane.lua +++ b/engine/lib/phx/script/ffi_common/Plane.lua @@ -1,6 +1,6 @@ -- Plane ----------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Plane do -- C Definitions diff --git a/engine/lib/phx/script/ffi/PointClassification.lua b/engine/lib/phx/script/ffi_common/PointClassification.lua similarity index 91% rename from engine/lib/phx/script/ffi/PointClassification.lua rename to engine/lib/phx/script/ffi_common/PointClassification.lua index 8c12b43c4..1e305e3b0 100644 --- a/engine/lib/phx/script/ffi/PointClassification.lua +++ b/engine/lib/phx/script/ffi_common/PointClassification.lua @@ -1,6 +1,6 @@ -- PointClassification --------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local PointClassification do -- Global Symbol Table diff --git a/engine/lib/phx/script/ffi/Polygon.lua b/engine/lib/phx/script/ffi_common/Polygon.lua similarity index 97% rename from engine/lib/phx/script/ffi/Polygon.lua rename to engine/lib/phx/script/ffi_common/Polygon.lua index dadc01601..7fc60a2c7 100644 --- a/engine/lib/phx/script/ffi/Polygon.lua +++ b/engine/lib/phx/script/ffi_common/Polygon.lua @@ -1,6 +1,6 @@ -- Polygon --------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Polygon do -- C Definitions diff --git a/engine/lib/phx/script/ffi/PolygonClassification.lua b/engine/lib/phx/script/ffi_common/PolygonClassification.lua similarity index 92% rename from engine/lib/phx/script/ffi/PolygonClassification.lua rename to engine/lib/phx/script/ffi_common/PolygonClassification.lua index 7aab38f50..24e5d146b 100644 --- a/engine/lib/phx/script/ffi/PolygonClassification.lua +++ b/engine/lib/phx/script/ffi_common/PolygonClassification.lua @@ -1,6 +1,6 @@ -- PolygonClassification ------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local PolygonClassification do -- Global Symbol Table diff --git a/engine/lib/phx/script/ffi/Profiler.lua b/engine/lib/phx/script/ffi_common/Profiler.lua similarity index 95% rename from engine/lib/phx/script/ffi/Profiler.lua rename to engine/lib/phx/script/ffi_common/Profiler.lua index 69a45fa65..59e938efb 100644 --- a/engine/lib/phx/script/ffi/Profiler.lua +++ b/engine/lib/phx/script/ffi_common/Profiler.lua @@ -1,6 +1,6 @@ -- Profiler -------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Profiler do -- C Definitions diff --git a/engine/lib/phx/script/ffi/Quat.lua b/engine/lib/phx/script/ffi_common/Quat.lua similarity index 99% rename from engine/lib/phx/script/ffi/Quat.lua rename to engine/lib/phx/script/ffi_common/Quat.lua index 53bb43fab..07cf9e6a2 100644 --- a/engine/lib/phx/script/ffi/Quat.lua +++ b/engine/lib/phx/script/ffi_common/Quat.lua @@ -1,6 +1,6 @@ -- Quat ------------------------------------------------------------------------ local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Quat do -- C Definitions diff --git a/engine/lib/phx/script/ffi/RNG.lua b/engine/lib/phx/script/ffi_common/RNG.lua similarity index 99% rename from engine/lib/phx/script/ffi/RNG.lua rename to engine/lib/phx/script/ffi_common/RNG.lua index d8e44dfdc..486a464c6 100644 --- a/engine/lib/phx/script/ffi/RNG.lua +++ b/engine/lib/phx/script/ffi_common/RNG.lua @@ -1,6 +1,6 @@ -- RNG ------------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local RNG do -- C Definitions diff --git a/engine/lib/phx/script/ffi/Ray.lua b/engine/lib/phx/script/ffi_common/Ray.lua similarity index 98% rename from engine/lib/phx/script/ffi/Ray.lua rename to engine/lib/phx/script/ffi_common/Ray.lua index a26d47ee1..eb47c9d7c 100644 --- a/engine/lib/phx/script/ffi/Ray.lua +++ b/engine/lib/phx/script/ffi_common/Ray.lua @@ -1,6 +1,6 @@ -- Ray ------------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Ray do -- C Definitions diff --git a/engine/lib/phx/script/ffi/RayCastResult.lua b/engine/lib/phx/script/ffi_common/RayCastResult.lua similarity index 94% rename from engine/lib/phx/script/ffi/RayCastResult.lua rename to engine/lib/phx/script/ffi_common/RayCastResult.lua index 701406a6f..eed467bf8 100644 --- a/engine/lib/phx/script/ffi/RayCastResult.lua +++ b/engine/lib/phx/script/ffi_common/RayCastResult.lua @@ -1,6 +1,6 @@ -- RayCastResult --------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local RayCastResult do -- Global Symbol Table diff --git a/engine/lib/phx/script/ffi/RenderState.lua b/engine/lib/phx/script/ffi_common/RenderState.lua similarity index 97% rename from engine/lib/phx/script/ffi/RenderState.lua rename to engine/lib/phx/script/ffi_common/RenderState.lua index aff55d9c0..0f93ca937 100644 --- a/engine/lib/phx/script/ffi/RenderState.lua +++ b/engine/lib/phx/script/ffi_common/RenderState.lua @@ -1,6 +1,6 @@ -- RenderState ----------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local RenderState do -- C Definitions diff --git a/engine/lib/phx/script/ffi/RenderTarget.lua b/engine/lib/phx/script/ffi_common/RenderTarget.lua similarity index 97% rename from engine/lib/phx/script/ffi/RenderTarget.lua rename to engine/lib/phx/script/ffi_common/RenderTarget.lua index 05f799e1e..bd1d23af1 100644 --- a/engine/lib/phx/script/ffi/RenderTarget.lua +++ b/engine/lib/phx/script/ffi_common/RenderTarget.lua @@ -1,6 +1,6 @@ -- RenderTarget ---------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local RenderTarget do -- C Definitions diff --git a/engine/lib/phx/script/ffi/Resource.lua b/engine/lib/phx/script/ffi_common/Resource.lua similarity index 94% rename from engine/lib/phx/script/ffi/Resource.lua rename to engine/lib/phx/script/ffi_common/Resource.lua index 06e9b4a44..5f7c489e0 100644 --- a/engine/lib/phx/script/ffi/Resource.lua +++ b/engine/lib/phx/script/ffi_common/Resource.lua @@ -1,6 +1,6 @@ -- Resource -------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Resource do -- C Definitions diff --git a/engine/lib/phx/script/ffi/ResourceType.lua b/engine/lib/phx/script/ffi_common/ResourceType.lua similarity index 97% rename from engine/lib/phx/script/ffi/ResourceType.lua rename to engine/lib/phx/script/ffi_common/ResourceType.lua index b837e70e5..74a9cb3c0 100644 --- a/engine/lib/phx/script/ffi/ResourceType.lua +++ b/engine/lib/phx/script/ffi_common/ResourceType.lua @@ -1,6 +1,6 @@ -- ResourceType ---------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local ResourceType do -- C Definitions diff --git a/engine/lib/phx/script/ffi/RigidBody.lua b/engine/lib/phx/script/ffi_common/RigidBody.lua similarity index 99% rename from engine/lib/phx/script/ffi/RigidBody.lua rename to engine/lib/phx/script/ffi_common/RigidBody.lua index 9c37fb8e3..42904861e 100644 --- a/engine/lib/phx/script/ffi/RigidBody.lua +++ b/engine/lib/phx/script/ffi_common/RigidBody.lua @@ -1,6 +1,6 @@ -- RigidBody ------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local RigidBody do -- C Definitions diff --git a/engine/lib/phx/script/ffi/SDF.lua b/engine/lib/phx/script/ffi_common/SDF.lua similarity index 97% rename from engine/lib/phx/script/ffi/SDF.lua rename to engine/lib/phx/script/ffi_common/SDF.lua index 6be796b45..93eefcc91 100644 --- a/engine/lib/phx/script/ffi/SDF.lua +++ b/engine/lib/phx/script/ffi_common/SDF.lua @@ -1,6 +1,6 @@ -- SDF ------------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local SDF do -- C Definitions diff --git a/engine/lib/phx/script/ffi/Shader.lua b/engine/lib/phx/script/ffi_common/Shader.lua similarity index 99% rename from engine/lib/phx/script/ffi/Shader.lua rename to engine/lib/phx/script/ffi_common/Shader.lua index 82aa0a100..931ef8b8c 100644 --- a/engine/lib/phx/script/ffi/Shader.lua +++ b/engine/lib/phx/script/ffi_common/Shader.lua @@ -1,6 +1,6 @@ -- Shader ---------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Shader do -- C Definitions diff --git a/engine/lib/phx/script/ffi/ShaderState.lua b/engine/lib/phx/script/ffi_common/ShaderState.lua similarity index 98% rename from engine/lib/phx/script/ffi/ShaderState.lua rename to engine/lib/phx/script/ffi_common/ShaderState.lua index ff3315625..2c00445cc 100644 --- a/engine/lib/phx/script/ffi/ShaderState.lua +++ b/engine/lib/phx/script/ffi_common/ShaderState.lua @@ -1,6 +1,6 @@ -- ShaderState ----------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local ShaderState do -- C Definitions diff --git a/engine/lib/phx/script/ffi/ShaderVar.lua b/engine/lib/phx/script/ffi_common/ShaderVar.lua similarity index 97% rename from engine/lib/phx/script/ffi/ShaderVar.lua rename to engine/lib/phx/script/ffi_common/ShaderVar.lua index 729ee4344..479a5f467 100644 --- a/engine/lib/phx/script/ffi/ShaderVar.lua +++ b/engine/lib/phx/script/ffi_common/ShaderVar.lua @@ -1,6 +1,6 @@ -- ShaderVar ------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local ShaderVar do -- C Definitions diff --git a/engine/lib/phx/script/ffi/ShaderVarType.lua b/engine/lib/phx/script/ffi_common/ShaderVarType.lua similarity index 96% rename from engine/lib/phx/script/ffi/ShaderVarType.lua rename to engine/lib/phx/script/ffi_common/ShaderVarType.lua index eea921f2b..701d4eed3 100644 --- a/engine/lib/phx/script/ffi/ShaderVarType.lua +++ b/engine/lib/phx/script/ffi_common/ShaderVarType.lua @@ -1,6 +1,6 @@ -- ShaderVarType --------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local ShaderVarType do -- C Definitions diff --git a/engine/lib/phx/script/ffi/ShapeCastResult.lua b/engine/lib/phx/script/ffi_common/ShapeCastResult.lua similarity index 94% rename from engine/lib/phx/script/ffi/ShapeCastResult.lua rename to engine/lib/phx/script/ffi_common/ShapeCastResult.lua index b78c6dec4..973c0ca95 100644 --- a/engine/lib/phx/script/ffi/ShapeCastResult.lua +++ b/engine/lib/phx/script/ffi_common/ShapeCastResult.lua @@ -1,6 +1,6 @@ -- ShapeCastResult ------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local ShapeCastResult do -- Global Symbol Table diff --git a/engine/lib/phx/script/ffi/Sphere.lua b/engine/lib/phx/script/ffi_common/Sphere.lua similarity index 93% rename from engine/lib/phx/script/ffi/Sphere.lua rename to engine/lib/phx/script/ffi_common/Sphere.lua index 3c332ad50..89327cde0 100644 --- a/engine/lib/phx/script/ffi/Sphere.lua +++ b/engine/lib/phx/script/ffi_common/Sphere.lua @@ -1,6 +1,6 @@ -- Sphere ---------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Sphere do -- Global Symbol Table diff --git a/engine/lib/phx/script/ffi/StrMap.lua b/engine/lib/phx/script/ffi_common/StrMap.lua similarity index 97% rename from engine/lib/phx/script/ffi/StrMap.lua rename to engine/lib/phx/script/ffi_common/StrMap.lua index e6dbaabb0..f303cd3d4 100644 --- a/engine/lib/phx/script/ffi/StrMap.lua +++ b/engine/lib/phx/script/ffi_common/StrMap.lua @@ -1,6 +1,6 @@ -- StrMap ---------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local StrMap do -- C Definitions diff --git a/engine/lib/phx/script/ffi/StrMapIter.lua b/engine/lib/phx/script/ffi_common/StrMapIter.lua similarity index 97% rename from engine/lib/phx/script/ffi/StrMapIter.lua rename to engine/lib/phx/script/ffi_common/StrMapIter.lua index 4c8573dc0..869b6111a 100644 --- a/engine/lib/phx/script/ffi/StrMapIter.lua +++ b/engine/lib/phx/script/ffi_common/StrMapIter.lua @@ -1,6 +1,6 @@ -- StrMapIter ------------------------------------------------------------------ local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local StrMapIter do -- C Definitions diff --git a/engine/lib/phx/script/ffi/Tex1D.lua b/engine/lib/phx/script/ffi_common/Tex1D.lua similarity index 98% rename from engine/lib/phx/script/ffi/Tex1D.lua rename to engine/lib/phx/script/ffi_common/Tex1D.lua index 646952b82..3ad34f645 100644 --- a/engine/lib/phx/script/ffi/Tex1D.lua +++ b/engine/lib/phx/script/ffi_common/Tex1D.lua @@ -1,6 +1,6 @@ -- Tex1D ----------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Tex1D do -- C Definitions diff --git a/engine/lib/phx/script/ffi/Tex2D.lua b/engine/lib/phx/script/ffi_common/Tex2D.lua similarity index 99% rename from engine/lib/phx/script/ffi/Tex2D.lua rename to engine/lib/phx/script/ffi_common/Tex2D.lua index 121ce810b..2483eb3d1 100644 --- a/engine/lib/phx/script/ffi/Tex2D.lua +++ b/engine/lib/phx/script/ffi_common/Tex2D.lua @@ -1,6 +1,6 @@ -- Tex2D ----------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Tex2D do -- C Definitions diff --git a/engine/lib/phx/script/ffi/Tex3D.lua b/engine/lib/phx/script/ffi_common/Tex3D.lua similarity index 98% rename from engine/lib/phx/script/ffi/Tex3D.lua rename to engine/lib/phx/script/ffi_common/Tex3D.lua index 8326d9829..b2e4ad87c 100644 --- a/engine/lib/phx/script/ffi/Tex3D.lua +++ b/engine/lib/phx/script/ffi_common/Tex3D.lua @@ -1,6 +1,6 @@ -- Tex3D ----------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Tex3D do -- C Definitions diff --git a/engine/lib/phx/script/ffi/TexCube.lua b/engine/lib/phx/script/ffi_common/TexCube.lua similarity index 98% rename from engine/lib/phx/script/ffi/TexCube.lua rename to engine/lib/phx/script/ffi_common/TexCube.lua index 2765b497a..76c1b0168 100644 --- a/engine/lib/phx/script/ffi/TexCube.lua +++ b/engine/lib/phx/script/ffi_common/TexCube.lua @@ -1,6 +1,6 @@ -- TexCube --------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local TexCube do -- C Definitions diff --git a/engine/lib/phx/script/ffi/TexFilter.lua b/engine/lib/phx/script/ffi_common/TexFilter.lua similarity index 95% rename from engine/lib/phx/script/ffi/TexFilter.lua rename to engine/lib/phx/script/ffi_common/TexFilter.lua index 215031e54..5007b9142 100644 --- a/engine/lib/phx/script/ffi/TexFilter.lua +++ b/engine/lib/phx/script/ffi_common/TexFilter.lua @@ -1,6 +1,6 @@ -- TexFilter ------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local TexFilter do -- C Definitions diff --git a/engine/lib/phx/script/ffi/TexFormat.lua b/engine/lib/phx/script/ffi_common/TexFormat.lua similarity index 98% rename from engine/lib/phx/script/ffi/TexFormat.lua rename to engine/lib/phx/script/ffi_common/TexFormat.lua index 3dfa76cae..d78ad5c71 100644 --- a/engine/lib/phx/script/ffi/TexFormat.lua +++ b/engine/lib/phx/script/ffi_common/TexFormat.lua @@ -1,6 +1,6 @@ -- TexFormat ------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local TexFormat do -- C Definitions diff --git a/engine/lib/phx/script/ffi/TexWrapMode.lua b/engine/lib/phx/script/ffi_common/TexWrapMode.lua similarity index 94% rename from engine/lib/phx/script/ffi/TexWrapMode.lua rename to engine/lib/phx/script/ffi_common/TexWrapMode.lua index 27aca9074..66d5735fc 100644 --- a/engine/lib/phx/script/ffi/TexWrapMode.lua +++ b/engine/lib/phx/script/ffi_common/TexWrapMode.lua @@ -1,6 +1,6 @@ -- TexWrapMode ----------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local TexWrapMode do -- C Definitions diff --git a/engine/lib/phx/script/ffi/Triangle.lua b/engine/lib/phx/script/ffi_common/Triangle.lua similarity index 97% rename from engine/lib/phx/script/ffi/Triangle.lua rename to engine/lib/phx/script/ffi_common/Triangle.lua index 64f21c394..61b2d4d5c 100644 --- a/engine/lib/phx/script/ffi/Triangle.lua +++ b/engine/lib/phx/script/ffi_common/Triangle.lua @@ -1,6 +1,6 @@ -- Triangle -------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Triangle do -- C Definitions diff --git a/engine/lib/phx/script/ffi/TriangleTest.lua b/engine/lib/phx/script/ffi_common/TriangleTest.lua similarity index 94% rename from engine/lib/phx/script/ffi/TriangleTest.lua rename to engine/lib/phx/script/ffi_common/TriangleTest.lua index 0c44b5f38..405c8e08b 100644 --- a/engine/lib/phx/script/ffi/TriangleTest.lua +++ b/engine/lib/phx/script/ffi_common/TriangleTest.lua @@ -1,6 +1,6 @@ -- TriangleTest ---------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local TriangleTest do -- Global Symbol Table diff --git a/engine/lib/phx/script/ffi/Trigger.lua b/engine/lib/phx/script/ffi_common/Trigger.lua similarity index 98% rename from engine/lib/phx/script/ffi/Trigger.lua rename to engine/lib/phx/script/ffi_common/Trigger.lua index b279cc775..6a72fcca9 100644 --- a/engine/lib/phx/script/ffi/Trigger.lua +++ b/engine/lib/phx/script/ffi_common/Trigger.lua @@ -1,6 +1,6 @@ -- Trigger --------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Trigger do -- C Definitions diff --git a/engine/lib/phx/script/ffi/UIRenderer.lua b/engine/lib/phx/script/ffi_common/UIRenderer.lua similarity index 97% rename from engine/lib/phx/script/ffi/UIRenderer.lua rename to engine/lib/phx/script/ffi_common/UIRenderer.lua index 40bd09f2e..ec2ad4741 100644 --- a/engine/lib/phx/script/ffi/UIRenderer.lua +++ b/engine/lib/phx/script/ffi_common/UIRenderer.lua @@ -1,6 +1,6 @@ -- UIRenderer ------------------------------------------------------------------ local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local UIRenderer do -- C Definitions diff --git a/engine/lib/phx/script/ffi/Vec2d.lua b/engine/lib/phx/script/ffi_common/Vec2d.lua similarity index 93% rename from engine/lib/phx/script/ffi/Vec2d.lua rename to engine/lib/phx/script/ffi_common/Vec2d.lua index abdcf0526..922941e81 100644 --- a/engine/lib/phx/script/ffi/Vec2d.lua +++ b/engine/lib/phx/script/ffi_common/Vec2d.lua @@ -1,6 +1,6 @@ -- Vec2d ----------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Vec2d do -- Global Symbol Table diff --git a/engine/lib/phx/script/ffi/Vec2f.lua b/engine/lib/phx/script/ffi_common/Vec2f.lua similarity index 93% rename from engine/lib/phx/script/ffi/Vec2f.lua rename to engine/lib/phx/script/ffi_common/Vec2f.lua index 359da2094..635f29239 100644 --- a/engine/lib/phx/script/ffi/Vec2f.lua +++ b/engine/lib/phx/script/ffi_common/Vec2f.lua @@ -1,6 +1,6 @@ -- Vec2f ----------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Vec2f do -- Global Symbol Table diff --git a/engine/lib/phx/script/ffi/Vec2i.lua b/engine/lib/phx/script/ffi_common/Vec2i.lua similarity index 93% rename from engine/lib/phx/script/ffi/Vec2i.lua rename to engine/lib/phx/script/ffi_common/Vec2i.lua index 628c72121..38dd7be9f 100644 --- a/engine/lib/phx/script/ffi/Vec2i.lua +++ b/engine/lib/phx/script/ffi_common/Vec2i.lua @@ -1,6 +1,6 @@ -- Vec2i ----------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Vec2i do -- Global Symbol Table diff --git a/engine/lib/phx/script/ffi/Vec3d.lua b/engine/lib/phx/script/ffi_common/Vec3d.lua similarity index 93% rename from engine/lib/phx/script/ffi/Vec3d.lua rename to engine/lib/phx/script/ffi_common/Vec3d.lua index 59c99044d..f838a5c9b 100644 --- a/engine/lib/phx/script/ffi/Vec3d.lua +++ b/engine/lib/phx/script/ffi_common/Vec3d.lua @@ -1,6 +1,6 @@ -- Vec3d ----------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Vec3d do -- Global Symbol Table diff --git a/engine/lib/phx/script/ffi/Vec3f.lua b/engine/lib/phx/script/ffi_common/Vec3f.lua similarity index 93% rename from engine/lib/phx/script/ffi/Vec3f.lua rename to engine/lib/phx/script/ffi_common/Vec3f.lua index 190b82580..436176222 100644 --- a/engine/lib/phx/script/ffi/Vec3f.lua +++ b/engine/lib/phx/script/ffi_common/Vec3f.lua @@ -1,6 +1,6 @@ -- Vec3f ----------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Vec3f do -- Global Symbol Table diff --git a/engine/lib/phx/script/ffi/Vec3i.lua b/engine/lib/phx/script/ffi_common/Vec3i.lua similarity index 93% rename from engine/lib/phx/script/ffi/Vec3i.lua rename to engine/lib/phx/script/ffi_common/Vec3i.lua index b35a1192a..1e0f429f9 100644 --- a/engine/lib/phx/script/ffi/Vec3i.lua +++ b/engine/lib/phx/script/ffi_common/Vec3i.lua @@ -1,6 +1,6 @@ -- Vec3i ----------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Vec3i do -- Global Symbol Table diff --git a/engine/lib/phx/script/ffi/Vec4d.lua b/engine/lib/phx/script/ffi_common/Vec4d.lua similarity index 93% rename from engine/lib/phx/script/ffi/Vec4d.lua rename to engine/lib/phx/script/ffi_common/Vec4d.lua index 35309fee2..edabff8bb 100644 --- a/engine/lib/phx/script/ffi/Vec4d.lua +++ b/engine/lib/phx/script/ffi_common/Vec4d.lua @@ -1,6 +1,6 @@ -- Vec4d ----------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Vec4d do -- Global Symbol Table diff --git a/engine/lib/phx/script/ffi/Vec4f.lua b/engine/lib/phx/script/ffi_common/Vec4f.lua similarity index 93% rename from engine/lib/phx/script/ffi/Vec4f.lua rename to engine/lib/phx/script/ffi_common/Vec4f.lua index e2a88d984..30350f9bc 100644 --- a/engine/lib/phx/script/ffi/Vec4f.lua +++ b/engine/lib/phx/script/ffi_common/Vec4f.lua @@ -1,6 +1,6 @@ -- Vec4f ----------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Vec4f do -- Global Symbol Table diff --git a/engine/lib/phx/script/ffi/Vec4i.lua b/engine/lib/phx/script/ffi_common/Vec4i.lua similarity index 93% rename from engine/lib/phx/script/ffi/Vec4i.lua rename to engine/lib/phx/script/ffi_common/Vec4i.lua index a0ee674d7..937f6d1f9 100644 --- a/engine/lib/phx/script/ffi/Vec4i.lua +++ b/engine/lib/phx/script/ffi_common/Vec4i.lua @@ -1,6 +1,6 @@ -- Vec4i ----------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Vec4i do -- Global Symbol Table diff --git a/engine/lib/phx/script/ffi/Vertex.lua b/engine/lib/phx/script/ffi_common/Vertex.lua similarity index 93% rename from engine/lib/phx/script/ffi/Vertex.lua rename to engine/lib/phx/script/ffi_common/Vertex.lua index 20ccea213..271c055ca 100644 --- a/engine/lib/phx/script/ffi/Vertex.lua +++ b/engine/lib/phx/script/ffi_common/Vertex.lua @@ -1,6 +1,6 @@ -- Vertex ---------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Vertex do -- Global Symbol Table diff --git a/engine/lib/phx/script/ffi/Viewport.lua b/engine/lib/phx/script/ffi_common/Viewport.lua similarity index 94% rename from engine/lib/phx/script/ffi/Viewport.lua rename to engine/lib/phx/script/ffi_common/Viewport.lua index be32c203a..b8cc99976 100644 --- a/engine/lib/phx/script/ffi/Viewport.lua +++ b/engine/lib/phx/script/ffi_common/Viewport.lua @@ -1,6 +1,6 @@ -- Viewport -------------------------------------------------------------------- local ffi = require('ffi') -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local Viewport do -- C Definitions diff --git a/engine/lib/phx/script/ffiext/BSP.lua b/engine/lib/phx/script/ffi_ext/BSP.lua similarity index 87% rename from engine/lib/phx/script/ffiext/BSP.lua rename to engine/lib/phx/script/ffi_ext/BSP.lua index a3c927e4b..a6e29fcc7 100644 --- a/engine/lib/phx/script/ffiext/BSP.lua +++ b/engine/lib/phx/script/ffi_ext/BSP.lua @@ -1,4 +1,4 @@ -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib function onDef_BSP(t, mt) t.Create = function(...) diff --git a/engine/lib/phx/script/ffiext/Box3.lua b/engine/lib/phx/script/ffi_ext/Box3.lua similarity index 88% rename from engine/lib/phx/script/ffiext/Box3.lua rename to engine/lib/phx/script/ffi_ext/Box3.lua index 1ea0a24a0..f34e987b6 100644 --- a/engine/lib/phx/script/ffiext/Box3.lua +++ b/engine/lib/phx/script/ffi_ext/Box3.lua @@ -1,4 +1,4 @@ -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local function defineBox3(box3, mt) function mt.__tostring(b) diff --git a/engine/lib/phx/script/ffiext/Directory.lua b/engine/lib/phx/script/ffi_ext/Directory.lua similarity index 98% rename from engine/lib/phx/script/ffiext/Directory.lua rename to engine/lib/phx/script/ffi_ext/Directory.lua index dc5cf0d4a..76fcaeb32 100644 --- a/engine/lib/phx/script/ffiext/Directory.lua +++ b/engine/lib/phx/script/ffi_ext/Directory.lua @@ -1,4 +1,4 @@ -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib function onDef_Directory(t, mt) local function walkDirectory(path, root, fn, recurse) diff --git a/engine/lib/phx/script/ffiext/File.lua b/engine/lib/phx/script/ffi_ext/File.lua similarity index 86% rename from engine/lib/phx/script/ffiext/File.lua rename to engine/lib/phx/script/ffi_ext/File.lua index 84dfa4d29..767199ce3 100644 --- a/engine/lib/phx/script/ffiext/File.lua +++ b/engine/lib/phx/script/ffi_ext/File.lua @@ -1,5 +1,5 @@ -- TODO : Ensure mt exists in genffi -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib function onDef_File(t, mt) t.Read = function(path) diff --git a/engine/lib/phx/script/ffiext/Font.lua b/engine/lib/phx/script/ffi_ext/Font.lua similarity index 80% rename from engine/lib/phx/script/ffiext/Font.lua rename to engine/lib/phx/script/ffi_ext/Font.lua index 96fa9176c..c8bb382da 100644 --- a/engine/lib/phx/script/ffiext/Font.lua +++ b/engine/lib/phx/script/ffi_ext/Font.lua @@ -1,4 +1,4 @@ -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib function onDef_Font_t(t, mt) mt.__index.getSize = function(self, text) diff --git a/engine/lib/phx/script/ffiext/Input.lua b/engine/lib/phx/script/ffi_ext/Input.lua similarity index 94% rename from engine/lib/phx/script/ffiext/Input.lua rename to engine/lib/phx/script/ffi_ext/Input.lua index 7f844d065..166f200db 100644 --- a/engine/lib/phx/script/ffiext/Input.lua +++ b/engine/lib/phx/script/ffi_ext/Input.lua @@ -1,4 +1,4 @@ -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib function onDef_Input(t, mt) t.GetMouseDelta = function() diff --git a/engine/lib/phx/script/ffiext/Math.lua b/engine/lib/phx/script/ffi_ext/Math.lua similarity index 99% rename from engine/lib/phx/script/ffiext/Math.lua rename to engine/lib/phx/script/ffi_ext/Math.lua index fea849618..256d31b0e 100644 --- a/engine/lib/phx/script/ffiext/Math.lua +++ b/engine/lib/phx/script/ffi_ext/Math.lua @@ -1,4 +1,4 @@ -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib function onDef_Math(t, mt) t.Tau = 6.283185307179586232 diff --git a/engine/lib/phx/script/ffiext/Matrix.lua b/engine/lib/phx/script/ffi_ext/Matrix.lua similarity index 97% rename from engine/lib/phx/script/ffiext/Matrix.lua rename to engine/lib/phx/script/ffi_ext/Matrix.lua index 4be536a99..9227c5411 100644 --- a/engine/lib/phx/script/ffiext/Matrix.lua +++ b/engine/lib/phx/script/ffi_ext/Matrix.lua @@ -1,4 +1,4 @@ -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib function onDef_Matrix_t(t, mt) function mt.__add(a, b) diff --git a/engine/lib/phx/script/ffiext/Mesh.lua b/engine/lib/phx/script/ffi_ext/Mesh.lua similarity index 87% rename from engine/lib/phx/script/ffiext/Mesh.lua rename to engine/lib/phx/script/ffi_ext/Mesh.lua index b577761ee..455c21d0a 100644 --- a/engine/lib/phx/script/ffiext/Mesh.lua +++ b/engine/lib/phx/script/ffi_ext/Mesh.lua @@ -1,4 +1,4 @@ -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib function onDef_Mesh_t(t, mt) mt.__index.getBound = function(self) diff --git a/engine/lib/phx/script/ffiext/Physics.lua b/engine/lib/phx/script/ffi_ext/Physics.lua similarity index 92% rename from engine/lib/phx/script/ffiext/Physics.lua rename to engine/lib/phx/script/ffi_ext/Physics.lua index f35b744a3..cb3ea20fe 100644 --- a/engine/lib/phx/script/ffiext/Physics.lua +++ b/engine/lib/phx/script/ffi_ext/Physics.lua @@ -1,4 +1,4 @@ -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib function onDef_Physics_t(t, mt) mt.__index.rayCast = function(self, ray) diff --git a/engine/lib/phx/script/ffiext/Profiler.lua b/engine/lib/phx/script/ffi_ext/Profiler.lua similarity index 92% rename from engine/lib/phx/script/ffiext/Profiler.lua rename to engine/lib/phx/script/ffi_ext/Profiler.lua index c72774a6e..ed347901d 100644 --- a/engine/lib/phx/script/ffiext/Profiler.lua +++ b/engine/lib/phx/script/ffi_ext/Profiler.lua @@ -1,4 +1,4 @@ -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local memory function onDef_Profiler(t, mt) diff --git a/engine/lib/phx/script/ffiext/Quat.lua b/engine/lib/phx/script/ffi_ext/Quat.lua similarity index 98% rename from engine/lib/phx/script/ffiext/Quat.lua rename to engine/lib/phx/script/ffi_ext/Quat.lua index 573e70d4f..3a2d21912 100644 --- a/engine/lib/phx/script/ffiext/Quat.lua +++ b/engine/lib/phx/script/ffi_ext/Quat.lua @@ -1,4 +1,4 @@ -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib function onDef_Quat(t, mt) function t.FromAxisAngle(axis, angle) diff --git a/engine/lib/phx/script/ffiext/RNG.lua b/engine/lib/phx/script/ffi_ext/RNG.lua similarity index 97% rename from engine/lib/phx/script/ffiext/RNG.lua rename to engine/lib/phx/script/ffi_ext/RNG.lua index c61a3bcff..588f869b7 100644 --- a/engine/lib/phx/script/ffiext/RNG.lua +++ b/engine/lib/phx/script/ffi_ext/RNG.lua @@ -1,4 +1,4 @@ -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib function onDef_RNG_t(t, mt) mt.__index.choose = function(self, table) return table[libphx.RNG_GetInt(self, 1, #table)] end diff --git a/engine/lib/phx/script/ffiext/Ray.lua b/engine/lib/phx/script/ffi_ext/Ray.lua similarity index 94% rename from engine/lib/phx/script/ffiext/Ray.lua rename to engine/lib/phx/script/ffi_ext/Ray.lua index c9800d735..ea6ee94b9 100644 --- a/engine/lib/phx/script/ffiext/Ray.lua +++ b/engine/lib/phx/script/ffi_ext/Ray.lua @@ -1,4 +1,4 @@ -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib function onDef_Ray_t(t, mt) mt.__index.getPoint = function(self, t) diff --git a/engine/lib/phx/script/ffiext/Tex2D.lua b/engine/lib/phx/script/ffi_ext/Tex2D.lua similarity index 88% rename from engine/lib/phx/script/ffiext/Tex2D.lua rename to engine/lib/phx/script/ffi_ext/Tex2D.lua index a767fec75..e6146861a 100644 --- a/engine/lib/phx/script/ffiext/Tex2D.lua +++ b/engine/lib/phx/script/ffi_ext/Tex2D.lua @@ -1,4 +1,4 @@ -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib function onDef_Tex2D_t(t, mt) mt.__index.getSize = function(self) diff --git a/engine/lib/phx/script/ffiext/Tex3D.lua b/engine/lib/phx/script/ffi_ext/Tex3D.lua similarity index 88% rename from engine/lib/phx/script/ffiext/Tex3D.lua rename to engine/lib/phx/script/ffi_ext/Tex3D.lua index b9222df95..131554f4f 100644 --- a/engine/lib/phx/script/ffiext/Tex3D.lua +++ b/engine/lib/phx/script/ffi_ext/Tex3D.lua @@ -1,4 +1,4 @@ -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib function onDef_Tex3D_t(t, mt) mt.__index.getSize = function(self) diff --git a/engine/lib/phx/script/ffiext/Vec2.lua b/engine/lib/phx/script/ffi_ext/Vec2.lua similarity index 99% rename from engine/lib/phx/script/ffiext/Vec2.lua rename to engine/lib/phx/script/ffi_ext/Vec2.lua index 7fe60c7ee..916cd47f7 100644 --- a/engine/lib/phx/script/ffiext/Vec2.lua +++ b/engine/lib/phx/script/ffi_ext/Vec2.lua @@ -1,4 +1,4 @@ -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local function defineVec2_t(t, mt) local Vec2 = t diff --git a/engine/lib/phx/script/ffiext/Vec3.lua b/engine/lib/phx/script/ffi_ext/Vec3.lua similarity index 99% rename from engine/lib/phx/script/ffiext/Vec3.lua rename to engine/lib/phx/script/ffi_ext/Vec3.lua index 4b89daa70..baaabc14c 100644 --- a/engine/lib/phx/script/ffiext/Vec3.lua +++ b/engine/lib/phx/script/ffi_ext/Vec3.lua @@ -1,4 +1,4 @@ -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local function defineVec3(t, mt) local Vec3 = mt.__call diff --git a/engine/lib/phx/script/ffiext/Vec4.lua b/engine/lib/phx/script/ffi_ext/Vec4.lua similarity index 99% rename from engine/lib/phx/script/ffiext/Vec4.lua rename to engine/lib/phx/script/ffi_ext/Vec4.lua index b5641ef87..b75e51458 100644 --- a/engine/lib/phx/script/ffiext/Vec4.lua +++ b/engine/lib/phx/script/ffi_ext/Vec4.lua @@ -1,4 +1,4 @@ -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib local function defineVec4_t(t, mt) local Vec4 = t diff --git a/engine/lib/phx/script/ffiext/Viewport.lua b/engine/lib/phx/script/ffi_ext/Viewport.lua similarity index 78% rename from engine/lib/phx/script/ffiext/Viewport.lua rename to engine/lib/phx/script/ffi_ext/Viewport.lua index fda5583ac..8317b0be9 100644 --- a/engine/lib/phx/script/ffiext/Viewport.lua +++ b/engine/lib/phx/script/ffi_ext/Viewport.lua @@ -1,4 +1,4 @@ -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib function onDef_Viewport(t, mt) t.GetSize = function() diff --git a/engine/lib/phx/script/ffiext/Window.lua b/engine/lib/phx/script/ffi_ext/Window.lua similarity index 90% rename from engine/lib/phx/script/ffiext/Window.lua rename to engine/lib/phx/script/ffi_ext/Window.lua index c6c6e6aa2..982745f58 100644 --- a/engine/lib/phx/script/ffiext/Window.lua +++ b/engine/lib/phx/script/ffi_ext/Window.lua @@ -1,4 +1,4 @@ -local libphx = require('ffi.libphx').lib +local libphx = require('libphx').lib function onDef_Window_t(t, mt) mt.__index.getPosition = function(self) diff --git a/engine/lib/phx/script/ffi_gen/Audio.lua b/engine/lib/phx/script/ffi_gen/Audio.lua new file mode 100644 index 000000000..1b70832bb --- /dev/null +++ b/engine/lib/phx/script/ffi_gen/Audio.lua @@ -0,0 +1,65 @@ +-- Audio ----------------------------------------------------------------------- +local Loader = {} + +function Loader.declareType() + ffi.cdef [[ + typedef struct Audio {} Audio; + ]] + + return 1, 'Audio' +end + +function Loader.defineType() + local ffi = require('ffi') + local libphx = require('libphx').lib + local Audio + + do -- C Definitions + ffi.cdef [[ + void Audio_Free (Audio*); + Audio* Audio_Create (); + void Audio_Play (Audio*, Sound* sound); + void Audio_SetListenerPos (Audio*, Vec3f const* pos, Quat const* rot); + uint64 Audio_GetLoadedCount (Audio const*); + uint64 Audio_GetPlayingCount (Audio const*); + uint64 Audio_GetTotalCount (Audio const*); + ]] + end + + do -- Global Symbol Table + Audio = { + Free = libphx.Audio_Free, + Create = libphx.Audio_Create, + Play = libphx.Audio_Play, + SetListenerPos = libphx.Audio_SetListenerPos, + GetLoadedCount = libphx.Audio_GetLoadedCount, + GetPlayingCount = libphx.Audio_GetPlayingCount, + GetTotalCount = libphx.Audio_GetTotalCount, + } + + if onDef_Audio then onDef_Audio(Audio, mt) end + Audio = setmetatable(Audio, mt) + end + + do -- Metatype for class instances + local t = ffi.typeof('Audio') + local mt = { + __index = { + managed = function(self) return ffi.gc(self, libphx.Audio_Free) end, + free = libphx.Audio_Free, + play = libphx.Audio_Play, + setListenerPos = libphx.Audio_SetListenerPos, + getLoadedCount = libphx.Audio_GetLoadedCount, + getPlayingCount = libphx.Audio_GetPlayingCount, + getTotalCount = libphx.Audio_GetTotalCount, + }, + } + + if onDef_Audio_t then onDef_Audio_t(t, mt) end + Audio_t = ffi.metatype(t, mt) + end + + return Audio +end + +return Loader diff --git a/engine/lib/phx/script/ffi_gen/Bit.lua b/engine/lib/phx/script/ffi_gen/Bit.lua new file mode 100644 index 000000000..a2b2d4183 --- /dev/null +++ b/engine/lib/phx/script/ffi_gen/Bit.lua @@ -0,0 +1,45 @@ +-- Bit ------------------------------------------------------------------------- +local Loader = {} + +function Loader.declareType() + return 0, 'Bit' +end + +function Loader.defineType() + local ffi = require('ffi') + local libphx = require('libphx').lib + local Bit + + do -- C Definitions + ffi.cdef [[ + uint32 Bit_And32 (uint32 x, uint32 y); + uint32 Bit_Or32 (uint32 x, uint32 y); + uint32 Bit_Xor32 (uint32 x, uint32 y); + bool Bit_Has32 (uint32 x, uint32 y); + uint64 Bit_And64 (uint64 x, uint64 y); + uint64 Bit_Or64 (uint64 x, uint64 y); + uint64 Bit_Xor64 (uint64 x, uint64 y); + bool Bit_Has64 (uint64 x, uint64 y); + ]] + end + + do -- Global Symbol Table + Bit = { + And32 = libphx.Bit_And32, + Or32 = libphx.Bit_Or32, + Xor32 = libphx.Bit_Xor32, + Has32 = libphx.Bit_Has32, + And64 = libphx.Bit_And64, + Or64 = libphx.Bit_Or64, + Xor64 = libphx.Bit_Xor64, + Has64 = libphx.Bit_Has64, + } + + if onDef_Bit then onDef_Bit(Bit, mt) end + Bit = setmetatable(Bit, mt) + end + + return Bit +end + +return Loader diff --git a/engine/lib/phx/script/ffi_gen/Button.lua b/engine/lib/phx/script/ffi_gen/Button.lua new file mode 100644 index 000000000..672c9782f --- /dev/null +++ b/engine/lib/phx/script/ffi_gen/Button.lua @@ -0,0 +1,445 @@ +-- Button ---------------------------------------------------------------------- +local Loader = {} + +function Loader.declareType() + ffi.cdef [[ + typedef uint8 Button; + ]] + + return 2, 'Button' +end + +function Loader.defineType() + local ffi = require('ffi') + local libphx = require('libphx').lib + local Button + + do -- C Definitions + ffi.cdef [[ + Button Button_KeyboardKey1; + Button Button_KeyboardKey2; + Button Button_KeyboardKey3; + Button Button_KeyboardKey4; + Button Button_KeyboardKey5; + Button Button_KeyboardKey6; + Button Button_KeyboardKey7; + Button Button_KeyboardKey8; + Button Button_KeyboardKey9; + Button Button_KeyboardKey0; + Button Button_KeyboardA; + Button Button_KeyboardB; + Button Button_KeyboardC; + Button Button_KeyboardD; + Button Button_KeyboardE; + Button Button_KeyboardF; + Button Button_KeyboardG; + Button Button_KeyboardH; + Button Button_KeyboardI; + Button Button_KeyboardJ; + Button Button_KeyboardK; + Button Button_KeyboardL; + Button Button_KeyboardM; + Button Button_KeyboardN; + Button Button_KeyboardO; + Button Button_KeyboardP; + Button Button_KeyboardQ; + Button Button_KeyboardR; + Button Button_KeyboardS; + Button Button_KeyboardT; + Button Button_KeyboardU; + Button Button_KeyboardV; + Button Button_KeyboardW; + Button Button_KeyboardX; + Button Button_KeyboardY; + Button Button_KeyboardZ; + Button Button_KeyboardEscape; + Button Button_KeyboardF1; + Button Button_KeyboardF2; + Button Button_KeyboardF3; + Button Button_KeyboardF4; + Button Button_KeyboardF5; + Button Button_KeyboardF6; + Button Button_KeyboardF7; + Button Button_KeyboardF8; + Button Button_KeyboardF9; + Button Button_KeyboardF10; + Button Button_KeyboardF11; + Button Button_KeyboardF12; + Button Button_KeyboardF13; + Button Button_KeyboardF14; + Button Button_KeyboardF15; + Button Button_KeyboardF16; + Button Button_KeyboardF17; + Button Button_KeyboardF18; + Button Button_KeyboardF19; + Button Button_KeyboardF20; + Button Button_KeyboardF21; + Button Button_KeyboardF22; + Button Button_KeyboardF23; + Button Button_KeyboardF24; + Button Button_KeyboardSnapshot; + Button Button_KeyboardScroll; + Button Button_KeyboardPause; + Button Button_KeyboardInsert; + Button Button_KeyboardHome; + Button Button_KeyboardDelete; + Button Button_KeyboardEnd; + Button Button_KeyboardPageDown; + Button Button_KeyboardPageUp; + Button Button_KeyboardLeft; + Button Button_KeyboardUp; + Button Button_KeyboardRight; + Button Button_KeyboardDown; + Button Button_KeyboardBack; + Button Button_KeyboardReturn; + Button Button_KeyboardSpace; + Button Button_KeyboardCompose; + Button Button_KeyboardCaret; + Button Button_KeyboardNumlock; + Button Button_KeyboardNumpad0; + Button Button_KeyboardNumpad1; + Button Button_KeyboardNumpad2; + Button Button_KeyboardNumpad3; + Button Button_KeyboardNumpad4; + Button Button_KeyboardNumpad5; + Button Button_KeyboardNumpad6; + Button Button_KeyboardNumpad7; + Button Button_KeyboardNumpad8; + Button Button_KeyboardNumpad9; + Button Button_KeyboardAbntC1; + Button Button_KeyboardAbntC2; + Button Button_KeyboardNumpadAdd; + Button Button_KeyboardApostrophe; + Button Button_KeyboardApps; + Button Button_KeyboardAsterisk; + Button Button_KeyboardPlus; + Button Button_KeyboardAt; + Button Button_KeyboardAx; + Button Button_KeyboardBackslash; + Button Button_KeyboardCalculator; + Button Button_KeyboardCapital; + Button Button_KeyboardColon; + Button Button_KeyboardComma; + Button Button_KeyboardConvert; + Button Button_KeyboardNumpadDecimal; + Button Button_KeyboardNumpadDivide; + Button Button_KeyboardEquals; + Button Button_KeyboardGrave; + Button Button_KeyboardKana; + Button Button_KeyboardKanji; + Button Button_KeyboardAltLeft; + Button Button_KeyboardBracketLeft; + Button Button_KeyboardControlLeft; + Button Button_KeyboardShiftLeft; + Button Button_KeyboardSuperLeft; + Button Button_KeyboardMail; + Button Button_KeyboardMediaSelect; + Button Button_KeyboardMediaStop; + Button Button_KeyboardMinus; + Button Button_KeyboardNumpadMultiply; + Button Button_KeyboardMute; + Button Button_KeyboardMyComputer; + Button Button_KeyboardNavigateForward; + Button Button_KeyboardNavigateBackward; + Button Button_KeyboardNextTrack; + Button Button_KeyboardNoConvert; + Button Button_KeyboardNumpadComma; + Button Button_KeyboardNumpadEnter; + Button Button_KeyboardNumpadEquals; + Button Button_KeyboardOem102; + Button Button_KeyboardPeriod; + Button Button_KeyboardPlayPause; + Button Button_KeyboardPower; + Button Button_KeyboardPrevTrack; + Button Button_KeyboardAltRight; + Button Button_KeyboardBracketRight; + Button Button_KeyboardControlRight; + Button Button_KeyboardShiftRight; + Button Button_KeyboardSuperRight; + Button Button_KeyboardSemicolon; + Button Button_KeyboardSlash; + Button Button_KeyboardSleep; + Button Button_KeyboardStop; + Button Button_KeyboardNumpadSubtract; + Button Button_KeyboardSysrq; + Button Button_KeyboardTab; + Button Button_KeyboardUnderline; + Button Button_KeyboardUnlabeled; + Button Button_KeyboardVolumeDown; + Button Button_KeyboardVolumeUp; + Button Button_KeyboardWake; + Button Button_KeyboardWebBack; + Button Button_KeyboardWebFavorites; + Button Button_KeyboardWebForward; + Button Button_KeyboardWebHome; + Button Button_KeyboardWebRefresh; + Button Button_KeyboardWebSearch; + Button Button_KeyboardWebStop; + Button Button_KeyboardYen; + Button Button_KeyboardCopy; + Button Button_KeyboardPaste; + Button Button_KeyboardCut; + Button Button_MouseLeft; + Button Button_MouseMiddle; + Button Button_MouseRight; + Button Button_MouseX1; + Button Button_MouseX2; + Button Button_MouseDeltaX; + Button Button_MouseDeltaY; + Button Button_MouseScrollX; + Button Button_MouseScrollY; + Button Button_MouseScrollPixelX; + Button Button_MouseScrollPixelY; + Button Button_GamepadSouth; + Button Button_GamepadEast; + Button Button_GamepadNorth; + Button Button_GamepadWest; + Button Button_GamepadC; + Button Button_GamepadZ; + Button Button_GamepadLeftTrigger; + Button Button_GamepadLeftTrigger2; + Button Button_GamepadRightTrigger; + Button Button_GamepadRightTrigger2; + Button Button_GamepadSelect; + Button Button_GamepadStart; + Button Button_GamepadMode; + Button Button_GamepadLeftThumb; + Button Button_GamepadRightThumb; + Button Button_GamepadDPadUp; + Button Button_GamepadDPadDown; + Button Button_GamepadDPadLeft; + Button Button_GamepadDPadRight; + Button Button_GamepadLeftStickX; + Button Button_GamepadLeftStickY; + Button Button_GamepadLeftZ; + Button Button_GamepadRightStickX; + Button Button_GamepadRightStickY; + Button Button_GamepadRightZ; + Button Button_TouchpadX; + Button Button_TouchpadY; + Button Button_TouchpadMagnifyDelta; + Button Button_TouchpadRotateDelta; + Button Button_SystemExit; + + cstr Button_ToString(Button); + ]] + end + + do -- Global Symbol Table + Button = { + KeyboardKey1 = libphx.Button_KeyboardKey1, + KeyboardKey2 = libphx.Button_KeyboardKey2, + KeyboardKey3 = libphx.Button_KeyboardKey3, + KeyboardKey4 = libphx.Button_KeyboardKey4, + KeyboardKey5 = libphx.Button_KeyboardKey5, + KeyboardKey6 = libphx.Button_KeyboardKey6, + KeyboardKey7 = libphx.Button_KeyboardKey7, + KeyboardKey8 = libphx.Button_KeyboardKey8, + KeyboardKey9 = libphx.Button_KeyboardKey9, + KeyboardKey0 = libphx.Button_KeyboardKey0, + KeyboardA = libphx.Button_KeyboardA, + KeyboardB = libphx.Button_KeyboardB, + KeyboardC = libphx.Button_KeyboardC, + KeyboardD = libphx.Button_KeyboardD, + KeyboardE = libphx.Button_KeyboardE, + KeyboardF = libphx.Button_KeyboardF, + KeyboardG = libphx.Button_KeyboardG, + KeyboardH = libphx.Button_KeyboardH, + KeyboardI = libphx.Button_KeyboardI, + KeyboardJ = libphx.Button_KeyboardJ, + KeyboardK = libphx.Button_KeyboardK, + KeyboardL = libphx.Button_KeyboardL, + KeyboardM = libphx.Button_KeyboardM, + KeyboardN = libphx.Button_KeyboardN, + KeyboardO = libphx.Button_KeyboardO, + KeyboardP = libphx.Button_KeyboardP, + KeyboardQ = libphx.Button_KeyboardQ, + KeyboardR = libphx.Button_KeyboardR, + KeyboardS = libphx.Button_KeyboardS, + KeyboardT = libphx.Button_KeyboardT, + KeyboardU = libphx.Button_KeyboardU, + KeyboardV = libphx.Button_KeyboardV, + KeyboardW = libphx.Button_KeyboardW, + KeyboardX = libphx.Button_KeyboardX, + KeyboardY = libphx.Button_KeyboardY, + KeyboardZ = libphx.Button_KeyboardZ, + KeyboardEscape = libphx.Button_KeyboardEscape, + KeyboardF1 = libphx.Button_KeyboardF1, + KeyboardF2 = libphx.Button_KeyboardF2, + KeyboardF3 = libphx.Button_KeyboardF3, + KeyboardF4 = libphx.Button_KeyboardF4, + KeyboardF5 = libphx.Button_KeyboardF5, + KeyboardF6 = libphx.Button_KeyboardF6, + KeyboardF7 = libphx.Button_KeyboardF7, + KeyboardF8 = libphx.Button_KeyboardF8, + KeyboardF9 = libphx.Button_KeyboardF9, + KeyboardF10 = libphx.Button_KeyboardF10, + KeyboardF11 = libphx.Button_KeyboardF11, + KeyboardF12 = libphx.Button_KeyboardF12, + KeyboardF13 = libphx.Button_KeyboardF13, + KeyboardF14 = libphx.Button_KeyboardF14, + KeyboardF15 = libphx.Button_KeyboardF15, + KeyboardF16 = libphx.Button_KeyboardF16, + KeyboardF17 = libphx.Button_KeyboardF17, + KeyboardF18 = libphx.Button_KeyboardF18, + KeyboardF19 = libphx.Button_KeyboardF19, + KeyboardF20 = libphx.Button_KeyboardF20, + KeyboardF21 = libphx.Button_KeyboardF21, + KeyboardF22 = libphx.Button_KeyboardF22, + KeyboardF23 = libphx.Button_KeyboardF23, + KeyboardF24 = libphx.Button_KeyboardF24, + KeyboardSnapshot = libphx.Button_KeyboardSnapshot, + KeyboardScroll = libphx.Button_KeyboardScroll, + KeyboardPause = libphx.Button_KeyboardPause, + KeyboardInsert = libphx.Button_KeyboardInsert, + KeyboardHome = libphx.Button_KeyboardHome, + KeyboardDelete = libphx.Button_KeyboardDelete, + KeyboardEnd = libphx.Button_KeyboardEnd, + KeyboardPageDown = libphx.Button_KeyboardPageDown, + KeyboardPageUp = libphx.Button_KeyboardPageUp, + KeyboardLeft = libphx.Button_KeyboardLeft, + KeyboardUp = libphx.Button_KeyboardUp, + KeyboardRight = libphx.Button_KeyboardRight, + KeyboardDown = libphx.Button_KeyboardDown, + KeyboardBack = libphx.Button_KeyboardBack, + KeyboardReturn = libphx.Button_KeyboardReturn, + KeyboardSpace = libphx.Button_KeyboardSpace, + KeyboardCompose = libphx.Button_KeyboardCompose, + KeyboardCaret = libphx.Button_KeyboardCaret, + KeyboardNumlock = libphx.Button_KeyboardNumlock, + KeyboardNumpad0 = libphx.Button_KeyboardNumpad0, + KeyboardNumpad1 = libphx.Button_KeyboardNumpad1, + KeyboardNumpad2 = libphx.Button_KeyboardNumpad2, + KeyboardNumpad3 = libphx.Button_KeyboardNumpad3, + KeyboardNumpad4 = libphx.Button_KeyboardNumpad4, + KeyboardNumpad5 = libphx.Button_KeyboardNumpad5, + KeyboardNumpad6 = libphx.Button_KeyboardNumpad6, + KeyboardNumpad7 = libphx.Button_KeyboardNumpad7, + KeyboardNumpad8 = libphx.Button_KeyboardNumpad8, + KeyboardNumpad9 = libphx.Button_KeyboardNumpad9, + KeyboardAbntC1 = libphx.Button_KeyboardAbntC1, + KeyboardAbntC2 = libphx.Button_KeyboardAbntC2, + KeyboardNumpadAdd = libphx.Button_KeyboardNumpadAdd, + KeyboardApostrophe = libphx.Button_KeyboardApostrophe, + KeyboardApps = libphx.Button_KeyboardApps, + KeyboardAsterisk = libphx.Button_KeyboardAsterisk, + KeyboardPlus = libphx.Button_KeyboardPlus, + KeyboardAt = libphx.Button_KeyboardAt, + KeyboardAx = libphx.Button_KeyboardAx, + KeyboardBackslash = libphx.Button_KeyboardBackslash, + KeyboardCalculator = libphx.Button_KeyboardCalculator, + KeyboardCapital = libphx.Button_KeyboardCapital, + KeyboardColon = libphx.Button_KeyboardColon, + KeyboardComma = libphx.Button_KeyboardComma, + KeyboardConvert = libphx.Button_KeyboardConvert, + KeyboardNumpadDecimal = libphx.Button_KeyboardNumpadDecimal, + KeyboardNumpadDivide = libphx.Button_KeyboardNumpadDivide, + KeyboardEquals = libphx.Button_KeyboardEquals, + KeyboardGrave = libphx.Button_KeyboardGrave, + KeyboardKana = libphx.Button_KeyboardKana, + KeyboardKanji = libphx.Button_KeyboardKanji, + KeyboardAltLeft = libphx.Button_KeyboardAltLeft, + KeyboardBracketLeft = libphx.Button_KeyboardBracketLeft, + KeyboardControlLeft = libphx.Button_KeyboardControlLeft, + KeyboardShiftLeft = libphx.Button_KeyboardShiftLeft, + KeyboardSuperLeft = libphx.Button_KeyboardSuperLeft, + KeyboardMail = libphx.Button_KeyboardMail, + KeyboardMediaSelect = libphx.Button_KeyboardMediaSelect, + KeyboardMediaStop = libphx.Button_KeyboardMediaStop, + KeyboardMinus = libphx.Button_KeyboardMinus, + KeyboardNumpadMultiply = libphx.Button_KeyboardNumpadMultiply, + KeyboardMute = libphx.Button_KeyboardMute, + KeyboardMyComputer = libphx.Button_KeyboardMyComputer, + KeyboardNavigateForward = libphx.Button_KeyboardNavigateForward, + KeyboardNavigateBackward = libphx.Button_KeyboardNavigateBackward, + KeyboardNextTrack = libphx.Button_KeyboardNextTrack, + KeyboardNoConvert = libphx.Button_KeyboardNoConvert, + KeyboardNumpadComma = libphx.Button_KeyboardNumpadComma, + KeyboardNumpadEnter = libphx.Button_KeyboardNumpadEnter, + KeyboardNumpadEquals = libphx.Button_KeyboardNumpadEquals, + KeyboardOem102 = libphx.Button_KeyboardOem102, + KeyboardPeriod = libphx.Button_KeyboardPeriod, + KeyboardPlayPause = libphx.Button_KeyboardPlayPause, + KeyboardPower = libphx.Button_KeyboardPower, + KeyboardPrevTrack = libphx.Button_KeyboardPrevTrack, + KeyboardAltRight = libphx.Button_KeyboardAltRight, + KeyboardBracketRight = libphx.Button_KeyboardBracketRight, + KeyboardControlRight = libphx.Button_KeyboardControlRight, + KeyboardShiftRight = libphx.Button_KeyboardShiftRight, + KeyboardSuperRight = libphx.Button_KeyboardSuperRight, + KeyboardSemicolon = libphx.Button_KeyboardSemicolon, + KeyboardSlash = libphx.Button_KeyboardSlash, + KeyboardSleep = libphx.Button_KeyboardSleep, + KeyboardStop = libphx.Button_KeyboardStop, + KeyboardNumpadSubtract = libphx.Button_KeyboardNumpadSubtract, + KeyboardSysrq = libphx.Button_KeyboardSysrq, + KeyboardTab = libphx.Button_KeyboardTab, + KeyboardUnderline = libphx.Button_KeyboardUnderline, + KeyboardUnlabeled = libphx.Button_KeyboardUnlabeled, + KeyboardVolumeDown = libphx.Button_KeyboardVolumeDown, + KeyboardVolumeUp = libphx.Button_KeyboardVolumeUp, + KeyboardWake = libphx.Button_KeyboardWake, + KeyboardWebBack = libphx.Button_KeyboardWebBack, + KeyboardWebFavorites = libphx.Button_KeyboardWebFavorites, + KeyboardWebForward = libphx.Button_KeyboardWebForward, + KeyboardWebHome = libphx.Button_KeyboardWebHome, + KeyboardWebRefresh = libphx.Button_KeyboardWebRefresh, + KeyboardWebSearch = libphx.Button_KeyboardWebSearch, + KeyboardWebStop = libphx.Button_KeyboardWebStop, + KeyboardYen = libphx.Button_KeyboardYen, + KeyboardCopy = libphx.Button_KeyboardCopy, + KeyboardPaste = libphx.Button_KeyboardPaste, + KeyboardCut = libphx.Button_KeyboardCut, + MouseLeft = libphx.Button_MouseLeft, + MouseMiddle = libphx.Button_MouseMiddle, + MouseRight = libphx.Button_MouseRight, + MouseX1 = libphx.Button_MouseX1, + MouseX2 = libphx.Button_MouseX2, + MouseDeltaX = libphx.Button_MouseDeltaX, + MouseDeltaY = libphx.Button_MouseDeltaY, + MouseScrollX = libphx.Button_MouseScrollX, + MouseScrollY = libphx.Button_MouseScrollY, + MouseScrollPixelX = libphx.Button_MouseScrollPixelX, + MouseScrollPixelY = libphx.Button_MouseScrollPixelY, + GamepadSouth = libphx.Button_GamepadSouth, + GamepadEast = libphx.Button_GamepadEast, + GamepadNorth = libphx.Button_GamepadNorth, + GamepadWest = libphx.Button_GamepadWest, + GamepadC = libphx.Button_GamepadC, + GamepadZ = libphx.Button_GamepadZ, + GamepadLeftTrigger = libphx.Button_GamepadLeftTrigger, + GamepadLeftTrigger2 = libphx.Button_GamepadLeftTrigger2, + GamepadRightTrigger = libphx.Button_GamepadRightTrigger, + GamepadRightTrigger2 = libphx.Button_GamepadRightTrigger2, + GamepadSelect = libphx.Button_GamepadSelect, + GamepadStart = libphx.Button_GamepadStart, + GamepadMode = libphx.Button_GamepadMode, + GamepadLeftThumb = libphx.Button_GamepadLeftThumb, + GamepadRightThumb = libphx.Button_GamepadRightThumb, + GamepadDPadUp = libphx.Button_GamepadDPadUp, + GamepadDPadDown = libphx.Button_GamepadDPadDown, + GamepadDPadLeft = libphx.Button_GamepadDPadLeft, + GamepadDPadRight = libphx.Button_GamepadDPadRight, + GamepadLeftStickX = libphx.Button_GamepadLeftStickX, + GamepadLeftStickY = libphx.Button_GamepadLeftStickY, + GamepadLeftZ = libphx.Button_GamepadLeftZ, + GamepadRightStickX = libphx.Button_GamepadRightStickX, + GamepadRightStickY = libphx.Button_GamepadRightStickY, + GamepadRightZ = libphx.Button_GamepadRightZ, + TouchpadX = libphx.Button_TouchpadX, + TouchpadY = libphx.Button_TouchpadY, + TouchpadMagnifyDelta = libphx.Button_TouchpadMagnifyDelta, + TouchpadRotateDelta = libphx.Button_TouchpadRotateDelta, + SystemExit = libphx.Button_SystemExit, + + ToString = libphx.Button_ToString, + } + + if onDef_Button then onDef_Button(Button, mt) end + Button = setmetatable(Button, mt) + end + + return Button +end + +return Loader diff --git a/engine/lib/phx/script/ffi_gen/Cursor.lua b/engine/lib/phx/script/ffi_gen/Cursor.lua new file mode 100644 index 000000000..f4cdb0791 --- /dev/null +++ b/engine/lib/phx/script/ffi_gen/Cursor.lua @@ -0,0 +1,68 @@ +-- Cursor ---------------------------------------------------------------------- +local Loader = {} + +function Loader.declareType() + ffi.cdef [[ + typedef struct Cursor {} Cursor; + ]] + + return 1, 'Cursor' +end + +function Loader.defineType() + local ffi = require('ffi') + local libphx = require('libphx').lib + local Cursor + + do -- C Definitions + ffi.cdef [[ + CursorIcon Cursor_Icon (Cursor const*); + void Cursor_SetIcon (Cursor*, CursorIcon icon); + bool Cursor_IsVisible (Cursor const*); + void Cursor_SetVisible (Cursor*, bool visible); + CursorGrabMode Cursor_GrabMode (Cursor const*); + void Cursor_SetGrabMode (Cursor*, CursorGrabMode grabMode); + bool Cursor_IsHitTest (Cursor const*); + void Cursor_SetHitTest (Cursor*, bool hitTest); + ]] + end + + do -- Global Symbol Table + Cursor = { + Icon = libphx.Cursor_Icon, + SetIcon = libphx.Cursor_SetIcon, + IsVisible = libphx.Cursor_IsVisible, + SetVisible = libphx.Cursor_SetVisible, + GrabMode = libphx.Cursor_GrabMode, + SetGrabMode = libphx.Cursor_SetGrabMode, + IsHitTest = libphx.Cursor_IsHitTest, + SetHitTest = libphx.Cursor_SetHitTest, + } + + if onDef_Cursor then onDef_Cursor(Cursor, mt) end + Cursor = setmetatable(Cursor, mt) + end + + do -- Metatype for class instances + local t = ffi.typeof('Cursor') + local mt = { + __index = { + icon = libphx.Cursor_Icon, + setIcon = libphx.Cursor_SetIcon, + isVisible = libphx.Cursor_IsVisible, + setVisible = libphx.Cursor_SetVisible, + grabMode = libphx.Cursor_GrabMode, + setGrabMode = libphx.Cursor_SetGrabMode, + isHitTest = libphx.Cursor_IsHitTest, + setHitTest = libphx.Cursor_SetHitTest, + }, + } + + if onDef_Cursor_t then onDef_Cursor_t(t, mt) end + Cursor_t = ffi.metatype(t, mt) + end + + return Cursor +end + +return Loader diff --git a/engine/lib/phx/script/ffi_gen/CursorGrabMode.lua b/engine/lib/phx/script/ffi_gen/CursorGrabMode.lua new file mode 100644 index 000000000..e82980e3f --- /dev/null +++ b/engine/lib/phx/script/ffi_gen/CursorGrabMode.lua @@ -0,0 +1,43 @@ +-- CursorGrabMode -------------------------------------------------------------- +local Loader = {} + +function Loader.declareType() + ffi.cdef [[ + typedef uint8 CursorGrabMode; + ]] + + return 2, 'CursorGrabMode' +end + +function Loader.defineType() + local ffi = require('ffi') + local libphx = require('libphx').lib + local CursorGrabMode + + do -- C Definitions + ffi.cdef [[ + CursorGrabMode CursorGrabMode_None; + CursorGrabMode CursorGrabMode_Confined; + CursorGrabMode CursorGrabMode_Locked; + + cstr CursorGrabMode_ToString(CursorGrabMode); + ]] + end + + do -- Global Symbol Table + CursorGrabMode = { + None = libphx.CursorGrabMode_None, + Confined = libphx.CursorGrabMode_Confined, + Locked = libphx.CursorGrabMode_Locked, + + ToString = libphx.CursorGrabMode_ToString, + } + + if onDef_CursorGrabMode then onDef_CursorGrabMode(CursorGrabMode, mt) end + CursorGrabMode = setmetatable(CursorGrabMode, mt) + end + + return CursorGrabMode +end + +return Loader diff --git a/engine/lib/phx/script/ffi_gen/CursorIcon.lua b/engine/lib/phx/script/ffi_gen/CursorIcon.lua new file mode 100644 index 000000000..e9803ed90 --- /dev/null +++ b/engine/lib/phx/script/ffi_gen/CursorIcon.lua @@ -0,0 +1,107 @@ +-- CursorIcon ------------------------------------------------------------------ +local Loader = {} + +function Loader.declareType() + ffi.cdef [[ + typedef uint8 CursorIcon; + ]] + + return 2, 'CursorIcon' +end + +function Loader.defineType() + local ffi = require('ffi') + local libphx = require('libphx').lib + local CursorIcon + + do -- C Definitions + ffi.cdef [[ + CursorIcon CursorIcon_Default; + CursorIcon CursorIcon_Crosshair; + CursorIcon CursorIcon_Hand; + CursorIcon CursorIcon_Arrow; + CursorIcon CursorIcon_Move; + CursorIcon CursorIcon_Text; + CursorIcon CursorIcon_Wait; + CursorIcon CursorIcon_Help; + CursorIcon CursorIcon_Progress; + CursorIcon CursorIcon_NotAllowed; + CursorIcon CursorIcon_ContextMenu; + CursorIcon CursorIcon_Cell; + CursorIcon CursorIcon_VerticalText; + CursorIcon CursorIcon_Alias; + CursorIcon CursorIcon_Copy; + CursorIcon CursorIcon_NoDrop; + CursorIcon CursorIcon_Grab; + CursorIcon CursorIcon_Grabbing; + CursorIcon CursorIcon_AllScroll; + CursorIcon CursorIcon_ZoomIn; + CursorIcon CursorIcon_ZoomOut; + CursorIcon CursorIcon_EResize; + CursorIcon CursorIcon_NResize; + CursorIcon CursorIcon_NeResize; + CursorIcon CursorIcon_NwResize; + CursorIcon CursorIcon_SResize; + CursorIcon CursorIcon_SeResize; + CursorIcon CursorIcon_SwResize; + CursorIcon CursorIcon_WResize; + CursorIcon CursorIcon_EwResize; + CursorIcon CursorIcon_NsResize; + CursorIcon CursorIcon_NeswResize; + CursorIcon CursorIcon_NwseResize; + CursorIcon CursorIcon_ColResize; + CursorIcon CursorIcon_RowResize; + + cstr CursorIcon_ToString(CursorIcon); + ]] + end + + do -- Global Symbol Table + CursorIcon = { + Default = libphx.CursorIcon_Default, + Crosshair = libphx.CursorIcon_Crosshair, + Hand = libphx.CursorIcon_Hand, + Arrow = libphx.CursorIcon_Arrow, + Move = libphx.CursorIcon_Move, + Text = libphx.CursorIcon_Text, + Wait = libphx.CursorIcon_Wait, + Help = libphx.CursorIcon_Help, + Progress = libphx.CursorIcon_Progress, + NotAllowed = libphx.CursorIcon_NotAllowed, + ContextMenu = libphx.CursorIcon_ContextMenu, + Cell = libphx.CursorIcon_Cell, + VerticalText = libphx.CursorIcon_VerticalText, + Alias = libphx.CursorIcon_Alias, + Copy = libphx.CursorIcon_Copy, + NoDrop = libphx.CursorIcon_NoDrop, + Grab = libphx.CursorIcon_Grab, + Grabbing = libphx.CursorIcon_Grabbing, + AllScroll = libphx.CursorIcon_AllScroll, + ZoomIn = libphx.CursorIcon_ZoomIn, + ZoomOut = libphx.CursorIcon_ZoomOut, + EResize = libphx.CursorIcon_EResize, + NResize = libphx.CursorIcon_NResize, + NeResize = libphx.CursorIcon_NeResize, + NwResize = libphx.CursorIcon_NwResize, + SResize = libphx.CursorIcon_SResize, + SeResize = libphx.CursorIcon_SeResize, + SwResize = libphx.CursorIcon_SwResize, + WResize = libphx.CursorIcon_WResize, + EwResize = libphx.CursorIcon_EwResize, + NsResize = libphx.CursorIcon_NsResize, + NeswResize = libphx.CursorIcon_NeswResize, + NwseResize = libphx.CursorIcon_NwseResize, + ColResize = libphx.CursorIcon_ColResize, + RowResize = libphx.CursorIcon_RowResize, + + ToString = libphx.CursorIcon_ToString, + } + + if onDef_CursorIcon then onDef_CursorIcon(CursorIcon, mt) end + CursorIcon = setmetatable(CursorIcon, mt) + end + + return CursorIcon +end + +return Loader diff --git a/engine/lib/phx/script/ffi_gen/Directory.lua b/engine/lib/phx/script/ffi_gen/Directory.lua new file mode 100644 index 000000000..3ce7ce183 --- /dev/null +++ b/engine/lib/phx/script/ffi_gen/Directory.lua @@ -0,0 +1,63 @@ +-- Directory ------------------------------------------------------------------- +local Loader = {} + +function Loader.declareType() + ffi.cdef [[ + typedef struct Directory {} Directory; + ]] + + return 1, 'Directory' +end + +function Loader.defineType() + local ffi = require('ffi') + local libphx = require('libphx').lib + local Directory + + do -- C Definitions + ffi.cdef [[ + void Directory_Free (Directory*); + Directory* Directory_Open (cstr path); + cstr Directory_GetNext (Directory*); + bool Directory_Change (cstr cwd); + bool Directory_Create (cstr path); + cstr Directory_GetCurrent (); + cstr Directory_GetPrefPath (cstr org, cstr app); + bool Directory_Remove (cstr path); + ]] + end + + do -- Global Symbol Table + Directory = { + Free = libphx.Directory_Free, + Open = libphx.Directory_Open, + GetNext = libphx.Directory_GetNext, + Change = libphx.Directory_Change, + Create = libphx.Directory_Create, + GetCurrent = libphx.Directory_GetCurrent, + GetPrefPath = libphx.Directory_GetPrefPath, + Remove = libphx.Directory_Remove, + } + + if onDef_Directory then onDef_Directory(Directory, mt) end + Directory = setmetatable(Directory, mt) + end + + do -- Metatype for class instances + local t = ffi.typeof('Directory') + local mt = { + __index = { + managed = function(self) return ffi.gc(self, libphx.Directory_Free) end, + free = libphx.Directory_Free, + getNext = libphx.Directory_GetNext, + }, + } + + if onDef_Directory_t then onDef_Directory_t(t, mt) end + Directory_t = ffi.metatype(t, mt) + end + + return Directory +end + +return Loader diff --git a/engine/lib/phx/script/ffi_gen/DragAndDropEvent.lua b/engine/lib/phx/script/ffi_gen/DragAndDropEvent.lua new file mode 100644 index 000000000..819493f67 --- /dev/null +++ b/engine/lib/phx/script/ffi_gen/DragAndDropEvent.lua @@ -0,0 +1,43 @@ +-- DragAndDropEvent ------------------------------------------------------------ +local Loader = {} + +function Loader.declareType() + ffi.cdef [[ + typedef uint8 DragAndDropEvent; + ]] + + return 2, 'DragAndDropEvent' +end + +function Loader.defineType() + local ffi = require('ffi') + local libphx = require('libphx').lib + local DragAndDropEvent + + do -- C Definitions + ffi.cdef [[ + DragAndDropEvent DragAndDropEvent_DroppedFile; + DragAndDropEvent DragAndDropEvent_HoveredFile; + DragAndDropEvent DragAndDropEvent_HoveredFileCancelled; + + cstr DragAndDropEvent_ToString(DragAndDropEvent); + ]] + end + + do -- Global Symbol Table + DragAndDropEvent = { + DroppedFile = libphx.DragAndDropEvent_DroppedFile, + HoveredFile = libphx.DragAndDropEvent_HoveredFile, + HoveredFileCancelled = libphx.DragAndDropEvent_HoveredFileCancelled, + + ToString = libphx.DragAndDropEvent_ToString, + } + + if onDef_DragAndDropEvent then onDef_DragAndDropEvent(DragAndDropEvent, mt) end + DragAndDropEvent = setmetatable(DragAndDropEvent, mt) + end + + return DragAndDropEvent +end + +return Loader diff --git a/engine/lib/phx/script/ffi_gen/DragAndDropState.lua b/engine/lib/phx/script/ffi_gen/DragAndDropState.lua new file mode 100644 index 000000000..39e919efe --- /dev/null +++ b/engine/lib/phx/script/ffi_gen/DragAndDropState.lua @@ -0,0 +1,53 @@ +-- DragAndDropState ------------------------------------------------------------ +local Loader = {} + +function Loader.declareType() + ffi.cdef [[ + typedef struct DragAndDropState {} DragAndDropState; + ]] + + return 1, 'DragAndDropState' +end + +function Loader.defineType() + local ffi = require('ffi') + local libphx = require('libphx').lib + local DragAndDropState + + do -- C Definitions + ffi.cdef [[ + cstr DragAndDropState_GetDroppedFile (DragAndDropState const*); + cstr DragAndDropState_GetHoveredFile (DragAndDropState const*); + bool DragAndDropState_IfHoveredFileCancelled (DragAndDropState const*); + ]] + end + + do -- Global Symbol Table + DragAndDropState = { + GetDroppedFile = libphx.DragAndDropState_GetDroppedFile, + GetHoveredFile = libphx.DragAndDropState_GetHoveredFile, + IfHoveredFileCancelled = libphx.DragAndDropState_IfHoveredFileCancelled, + } + + if onDef_DragAndDropState then onDef_DragAndDropState(DragAndDropState, mt) end + DragAndDropState = setmetatable(DragAndDropState, mt) + end + + do -- Metatype for class instances + local t = ffi.typeof('DragAndDropState') + local mt = { + __index = { + getDroppedFile = libphx.DragAndDropState_GetDroppedFile, + getHoveredFile = libphx.DragAndDropState_GetHoveredFile, + ifHoveredFileCancelled = libphx.DragAndDropState_IfHoveredFileCancelled, + }, + } + + if onDef_DragAndDropState_t then onDef_DragAndDropState_t(t, mt) end + DragAndDropState_t = ffi.metatype(t, mt) + end + + return DragAndDropState +end + +return Loader diff --git a/engine/lib/phx/script/ffi_gen/Engine.lua b/engine/lib/phx/script/ffi_gen/Engine.lua new file mode 100644 index 000000000..cfa0e393b --- /dev/null +++ b/engine/lib/phx/script/ffi_gen/Engine.lua @@ -0,0 +1,68 @@ +-- Engine ---------------------------------------------------------------------- +local Loader = {} + +function Loader.declareType() + ffi.cdef [[ + typedef struct Engine {} Engine; + ]] + + return 1, 'Engine' +end + +function Loader.defineType() + local ffi = require('ffi') + local libphx = require('libphx').lib + local Engine + + do -- C Definitions + ffi.cdef [[ + Window* Engine_Window (Engine*); + Input* Engine_Input (Engine*); + void Engine_Free (); + void Engine_Abort (); + int Engine_GetBits (); + double Engine_GetTime (Engine const*); + cstr Engine_GetVersion (); + void Engine_Exit (Engine*); + void Engine_Terminate (); + void Engine_Update (); + ]] + end + + do -- Global Symbol Table + Engine = { + Window = libphx.Engine_Window, + Input = libphx.Engine_Input, + Free = libphx.Engine_Free, + Abort = libphx.Engine_Abort, + GetBits = libphx.Engine_GetBits, + GetTime = libphx.Engine_GetTime, + GetVersion = libphx.Engine_GetVersion, + Exit = libphx.Engine_Exit, + Terminate = libphx.Engine_Terminate, + Update = libphx.Engine_Update, + } + + if onDef_Engine then onDef_Engine(Engine, mt) end + Engine = setmetatable(Engine, mt) + end + + do -- Metatype for class instances + local t = ffi.typeof('Engine') + local mt = { + __index = { + window = libphx.Engine_Window, + input = libphx.Engine_Input, + getTime = libphx.Engine_GetTime, + exit = libphx.Engine_Exit, + }, + } + + if onDef_Engine_t then onDef_Engine_t(t, mt) end + Engine_t = ffi.metatype(t, mt) + end + + return Engine +end + +return Loader diff --git a/engine/lib/phx/script/ffi_gen/GamepadAxis.lua b/engine/lib/phx/script/ffi_gen/GamepadAxis.lua new file mode 100644 index 000000000..a89973322 --- /dev/null +++ b/engine/lib/phx/script/ffi_gen/GamepadAxis.lua @@ -0,0 +1,49 @@ +-- GamepadAxis ----------------------------------------------------------------- +local Loader = {} + +function Loader.declareType() + ffi.cdef [[ + typedef uint8 GamepadAxis; + ]] + + return 2, 'GamepadAxis' +end + +function Loader.defineType() + local ffi = require('ffi') + local libphx = require('libphx').lib + local GamepadAxis + + do -- C Definitions + ffi.cdef [[ + GamepadAxis GamepadAxis_LeftStickX; + GamepadAxis GamepadAxis_LeftStickY; + GamepadAxis GamepadAxis_LeftZ; + GamepadAxis GamepadAxis_RightStickX; + GamepadAxis GamepadAxis_RightStickY; + GamepadAxis GamepadAxis_RightZ; + + cstr GamepadAxis_ToString(GamepadAxis); + ]] + end + + do -- Global Symbol Table + GamepadAxis = { + LeftStickX = libphx.GamepadAxis_LeftStickX, + LeftStickY = libphx.GamepadAxis_LeftStickY, + LeftZ = libphx.GamepadAxis_LeftZ, + RightStickX = libphx.GamepadAxis_RightStickX, + RightStickY = libphx.GamepadAxis_RightStickY, + RightZ = libphx.GamepadAxis_RightZ, + + ToString = libphx.GamepadAxis_ToString, + } + + if onDef_GamepadAxis then onDef_GamepadAxis(GamepadAxis, mt) end + GamepadAxis = setmetatable(GamepadAxis, mt) + end + + return GamepadAxis +end + +return Loader diff --git a/engine/lib/phx/script/ffi_gen/GamepadButton.lua b/engine/lib/phx/script/ffi_gen/GamepadButton.lua new file mode 100644 index 000000000..bfc457eb5 --- /dev/null +++ b/engine/lib/phx/script/ffi_gen/GamepadButton.lua @@ -0,0 +1,75 @@ +-- GamepadButton --------------------------------------------------------------- +local Loader = {} + +function Loader.declareType() + ffi.cdef [[ + typedef uint8 GamepadButton; + ]] + + return 2, 'GamepadButton' +end + +function Loader.defineType() + local ffi = require('ffi') + local libphx = require('libphx').lib + local GamepadButton + + do -- C Definitions + ffi.cdef [[ + GamepadButton GamepadButton_South; + GamepadButton GamepadButton_East; + GamepadButton GamepadButton_North; + GamepadButton GamepadButton_West; + GamepadButton GamepadButton_C; + GamepadButton GamepadButton_Z; + GamepadButton GamepadButton_LeftTrigger; + GamepadButton GamepadButton_LeftTrigger2; + GamepadButton GamepadButton_RightTrigger; + GamepadButton GamepadButton_RightTrigger2; + GamepadButton GamepadButton_Select; + GamepadButton GamepadButton_Start; + GamepadButton GamepadButton_Mode; + GamepadButton GamepadButton_LeftThumb; + GamepadButton GamepadButton_RightThumb; + GamepadButton GamepadButton_DPadUp; + GamepadButton GamepadButton_DPadDown; + GamepadButton GamepadButton_DPadLeft; + GamepadButton GamepadButton_DPadRight; + + cstr GamepadButton_ToString(GamepadButton); + ]] + end + + do -- Global Symbol Table + GamepadButton = { + South = libphx.GamepadButton_South, + East = libphx.GamepadButton_East, + North = libphx.GamepadButton_North, + West = libphx.GamepadButton_West, + C = libphx.GamepadButton_C, + Z = libphx.GamepadButton_Z, + LeftTrigger = libphx.GamepadButton_LeftTrigger, + LeftTrigger2 = libphx.GamepadButton_LeftTrigger2, + RightTrigger = libphx.GamepadButton_RightTrigger, + RightTrigger2 = libphx.GamepadButton_RightTrigger2, + Select = libphx.GamepadButton_Select, + Start = libphx.GamepadButton_Start, + Mode = libphx.GamepadButton_Mode, + LeftThumb = libphx.GamepadButton_LeftThumb, + RightThumb = libphx.GamepadButton_RightThumb, + DPadUp = libphx.GamepadButton_DPadUp, + DPadDown = libphx.GamepadButton_DPadDown, + DPadLeft = libphx.GamepadButton_DPadLeft, + DPadRight = libphx.GamepadButton_DPadRight, + + ToString = libphx.GamepadButton_ToString, + } + + if onDef_GamepadButton then onDef_GamepadButton(GamepadButton, mt) end + GamepadButton = setmetatable(GamepadButton, mt) + end + + return GamepadButton +end + +return Loader diff --git a/engine/lib/phx/script/ffi_gen/GamepadState.lua b/engine/lib/phx/script/ffi_gen/GamepadState.lua new file mode 100644 index 000000000..d00af4535 --- /dev/null +++ b/engine/lib/phx/script/ffi_gen/GamepadState.lua @@ -0,0 +1,77 @@ +-- GamepadState ---------------------------------------------------------------- +local Loader = {} + +function Loader.declareType() + ffi.cdef [[ + typedef struct GamepadState {} GamepadState; + ]] + + return 1, 'GamepadState' +end + +function Loader.defineType() + local ffi = require('ffi') + local libphx = require('libphx').lib + local GamepadState + + do -- C Definitions + ffi.cdef [[ + uint64 GamepadState_GamepadsCount (GamepadState const*); + GamepadId const* GamepadState_GamepadId (GamepadState const*, uint64 index); + cstr GamepadState_GamepadName (GamepadState const*, GamepadId gamepadId); + float GamepadState_Value (GamepadState const*, GamepadAxis axis); + bool GamepadState_IsPressed (GamepadState const*, GamepadButton button); + bool GamepadState_IsDown (GamepadState const*, GamepadButton button); + bool GamepadState_IsReleased (GamepadState const*, GamepadButton button); + float GamepadState_ValueById (GamepadState const*, GamepadId gamepadId, GamepadAxis axis); + bool GamepadState_IsPressedById (GamepadState const*, GamepadId gamepadId, GamepadButton button); + bool GamepadState_IsDownById (GamepadState const*, GamepadId gamepadId, GamepadButton button); + bool GamepadState_IsReleasedById (GamepadState const*, GamepadId gamepadId, GamepadButton button); + ]] + end + + do -- Global Symbol Table + GamepadState = { + GamepadsCount = libphx.GamepadState_GamepadsCount, + GamepadId = libphx.GamepadState_GamepadId, + GamepadName = libphx.GamepadState_GamepadName, + Value = libphx.GamepadState_Value, + IsPressed = libphx.GamepadState_IsPressed, + IsDown = libphx.GamepadState_IsDown, + IsReleased = libphx.GamepadState_IsReleased, + ValueById = libphx.GamepadState_ValueById, + IsPressedById = libphx.GamepadState_IsPressedById, + IsDownById = libphx.GamepadState_IsDownById, + IsReleasedById = libphx.GamepadState_IsReleasedById, + } + + if onDef_GamepadState then onDef_GamepadState(GamepadState, mt) end + GamepadState = setmetatable(GamepadState, mt) + end + + do -- Metatype for class instances + local t = ffi.typeof('GamepadState') + local mt = { + __index = { + gamepadsCount = libphx.GamepadState_GamepadsCount, + gamepadId = libphx.GamepadState_GamepadId, + gamepadName = libphx.GamepadState_GamepadName, + value = libphx.GamepadState_Value, + isPressed = libphx.GamepadState_IsPressed, + isDown = libphx.GamepadState_IsDown, + isReleased = libphx.GamepadState_IsReleased, + valueById = libphx.GamepadState_ValueById, + isPressedById = libphx.GamepadState_IsPressedById, + isDownById = libphx.GamepadState_IsDownById, + isReleasedById = libphx.GamepadState_IsReleasedById, + }, + } + + if onDef_GamepadState_t then onDef_GamepadState_t(t, mt) end + GamepadState_t = ffi.metatype(t, mt) + end + + return GamepadState +end + +return Loader diff --git a/engine/lib/phx/script/ffi_gen/Input.lua b/engine/lib/phx/script/ffi_gen/Input.lua new file mode 100644 index 000000000..3c7373a5b --- /dev/null +++ b/engine/lib/phx/script/ffi_gen/Input.lua @@ -0,0 +1,98 @@ +-- Input ----------------------------------------------------------------------- +local Loader = {} + +function Loader.declareType() + ffi.cdef [[ + typedef struct Input {} Input; + ]] + + return 1, 'Input' +end + +function Loader.defineType() + local ffi = require('ffi') + local libphx = require('libphx').lib + local Input + + do -- C Definitions + ffi.cdef [[ + KeyboardState const* Input_Keyboard (Input const*); + MouseState const* Input_Mouse (Input const*); + TouchpadState const* Input_Touchpad (Input const*); + GamepadState const* Input_Gamepad (Input const*); + DragAndDropState const* Input_DragAndDrop (Input const*); + InputDevice const* Input_ActiveDevice (Input const*); + InputDeviceType const* Input_ActiveDeviceType (Input const*); + InputDeviceId const* Input_ActiveDeviceId (Input const*); + void Input_SetCursorVisible (Input*, bool visible); + void Input_SetCursorVisibleAuto (Input*); + void Input_SetCursorPosition (Input*, float x, float y); + bool Input_IsPressed (Input const*, Button button); + bool Input_IsDown (Input const*, Button button); + bool Input_IsReleased (Input const*, Button button); + float Input_GetValue (Input const*, Button button); + bool Input_IsKeyboardAltPressed (Input const*); + bool Input_IsKeyboardCtrlPressed (Input const*); + bool Input_IsKeyboardShiftPressed (Input const*); + ]] + end + + do -- Global Symbol Table + Input = { + Keyboard = libphx.Input_Keyboard, + Mouse = libphx.Input_Mouse, + Touchpad = libphx.Input_Touchpad, + Gamepad = libphx.Input_Gamepad, + DragAndDrop = libphx.Input_DragAndDrop, + ActiveDevice = libphx.Input_ActiveDevice, + ActiveDeviceType = libphx.Input_ActiveDeviceType, + ActiveDeviceId = libphx.Input_ActiveDeviceId, + SetCursorVisible = libphx.Input_SetCursorVisible, + SetCursorVisibleAuto = libphx.Input_SetCursorVisibleAuto, + SetCursorPosition = libphx.Input_SetCursorPosition, + IsPressed = libphx.Input_IsPressed, + IsDown = libphx.Input_IsDown, + IsReleased = libphx.Input_IsReleased, + GetValue = libphx.Input_GetValue, + IsKeyboardAltPressed = libphx.Input_IsKeyboardAltPressed, + IsKeyboardCtrlPressed = libphx.Input_IsKeyboardCtrlPressed, + IsKeyboardShiftPressed = libphx.Input_IsKeyboardShiftPressed, + } + + if onDef_Input then onDef_Input(Input, mt) end + Input = setmetatable(Input, mt) + end + + do -- Metatype for class instances + local t = ffi.typeof('Input') + local mt = { + __index = { + keyboard = libphx.Input_Keyboard, + mouse = libphx.Input_Mouse, + touchpad = libphx.Input_Touchpad, + gamepad = libphx.Input_Gamepad, + dragAndDrop = libphx.Input_DragAndDrop, + activeDevice = libphx.Input_ActiveDevice, + activeDeviceType = libphx.Input_ActiveDeviceType, + activeDeviceId = libphx.Input_ActiveDeviceId, + setCursorVisible = libphx.Input_SetCursorVisible, + setCursorVisibleAuto = libphx.Input_SetCursorVisibleAuto, + setCursorPosition = libphx.Input_SetCursorPosition, + isPressed = libphx.Input_IsPressed, + isDown = libphx.Input_IsDown, + isReleased = libphx.Input_IsReleased, + getValue = libphx.Input_GetValue, + isKeyboardAltPressed = libphx.Input_IsKeyboardAltPressed, + isKeyboardCtrlPressed = libphx.Input_IsKeyboardCtrlPressed, + isKeyboardShiftPressed = libphx.Input_IsKeyboardShiftPressed, + }, + } + + if onDef_Input_t then onDef_Input_t(t, mt) end + Input_t = ffi.metatype(t, mt) + end + + return Input +end + +return Loader diff --git a/engine/lib/phx/script/ffi_gen/InputDevice.lua b/engine/lib/phx/script/ffi_gen/InputDevice.lua new file mode 100644 index 000000000..c69411ee2 --- /dev/null +++ b/engine/lib/phx/script/ffi_gen/InputDevice.lua @@ -0,0 +1,56 @@ +-- InputDevice ----------------------------------------------------------------- +local Loader = {} + +function Loader.declareType() + ffi.cdef [[ + typedef struct InputDevice {} InputDevice; + ]] + + return 1, 'InputDevice' +end + +function Loader.defineType() + local ffi = require('ffi') + local libphx = require('libphx').lib + local InputDevice + + do -- C Definitions + ffi.cdef [[ + bool InputDevice_Equal (InputDevice const*, InputDevice const* other); + cstr InputDevice_ToString (InputDevice const*); + ]] + end + + do -- Global Symbol Table + InputDevice = { + Equal = libphx.InputDevice_Equal, + ToString = libphx.InputDevice_ToString, + } + + local mt = { + __call = function(t, ...) return InputDevice_t(...) end, + } + + if onDef_InputDevice then onDef_InputDevice(InputDevice, mt) end + InputDevice = setmetatable(InputDevice, mt) + end + + do -- Metatype for class instances + local t = ffi.typeof('InputDevice') + local mt = { + __tostring = function(self) return ffi.string(libphx.InputDevice_ToString(self)) end, + __index = { + clone = function(x) return InputDevice_t(x) end, + equal = libphx.InputDevice_Equal, + toString = libphx.InputDevice_ToString, + }, + } + + if onDef_InputDevice_t then onDef_InputDevice_t(t, mt) end + InputDevice_t = ffi.metatype(t, mt) + end + + return InputDevice +end + +return Loader diff --git a/engine/lib/phx/script/ffi_gen/InputDeviceId.lua b/engine/lib/phx/script/ffi_gen/InputDeviceId.lua new file mode 100644 index 000000000..a0fade7b5 --- /dev/null +++ b/engine/lib/phx/script/ffi_gen/InputDeviceId.lua @@ -0,0 +1,48 @@ +-- InputDeviceId --------------------------------------------------------------- +local Loader = {} + +function Loader.declareType() + ffi.cdef [[ + typedef struct InputDeviceId {} InputDeviceId; + ]] + + return 1, 'InputDeviceId' +end + +function Loader.defineType() + local ffi = require('ffi') + local libphx = require('libphx').lib + local InputDeviceId + + do -- C Definitions + ffi.cdef [[ + cstr InputDeviceId_ToString (InputDeviceId const*); + ]] + end + + do -- Global Symbol Table + InputDeviceId = { + ToString = libphx.InputDeviceId_ToString, + } + + if onDef_InputDeviceId then onDef_InputDeviceId(InputDeviceId, mt) end + InputDeviceId = setmetatable(InputDeviceId, mt) + end + + do -- Metatype for class instances + local t = ffi.typeof('InputDeviceId') + local mt = { + __tostring = function(self) return ffi.string(libphx.InputDeviceId_ToString(self)) end, + __index = { + toString = libphx.InputDeviceId_ToString, + }, + } + + if onDef_InputDeviceId_t then onDef_InputDeviceId_t(t, mt) end + InputDeviceId_t = ffi.metatype(t, mt) + end + + return InputDeviceId +end + +return Loader diff --git a/engine/lib/phx/script/ffi_gen/InputDeviceType.lua b/engine/lib/phx/script/ffi_gen/InputDeviceType.lua new file mode 100644 index 000000000..3cb230a94 --- /dev/null +++ b/engine/lib/phx/script/ffi_gen/InputDeviceType.lua @@ -0,0 +1,49 @@ +-- InputDeviceType ------------------------------------------------------------- +local Loader = {} + +function Loader.declareType() + ffi.cdef [[ + typedef uint8 InputDeviceType; + ]] + + return 2, 'InputDeviceType' +end + +function Loader.defineType() + local ffi = require('ffi') + local libphx = require('libphx').lib + local InputDeviceType + + do -- C Definitions + ffi.cdef [[ + InputDeviceType InputDeviceType_Cursor; + InputDeviceType InputDeviceType_Gamepad; + InputDeviceType InputDeviceType_Keyboard; + InputDeviceType InputDeviceType_Mouse; + InputDeviceType InputDeviceType_Touchpad; + InputDeviceType InputDeviceType_SystemEvent; + + cstr InputDeviceType_ToString(InputDeviceType); + ]] + end + + do -- Global Symbol Table + InputDeviceType = { + Cursor = libphx.InputDeviceType_Cursor, + Gamepad = libphx.InputDeviceType_Gamepad, + Keyboard = libphx.InputDeviceType_Keyboard, + Mouse = libphx.InputDeviceType_Mouse, + Touchpad = libphx.InputDeviceType_Touchpad, + SystemEvent = libphx.InputDeviceType_SystemEvent, + + ToString = libphx.InputDeviceType_ToString, + } + + if onDef_InputDeviceType then onDef_InputDeviceType(InputDeviceType, mt) end + InputDeviceType = setmetatable(InputDeviceType, mt) + end + + return InputDeviceType +end + +return Loader diff --git a/engine/lib/phx/script/ffi_gen/KeyboardButton.lua b/engine/lib/phx/script/ffi_gen/KeyboardButton.lua new file mode 100644 index 000000000..283d0f407 --- /dev/null +++ b/engine/lib/phx/script/ffi_gen/KeyboardButton.lua @@ -0,0 +1,363 @@ +-- KeyboardButton -------------------------------------------------------------- +local Loader = {} + +function Loader.declareType() + ffi.cdef [[ + typedef uint8 KeyboardButton; + ]] + + return 2, 'KeyboardButton' +end + +function Loader.defineType() + local ffi = require('ffi') + local libphx = require('libphx').lib + local KeyboardButton + + do -- C Definitions + ffi.cdef [[ + KeyboardButton KeyboardButton_Key1; + KeyboardButton KeyboardButton_Key2; + KeyboardButton KeyboardButton_Key3; + KeyboardButton KeyboardButton_Key4; + KeyboardButton KeyboardButton_Key5; + KeyboardButton KeyboardButton_Key6; + KeyboardButton KeyboardButton_Key7; + KeyboardButton KeyboardButton_Key8; + KeyboardButton KeyboardButton_Key9; + KeyboardButton KeyboardButton_Key0; + KeyboardButton KeyboardButton_A; + KeyboardButton KeyboardButton_B; + KeyboardButton KeyboardButton_C; + KeyboardButton KeyboardButton_D; + KeyboardButton KeyboardButton_E; + KeyboardButton KeyboardButton_F; + KeyboardButton KeyboardButton_G; + KeyboardButton KeyboardButton_H; + KeyboardButton KeyboardButton_I; + KeyboardButton KeyboardButton_J; + KeyboardButton KeyboardButton_K; + KeyboardButton KeyboardButton_L; + KeyboardButton KeyboardButton_M; + KeyboardButton KeyboardButton_N; + KeyboardButton KeyboardButton_O; + KeyboardButton KeyboardButton_P; + KeyboardButton KeyboardButton_Q; + KeyboardButton KeyboardButton_R; + KeyboardButton KeyboardButton_S; + KeyboardButton KeyboardButton_T; + KeyboardButton KeyboardButton_U; + KeyboardButton KeyboardButton_V; + KeyboardButton KeyboardButton_W; + KeyboardButton KeyboardButton_X; + KeyboardButton KeyboardButton_Y; + KeyboardButton KeyboardButton_Z; + KeyboardButton KeyboardButton_Escape; + KeyboardButton KeyboardButton_F1; + KeyboardButton KeyboardButton_F2; + KeyboardButton KeyboardButton_F3; + KeyboardButton KeyboardButton_F4; + KeyboardButton KeyboardButton_F5; + KeyboardButton KeyboardButton_F6; + KeyboardButton KeyboardButton_F7; + KeyboardButton KeyboardButton_F8; + KeyboardButton KeyboardButton_F9; + KeyboardButton KeyboardButton_F10; + KeyboardButton KeyboardButton_F11; + KeyboardButton KeyboardButton_F12; + KeyboardButton KeyboardButton_F13; + KeyboardButton KeyboardButton_F14; + KeyboardButton KeyboardButton_F15; + KeyboardButton KeyboardButton_F16; + KeyboardButton KeyboardButton_F17; + KeyboardButton KeyboardButton_F18; + KeyboardButton KeyboardButton_F19; + KeyboardButton KeyboardButton_F20; + KeyboardButton KeyboardButton_F21; + KeyboardButton KeyboardButton_F22; + KeyboardButton KeyboardButton_F23; + KeyboardButton KeyboardButton_F24; + KeyboardButton KeyboardButton_Snapshot; + KeyboardButton KeyboardButton_Scroll; + KeyboardButton KeyboardButton_Pause; + KeyboardButton KeyboardButton_Insert; + KeyboardButton KeyboardButton_Home; + KeyboardButton KeyboardButton_Delete; + KeyboardButton KeyboardButton_End; + KeyboardButton KeyboardButton_PageDown; + KeyboardButton KeyboardButton_PageUp; + KeyboardButton KeyboardButton_Left; + KeyboardButton KeyboardButton_Up; + KeyboardButton KeyboardButton_Right; + KeyboardButton KeyboardButton_Down; + KeyboardButton KeyboardButton_Back; + KeyboardButton KeyboardButton_Return; + KeyboardButton KeyboardButton_Space; + KeyboardButton KeyboardButton_Compose; + KeyboardButton KeyboardButton_Caret; + KeyboardButton KeyboardButton_Numlock; + KeyboardButton KeyboardButton_Numpad0; + KeyboardButton KeyboardButton_Numpad1; + KeyboardButton KeyboardButton_Numpad2; + KeyboardButton KeyboardButton_Numpad3; + KeyboardButton KeyboardButton_Numpad4; + KeyboardButton KeyboardButton_Numpad5; + KeyboardButton KeyboardButton_Numpad6; + KeyboardButton KeyboardButton_Numpad7; + KeyboardButton KeyboardButton_Numpad8; + KeyboardButton KeyboardButton_Numpad9; + KeyboardButton KeyboardButton_AbntC1; + KeyboardButton KeyboardButton_AbntC2; + KeyboardButton KeyboardButton_NumpadAdd; + KeyboardButton KeyboardButton_Apostrophe; + KeyboardButton KeyboardButton_Apps; + KeyboardButton KeyboardButton_Asterisk; + KeyboardButton KeyboardButton_Plus; + KeyboardButton KeyboardButton_At; + KeyboardButton KeyboardButton_Ax; + KeyboardButton KeyboardButton_Backslash; + KeyboardButton KeyboardButton_Calculator; + KeyboardButton KeyboardButton_Capital; + KeyboardButton KeyboardButton_Colon; + KeyboardButton KeyboardButton_Comma; + KeyboardButton KeyboardButton_Convert; + KeyboardButton KeyboardButton_NumpadDecimal; + KeyboardButton KeyboardButton_NumpadDivide; + KeyboardButton KeyboardButton_Equals; + KeyboardButton KeyboardButton_Grave; + KeyboardButton KeyboardButton_Kana; + KeyboardButton KeyboardButton_Kanji; + KeyboardButton KeyboardButton_AltLeft; + KeyboardButton KeyboardButton_BracketLeft; + KeyboardButton KeyboardButton_ControlLeft; + KeyboardButton KeyboardButton_ShiftLeft; + KeyboardButton KeyboardButton_SuperLeft; + KeyboardButton KeyboardButton_Mail; + KeyboardButton KeyboardButton_MediaSelect; + KeyboardButton KeyboardButton_MediaStop; + KeyboardButton KeyboardButton_Minus; + KeyboardButton KeyboardButton_NumpadMultiply; + KeyboardButton KeyboardButton_Mute; + KeyboardButton KeyboardButton_MyComputer; + KeyboardButton KeyboardButton_NavigateForward; + KeyboardButton KeyboardButton_NavigateBackward; + KeyboardButton KeyboardButton_NextTrack; + KeyboardButton KeyboardButton_NoConvert; + KeyboardButton KeyboardButton_NumpadComma; + KeyboardButton KeyboardButton_NumpadEnter; + KeyboardButton KeyboardButton_NumpadEquals; + KeyboardButton KeyboardButton_Oem102; + KeyboardButton KeyboardButton_Period; + KeyboardButton KeyboardButton_PlayPause; + KeyboardButton KeyboardButton_Power; + KeyboardButton KeyboardButton_PrevTrack; + KeyboardButton KeyboardButton_AltRight; + KeyboardButton KeyboardButton_BracketRight; + KeyboardButton KeyboardButton_ControlRight; + KeyboardButton KeyboardButton_ShiftRight; + KeyboardButton KeyboardButton_SuperRight; + KeyboardButton KeyboardButton_Semicolon; + KeyboardButton KeyboardButton_Slash; + KeyboardButton KeyboardButton_Sleep; + KeyboardButton KeyboardButton_Stop; + KeyboardButton KeyboardButton_NumpadSubtract; + KeyboardButton KeyboardButton_Sysrq; + KeyboardButton KeyboardButton_Tab; + KeyboardButton KeyboardButton_Underline; + KeyboardButton KeyboardButton_Unlabeled; + KeyboardButton KeyboardButton_VolumeDown; + KeyboardButton KeyboardButton_VolumeUp; + KeyboardButton KeyboardButton_Wake; + KeyboardButton KeyboardButton_WebBack; + KeyboardButton KeyboardButton_WebFavorites; + KeyboardButton KeyboardButton_WebForward; + KeyboardButton KeyboardButton_WebHome; + KeyboardButton KeyboardButton_WebRefresh; + KeyboardButton KeyboardButton_WebSearch; + KeyboardButton KeyboardButton_WebStop; + KeyboardButton KeyboardButton_Yen; + KeyboardButton KeyboardButton_Copy; + KeyboardButton KeyboardButton_Paste; + KeyboardButton KeyboardButton_Cut; + + cstr KeyboardButton_ToString(KeyboardButton); + ]] + end + + do -- Global Symbol Table + KeyboardButton = { + Key1 = libphx.KeyboardButton_Key1, + Key2 = libphx.KeyboardButton_Key2, + Key3 = libphx.KeyboardButton_Key3, + Key4 = libphx.KeyboardButton_Key4, + Key5 = libphx.KeyboardButton_Key5, + Key6 = libphx.KeyboardButton_Key6, + Key7 = libphx.KeyboardButton_Key7, + Key8 = libphx.KeyboardButton_Key8, + Key9 = libphx.KeyboardButton_Key9, + Key0 = libphx.KeyboardButton_Key0, + A = libphx.KeyboardButton_A, + B = libphx.KeyboardButton_B, + C = libphx.KeyboardButton_C, + D = libphx.KeyboardButton_D, + E = libphx.KeyboardButton_E, + F = libphx.KeyboardButton_F, + G = libphx.KeyboardButton_G, + H = libphx.KeyboardButton_H, + I = libphx.KeyboardButton_I, + J = libphx.KeyboardButton_J, + K = libphx.KeyboardButton_K, + L = libphx.KeyboardButton_L, + M = libphx.KeyboardButton_M, + N = libphx.KeyboardButton_N, + O = libphx.KeyboardButton_O, + P = libphx.KeyboardButton_P, + Q = libphx.KeyboardButton_Q, + R = libphx.KeyboardButton_R, + S = libphx.KeyboardButton_S, + T = libphx.KeyboardButton_T, + U = libphx.KeyboardButton_U, + V = libphx.KeyboardButton_V, + W = libphx.KeyboardButton_W, + X = libphx.KeyboardButton_X, + Y = libphx.KeyboardButton_Y, + Z = libphx.KeyboardButton_Z, + Escape = libphx.KeyboardButton_Escape, + F1 = libphx.KeyboardButton_F1, + F2 = libphx.KeyboardButton_F2, + F3 = libphx.KeyboardButton_F3, + F4 = libphx.KeyboardButton_F4, + F5 = libphx.KeyboardButton_F5, + F6 = libphx.KeyboardButton_F6, + F7 = libphx.KeyboardButton_F7, + F8 = libphx.KeyboardButton_F8, + F9 = libphx.KeyboardButton_F9, + F10 = libphx.KeyboardButton_F10, + F11 = libphx.KeyboardButton_F11, + F12 = libphx.KeyboardButton_F12, + F13 = libphx.KeyboardButton_F13, + F14 = libphx.KeyboardButton_F14, + F15 = libphx.KeyboardButton_F15, + F16 = libphx.KeyboardButton_F16, + F17 = libphx.KeyboardButton_F17, + F18 = libphx.KeyboardButton_F18, + F19 = libphx.KeyboardButton_F19, + F20 = libphx.KeyboardButton_F20, + F21 = libphx.KeyboardButton_F21, + F22 = libphx.KeyboardButton_F22, + F23 = libphx.KeyboardButton_F23, + F24 = libphx.KeyboardButton_F24, + Snapshot = libphx.KeyboardButton_Snapshot, + Scroll = libphx.KeyboardButton_Scroll, + Pause = libphx.KeyboardButton_Pause, + Insert = libphx.KeyboardButton_Insert, + Home = libphx.KeyboardButton_Home, + Delete = libphx.KeyboardButton_Delete, + End = libphx.KeyboardButton_End, + PageDown = libphx.KeyboardButton_PageDown, + PageUp = libphx.KeyboardButton_PageUp, + Left = libphx.KeyboardButton_Left, + Up = libphx.KeyboardButton_Up, + Right = libphx.KeyboardButton_Right, + Down = libphx.KeyboardButton_Down, + Back = libphx.KeyboardButton_Back, + Return = libphx.KeyboardButton_Return, + Space = libphx.KeyboardButton_Space, + Compose = libphx.KeyboardButton_Compose, + Caret = libphx.KeyboardButton_Caret, + Numlock = libphx.KeyboardButton_Numlock, + Numpad0 = libphx.KeyboardButton_Numpad0, + Numpad1 = libphx.KeyboardButton_Numpad1, + Numpad2 = libphx.KeyboardButton_Numpad2, + Numpad3 = libphx.KeyboardButton_Numpad3, + Numpad4 = libphx.KeyboardButton_Numpad4, + Numpad5 = libphx.KeyboardButton_Numpad5, + Numpad6 = libphx.KeyboardButton_Numpad6, + Numpad7 = libphx.KeyboardButton_Numpad7, + Numpad8 = libphx.KeyboardButton_Numpad8, + Numpad9 = libphx.KeyboardButton_Numpad9, + AbntC1 = libphx.KeyboardButton_AbntC1, + AbntC2 = libphx.KeyboardButton_AbntC2, + NumpadAdd = libphx.KeyboardButton_NumpadAdd, + Apostrophe = libphx.KeyboardButton_Apostrophe, + Apps = libphx.KeyboardButton_Apps, + Asterisk = libphx.KeyboardButton_Asterisk, + Plus = libphx.KeyboardButton_Plus, + At = libphx.KeyboardButton_At, + Ax = libphx.KeyboardButton_Ax, + Backslash = libphx.KeyboardButton_Backslash, + Calculator = libphx.KeyboardButton_Calculator, + Capital = libphx.KeyboardButton_Capital, + Colon = libphx.KeyboardButton_Colon, + Comma = libphx.KeyboardButton_Comma, + Convert = libphx.KeyboardButton_Convert, + NumpadDecimal = libphx.KeyboardButton_NumpadDecimal, + NumpadDivide = libphx.KeyboardButton_NumpadDivide, + Equals = libphx.KeyboardButton_Equals, + Grave = libphx.KeyboardButton_Grave, + Kana = libphx.KeyboardButton_Kana, + Kanji = libphx.KeyboardButton_Kanji, + AltLeft = libphx.KeyboardButton_AltLeft, + BracketLeft = libphx.KeyboardButton_BracketLeft, + ControlLeft = libphx.KeyboardButton_ControlLeft, + ShiftLeft = libphx.KeyboardButton_ShiftLeft, + SuperLeft = libphx.KeyboardButton_SuperLeft, + Mail = libphx.KeyboardButton_Mail, + MediaSelect = libphx.KeyboardButton_MediaSelect, + MediaStop = libphx.KeyboardButton_MediaStop, + Minus = libphx.KeyboardButton_Minus, + NumpadMultiply = libphx.KeyboardButton_NumpadMultiply, + Mute = libphx.KeyboardButton_Mute, + MyComputer = libphx.KeyboardButton_MyComputer, + NavigateForward = libphx.KeyboardButton_NavigateForward, + NavigateBackward = libphx.KeyboardButton_NavigateBackward, + NextTrack = libphx.KeyboardButton_NextTrack, + NoConvert = libphx.KeyboardButton_NoConvert, + NumpadComma = libphx.KeyboardButton_NumpadComma, + NumpadEnter = libphx.KeyboardButton_NumpadEnter, + NumpadEquals = libphx.KeyboardButton_NumpadEquals, + Oem102 = libphx.KeyboardButton_Oem102, + Period = libphx.KeyboardButton_Period, + PlayPause = libphx.KeyboardButton_PlayPause, + Power = libphx.KeyboardButton_Power, + PrevTrack = libphx.KeyboardButton_PrevTrack, + AltRight = libphx.KeyboardButton_AltRight, + BracketRight = libphx.KeyboardButton_BracketRight, + ControlRight = libphx.KeyboardButton_ControlRight, + ShiftRight = libphx.KeyboardButton_ShiftRight, + SuperRight = libphx.KeyboardButton_SuperRight, + Semicolon = libphx.KeyboardButton_Semicolon, + Slash = libphx.KeyboardButton_Slash, + Sleep = libphx.KeyboardButton_Sleep, + Stop = libphx.KeyboardButton_Stop, + NumpadSubtract = libphx.KeyboardButton_NumpadSubtract, + Sysrq = libphx.KeyboardButton_Sysrq, + Tab = libphx.KeyboardButton_Tab, + Underline = libphx.KeyboardButton_Underline, + Unlabeled = libphx.KeyboardButton_Unlabeled, + VolumeDown = libphx.KeyboardButton_VolumeDown, + VolumeUp = libphx.KeyboardButton_VolumeUp, + Wake = libphx.KeyboardButton_Wake, + WebBack = libphx.KeyboardButton_WebBack, + WebFavorites = libphx.KeyboardButton_WebFavorites, + WebForward = libphx.KeyboardButton_WebForward, + WebHome = libphx.KeyboardButton_WebHome, + WebRefresh = libphx.KeyboardButton_WebRefresh, + WebSearch = libphx.KeyboardButton_WebSearch, + WebStop = libphx.KeyboardButton_WebStop, + Yen = libphx.KeyboardButton_Yen, + Copy = libphx.KeyboardButton_Copy, + Paste = libphx.KeyboardButton_Paste, + Cut = libphx.KeyboardButton_Cut, + + ToString = libphx.KeyboardButton_ToString, + } + + if onDef_KeyboardButton then onDef_KeyboardButton(KeyboardButton, mt) end + KeyboardButton = setmetatable(KeyboardButton, mt) + end + + return KeyboardButton +end + +return Loader diff --git a/engine/lib/phx/script/ffi_gen/KeyboardState.lua b/engine/lib/phx/script/ffi_gen/KeyboardState.lua new file mode 100644 index 000000000..449bd0618 --- /dev/null +++ b/engine/lib/phx/script/ffi_gen/KeyboardState.lua @@ -0,0 +1,65 @@ +-- KeyboardState --------------------------------------------------------------- +local Loader = {} + +function Loader.declareType() + ffi.cdef [[ + typedef struct KeyboardState {} KeyboardState; + ]] + + return 1, 'KeyboardState' +end + +function Loader.defineType() + local ffi = require('ffi') + local libphx = require('libphx').lib + local KeyboardState + + do -- C Definitions + ffi.cdef [[ + bool KeyboardState_IsPressed (KeyboardState const*, KeyboardButton button); + bool KeyboardState_IsDown (KeyboardState const*, KeyboardButton button); + bool KeyboardState_IsReleased (KeyboardState const*, KeyboardButton button); + bool KeyboardState_AltPressed (KeyboardState const*); + bool KeyboardState_CtrlPressed (KeyboardState const*); + bool KeyboardState_ShiftPressed (KeyboardState const*); + float KeyboardState_Value (KeyboardState const*, KeyboardButton button); + ]] + end + + do -- Global Symbol Table + KeyboardState = { + IsPressed = libphx.KeyboardState_IsPressed, + IsDown = libphx.KeyboardState_IsDown, + IsReleased = libphx.KeyboardState_IsReleased, + AltPressed = libphx.KeyboardState_AltPressed, + CtrlPressed = libphx.KeyboardState_CtrlPressed, + ShiftPressed = libphx.KeyboardState_ShiftPressed, + Value = libphx.KeyboardState_Value, + } + + if onDef_KeyboardState then onDef_KeyboardState(KeyboardState, mt) end + KeyboardState = setmetatable(KeyboardState, mt) + end + + do -- Metatype for class instances + local t = ffi.typeof('KeyboardState') + local mt = { + __index = { + isPressed = libphx.KeyboardState_IsPressed, + isDown = libphx.KeyboardState_IsDown, + isReleased = libphx.KeyboardState_IsReleased, + altPressed = libphx.KeyboardState_AltPressed, + ctrlPressed = libphx.KeyboardState_CtrlPressed, + shiftPressed = libphx.KeyboardState_ShiftPressed, + value = libphx.KeyboardState_Value, + }, + } + + if onDef_KeyboardState_t then onDef_KeyboardState_t(t, mt) end + KeyboardState_t = ffi.metatype(t, mt) + end + + return KeyboardState +end + +return Loader diff --git a/engine/lib/phx/script/ffi_gen/LineSegment.lua b/engine/lib/phx/script/ffi_gen/LineSegment.lua new file mode 100644 index 000000000..61cca30d5 --- /dev/null +++ b/engine/lib/phx/script/ffi_gen/LineSegment.lua @@ -0,0 +1,54 @@ +-- LineSegment ----------------------------------------------------------------- +local Loader = {} + +function Loader.declareType() + return 0, 'LineSegment' +end + +function Loader.defineType() + local ffi = require('ffi') + local libphx = require('libphx').lib + local LineSegment + + do -- C Definitions + ffi.cdef [[ + void LineSegment_ToRay (LineSegment const*, Ray* out); + void LineSegment_FromRay (Ray const* ray, LineSegment* out); + cstr LineSegment_ToString (LineSegment const*); + ]] + end + + do -- Global Symbol Table + LineSegment = { + ToRay = libphx.LineSegment_ToRay, + FromRay = libphx.LineSegment_FromRay, + ToString = libphx.LineSegment_ToString, + } + + local mt = { + __call = function(t, ...) return LineSegment_t(...) end, + } + + if onDef_LineSegment then onDef_LineSegment(LineSegment, mt) end + LineSegment = setmetatable(LineSegment, mt) + end + + do -- Metatype for class instances + local t = ffi.typeof('LineSegment') + local mt = { + __tostring = function(self) return ffi.string(libphx.LineSegment_ToString(self)) end, + __index = { + clone = function(x) return LineSegment_t(x) end, + toRay = libphx.LineSegment_ToRay, + toString = libphx.LineSegment_ToString, + }, + } + + if onDef_LineSegment_t then onDef_LineSegment_t(t, mt) end + LineSegment_t = ffi.metatype(t, mt) + end + + return LineSegment +end + +return Loader diff --git a/engine/lib/phx/script/ffi_gen/Logger.lua b/engine/lib/phx/script/ffi_gen/Logger.lua new file mode 100644 index 000000000..340df083b --- /dev/null +++ b/engine/lib/phx/script/ffi_gen/Logger.lua @@ -0,0 +1,39 @@ +-- Logger ---------------------------------------------------------------------- +local Loader = {} + +function Loader.declareType() + return 0, 'Logger' +end + +function Loader.defineType() + local ffi = require('ffi') + local libphx = require('libphx').lib + local Logger + + do -- C Definitions + ffi.cdef [[ + void Logger_Trace (cstr msg); + void Logger_Debug (cstr msg); + void Logger_Info (cstr msg); + void Logger_Warn (cstr msg); + void Logger_Error (cstr msg); + ]] + end + + do -- Global Symbol Table + Logger = { + Trace = libphx.Logger_Trace, + Debug = libphx.Logger_Debug, + Info = libphx.Logger_Info, + Warn = libphx.Logger_Warn, + Error = libphx.Logger_Error, + } + + if onDef_Logger then onDef_Logger(Logger, mt) end + Logger = setmetatable(Logger, mt) + end + + return Logger +end + +return Loader diff --git a/engine/lib/phx/script/ffi_gen/MouseControl.lua b/engine/lib/phx/script/ffi_gen/MouseControl.lua new file mode 100644 index 000000000..d84f28d6f --- /dev/null +++ b/engine/lib/phx/script/ffi_gen/MouseControl.lua @@ -0,0 +1,59 @@ +-- MouseControl ---------------------------------------------------------------- +local Loader = {} + +function Loader.declareType() + ffi.cdef [[ + typedef uint8 MouseControl; + ]] + + return 2, 'MouseControl' +end + +function Loader.defineType() + local ffi = require('ffi') + local libphx = require('libphx').lib + local MouseControl + + do -- C Definitions + ffi.cdef [[ + MouseControl MouseControl_Left; + MouseControl MouseControl_Middle; + MouseControl MouseControl_Right; + MouseControl MouseControl_X1; + MouseControl MouseControl_X2; + MouseControl MouseControl_DeltaX; + MouseControl MouseControl_DeltaY; + MouseControl MouseControl_ScrollX; + MouseControl MouseControl_ScrollY; + MouseControl MouseControl_ScrollPixelX; + MouseControl MouseControl_ScrollPixelY; + + cstr MouseControl_ToString(MouseControl); + ]] + end + + do -- Global Symbol Table + MouseControl = { + Left = libphx.MouseControl_Left, + Middle = libphx.MouseControl_Middle, + Right = libphx.MouseControl_Right, + X1 = libphx.MouseControl_X1, + X2 = libphx.MouseControl_X2, + DeltaX = libphx.MouseControl_DeltaX, + DeltaY = libphx.MouseControl_DeltaY, + ScrollX = libphx.MouseControl_ScrollX, + ScrollY = libphx.MouseControl_ScrollY, + ScrollPixelX = libphx.MouseControl_ScrollPixelX, + ScrollPixelY = libphx.MouseControl_ScrollPixelY, + + ToString = libphx.MouseControl_ToString, + } + + if onDef_MouseControl then onDef_MouseControl(MouseControl, mt) end + MouseControl = setmetatable(MouseControl, mt) + end + + return MouseControl +end + +return Loader diff --git a/engine/lib/phx/script/ffi_gen/MouseState.lua b/engine/lib/phx/script/ffi_gen/MouseState.lua new file mode 100644 index 000000000..1c2384d11 --- /dev/null +++ b/engine/lib/phx/script/ffi_gen/MouseState.lua @@ -0,0 +1,71 @@ +-- MouseState ------------------------------------------------------------------ +local Loader = {} + +function Loader.declareType() + ffi.cdef [[ + typedef struct MouseState {} MouseState; + ]] + + return 1, 'MouseState' +end + +function Loader.defineType() + local ffi = require('ffi') + local libphx = require('libphx').lib + local MouseState + + do -- C Definitions + ffi.cdef [[ + float MouseState_Value (MouseState const*, MouseControl control); + bool MouseState_IsPressed (MouseState const*, MouseControl control); + bool MouseState_IsDown (MouseState const*, MouseControl control); + bool MouseState_IsReleased (MouseState const*, MouseControl control); + Vec2f MouseState_Delta (MouseState const*); + Vec2f MouseState_Scroll (MouseState const*); + Vec2f MouseState_ScrollPixel (MouseState const*); + Vec2f MouseState_Position (MouseState const*); + bool MouseState_InWindow (MouseState const*); + ]] + end + + do -- Global Symbol Table + MouseState = { + Value = libphx.MouseState_Value, + IsPressed = libphx.MouseState_IsPressed, + IsDown = libphx.MouseState_IsDown, + IsReleased = libphx.MouseState_IsReleased, + Delta = libphx.MouseState_Delta, + Scroll = libphx.MouseState_Scroll, + ScrollPixel = libphx.MouseState_ScrollPixel, + Position = libphx.MouseState_Position, + InWindow = libphx.MouseState_InWindow, + } + + if onDef_MouseState then onDef_MouseState(MouseState, mt) end + MouseState = setmetatable(MouseState, mt) + end + + do -- Metatype for class instances + local t = ffi.typeof('MouseState') + local mt = { + __index = { + value = libphx.MouseState_Value, + isPressed = libphx.MouseState_IsPressed, + isDown = libphx.MouseState_IsDown, + isReleased = libphx.MouseState_IsReleased, + delta = libphx.MouseState_Delta, + scroll = libphx.MouseState_Scroll, + scrollPixel = libphx.MouseState_ScrollPixel, + position = libphx.MouseState_Position, + inWindow = libphx.MouseState_InWindow, + }, + } + + if onDef_MouseState_t then onDef_MouseState_t(t, mt) end + MouseState_t = ffi.metatype(t, mt) + end + + return MouseState +end + +return Loader diff --git a/engine/lib/phx/script/ffi_gen/PresentMode.lua b/engine/lib/phx/script/ffi_gen/PresentMode.lua new file mode 100644 index 000000000..d3e26d1e9 --- /dev/null +++ b/engine/lib/phx/script/ffi_gen/PresentMode.lua @@ -0,0 +1,47 @@ +-- PresentMode ----------------------------------------------------------------- +local Loader = {} + +function Loader.declareType() + ffi.cdef [[ + typedef uint8 PresentMode; + ]] + + return 2, 'PresentMode' +end + +function Loader.defineType() + local ffi = require('ffi') + local libphx = require('libphx').lib + local PresentMode + + do -- C Definitions + ffi.cdef [[ + PresentMode PresentMode_AutoVsync; + PresentMode PresentMode_AutoNoVsync; + PresentMode PresentMode_Immediate; + PresentMode PresentMode_Mailbox; + PresentMode PresentMode_Fifo; + + cstr PresentMode_ToString(PresentMode); + ]] + end + + do -- Global Symbol Table + PresentMode = { + AutoVsync = libphx.PresentMode_AutoVsync, + AutoNoVsync = libphx.PresentMode_AutoNoVsync, + Immediate = libphx.PresentMode_Immediate, + Mailbox = libphx.PresentMode_Mailbox, + Fifo = libphx.PresentMode_Fifo, + + ToString = libphx.PresentMode_ToString, + } + + if onDef_PresentMode then onDef_PresentMode(PresentMode, mt) end + PresentMode = setmetatable(PresentMode, mt) + end + + return PresentMode +end + +return Loader diff --git a/engine/lib/phx/script/ffi_gen/Sound.lua b/engine/lib/phx/script/ffi_gen/Sound.lua new file mode 100644 index 000000000..8b0a225a1 --- /dev/null +++ b/engine/lib/phx/script/ffi_gen/Sound.lua @@ -0,0 +1,86 @@ +-- Sound ----------------------------------------------------------------------- +local Loader = {} + +function Loader.declareType() + ffi.cdef [[ + typedef struct Sound {} Sound; + ]] + + return 1, 'Sound' +end + +function Loader.defineType() + local ffi = require('ffi') + local libphx = require('libphx').lib + local Sound + + do -- C Definitions + ffi.cdef [[ + void Sound_Free (Sound*); + Sound* Sound_Load (cstr path, bool isLooping); + float Sound_GetDuration (Sound const*); + cstr Sound_GetPath (Sound const*); + bool Sound_IsPlaying (Sound const*); + bool Sound_IsPaused (Sound const*); + bool Sound_IsStopped (Sound const*); + void Sound_SetVolume (Sound*, double volume); + void Sound_Pause (Sound*, uint64 fadeMillis); + void Sound_Resume (Sound*, uint64 fadeMillis); + void Sound_Stop (Sound*, uint64 fadeMillis); + void Sound_SetPlayPos (Sound*, double position); + void Sound_MovePlayPos (Sound*, double offset); + void Sound_SetEmitterPos (Sound*, Vec3f const* position); + ]] + end + + do -- Global Symbol Table + Sound = { + Free = libphx.Sound_Free, + Load = libphx.Sound_Load, + GetDuration = libphx.Sound_GetDuration, + GetPath = libphx.Sound_GetPath, + IsPlaying = libphx.Sound_IsPlaying, + IsPaused = libphx.Sound_IsPaused, + IsStopped = libphx.Sound_IsStopped, + SetVolume = libphx.Sound_SetVolume, + Pause = libphx.Sound_Pause, + Resume = libphx.Sound_Resume, + Stop = libphx.Sound_Stop, + SetPlayPos = libphx.Sound_SetPlayPos, + MovePlayPos = libphx.Sound_MovePlayPos, + SetEmitterPos = libphx.Sound_SetEmitterPos, + } + + if onDef_Sound then onDef_Sound(Sound, mt) end + Sound = setmetatable(Sound, mt) + end + + do -- Metatype for class instances + local t = ffi.typeof('Sound') + local mt = { + __index = { + managed = function(self) return ffi.gc(self, libphx.Sound_Free) end, + free = libphx.Sound_Free, + getDuration = libphx.Sound_GetDuration, + getPath = libphx.Sound_GetPath, + isPlaying = libphx.Sound_IsPlaying, + isPaused = libphx.Sound_IsPaused, + isStopped = libphx.Sound_IsStopped, + setVolume = libphx.Sound_SetVolume, + pause = libphx.Sound_Pause, + resume = libphx.Sound_Resume, + stop = libphx.Sound_Stop, + setPlayPos = libphx.Sound_SetPlayPos, + movePlayPos = libphx.Sound_MovePlayPos, + setEmitterPos = libphx.Sound_SetEmitterPos, + }, + } + + if onDef_Sound_t then onDef_Sound_t(t, mt) end + Sound_t = ffi.metatype(t, mt) + end + + return Sound +end + +return Loader diff --git a/engine/lib/phx/script/ffi_gen/SystemEvent.lua b/engine/lib/phx/script/ffi_gen/SystemEvent.lua new file mode 100644 index 000000000..1ba10b1c8 --- /dev/null +++ b/engine/lib/phx/script/ffi_gen/SystemEvent.lua @@ -0,0 +1,39 @@ +-- SystemEvent ----------------------------------------------------------------- +local Loader = {} + +function Loader.declareType() + ffi.cdef [[ + typedef uint8 SystemEvent; + ]] + + return 2, 'SystemEvent' +end + +function Loader.defineType() + local ffi = require('ffi') + local libphx = require('libphx').lib + local SystemEvent + + do -- C Definitions + ffi.cdef [[ + SystemEvent SystemEvent_Exit; + + cstr SystemEvent_ToString(SystemEvent); + ]] + end + + do -- Global Symbol Table + SystemEvent = { + Exit = libphx.SystemEvent_Exit, + + ToString = libphx.SystemEvent_ToString, + } + + if onDef_SystemEvent then onDef_SystemEvent(SystemEvent, mt) end + SystemEvent = setmetatable(SystemEvent, mt) + end + + return SystemEvent +end + +return Loader diff --git a/engine/lib/phx/script/ffi_gen/SystemEventState.lua b/engine/lib/phx/script/ffi_gen/SystemEventState.lua new file mode 100644 index 000000000..8054ef6f6 --- /dev/null +++ b/engine/lib/phx/script/ffi_gen/SystemEventState.lua @@ -0,0 +1,47 @@ +-- SystemEventState ------------------------------------------------------------ +local Loader = {} + +function Loader.declareType() + ffi.cdef [[ + typedef struct SystemEventState {} SystemEventState; + ]] + + return 1, 'SystemEventState' +end + +function Loader.defineType() + local ffi = require('ffi') + local libphx = require('libphx').lib + local SystemEventState + + do -- C Definitions + ffi.cdef [[ + bool SystemEventState_IsExit (SystemEventState const*); + ]] + end + + do -- Global Symbol Table + SystemEventState = { + IsExit = libphx.SystemEventState_IsExit, + } + + if onDef_SystemEventState then onDef_SystemEventState(SystemEventState, mt) end + SystemEventState = setmetatable(SystemEventState, mt) + end + + do -- Metatype for class instances + local t = ffi.typeof('SystemEventState') + local mt = { + __index = { + isExit = libphx.SystemEventState_IsExit, + }, + } + + if onDef_SystemEventState_t then onDef_SystemEventState_t(t, mt) end + SystemEventState_t = ffi.metatype(t, mt) + end + + return SystemEventState +end + +return Loader diff --git a/engine/lib/phx/script/ffi_gen/Time.lua b/engine/lib/phx/script/ffi_gen/Time.lua new file mode 100644 index 000000000..b642b9f09 --- /dev/null +++ b/engine/lib/phx/script/ffi_gen/Time.lua @@ -0,0 +1,51 @@ +-- Time ------------------------------------------------------------------------ +local Loader = {} + +function Loader.declareType() + return 0, 'Time' +end + +function Loader.defineType() + local ffi = require('ffi') + local libphx = require('libphx').lib + local Time + + do -- C Definitions + ffi.cdef [[ + Time* Time_GetLocal (); + Time* Time_GetUtc (); + uint32 Time_GetRaw (); + ]] + end + + do -- Global Symbol Table + Time = { + GetLocal = libphx.Time_GetLocal, + GetUtc = libphx.Time_GetUtc, + GetRaw = libphx.Time_GetRaw, + } + + local mt = { + __call = function(t, ...) return Time_t(...) end, + } + + if onDef_Time then onDef_Time(Time, mt) end + Time = setmetatable(Time, mt) + end + + do -- Metatype for class instances + local t = ffi.typeof('Time') + local mt = { + __index = { + clone = function(x) return Time_t(x) end, + }, + } + + if onDef_Time_t then onDef_Time_t(t, mt) end + Time_t = ffi.metatype(t, mt) + end + + return Time +end + +return Loader diff --git a/engine/lib/phx/script/ffi_gen/TimeStamp.lua b/engine/lib/phx/script/ffi_gen/TimeStamp.lua new file mode 100644 index 000000000..c804bbdd2 --- /dev/null +++ b/engine/lib/phx/script/ffi_gen/TimeStamp.lua @@ -0,0 +1,70 @@ +-- TimeStamp ------------------------------------------------------------------- +local Loader = {} + +function Loader.declareType() + ffi.cdef [[ + typedef struct TimeStamp {} TimeStamp; + ]] + + return 1, 'TimeStamp' +end + +function Loader.defineType() + local ffi = require('ffi') + local libphx = require('libphx').lib + local TimeStamp + + do -- C Definitions + ffi.cdef [[ + void TimeStamp_Free (TimeStamp*); + TimeStamp* TimeStamp_Now (); + TimeStamp* TimeStamp_GetFuture (double seconds); + double TimeStamp_GetDifference (TimeStamp const*, TimeStamp const* end); + double TimeStamp_GetElapsed (TimeStamp const*); + double TimeStamp_GetElapsedMs (TimeStamp const*); + TimeStamp* TimeStamp_GetRelative (TimeStamp const*, double seconds); + double TimeStamp_ToDouble (TimeStamp const*); + uint64 TimeStamp_ToSeconds (TimeStamp const*); + ]] + end + + do -- Global Symbol Table + TimeStamp = { + Free = libphx.TimeStamp_Free, + Now = libphx.TimeStamp_Now, + GetFuture = libphx.TimeStamp_GetFuture, + GetDifference = libphx.TimeStamp_GetDifference, + GetElapsed = libphx.TimeStamp_GetElapsed, + GetElapsedMs = libphx.TimeStamp_GetElapsedMs, + GetRelative = libphx.TimeStamp_GetRelative, + ToDouble = libphx.TimeStamp_ToDouble, + ToSeconds = libphx.TimeStamp_ToSeconds, + } + + if onDef_TimeStamp then onDef_TimeStamp(TimeStamp, mt) end + TimeStamp = setmetatable(TimeStamp, mt) + end + + do -- Metatype for class instances + local t = ffi.typeof('TimeStamp') + local mt = { + __index = { + managed = function(self) return ffi.gc(self, libphx.TimeStamp_Free) end, + free = libphx.TimeStamp_Free, + getDifference = libphx.TimeStamp_GetDifference, + getElapsed = libphx.TimeStamp_GetElapsed, + getElapsedMs = libphx.TimeStamp_GetElapsedMs, + getRelative = libphx.TimeStamp_GetRelative, + toDouble = libphx.TimeStamp_ToDouble, + toSeconds = libphx.TimeStamp_ToSeconds, + }, + } + + if onDef_TimeStamp_t then onDef_TimeStamp_t(t, mt) end + TimeStamp_t = ffi.metatype(t, mt) + end + + return TimeStamp +end + +return Loader diff --git a/engine/lib/phx/script/ffi_gen/Timer.lua b/engine/lib/phx/script/ffi_gen/Timer.lua new file mode 100644 index 000000000..bb8b7dcca --- /dev/null +++ b/engine/lib/phx/script/ffi_gen/Timer.lua @@ -0,0 +1,59 @@ +-- Timer ----------------------------------------------------------------------- +local Loader = {} + +function Loader.declareType() + ffi.cdef [[ + typedef struct Timer {} Timer; + ]] + + return 1, 'Timer' +end + +function Loader.defineType() + local ffi = require('ffi') + local libphx = require('libphx').lib + local Timer + + do -- C Definitions + ffi.cdef [[ + void Timer_Free (Timer*); + Timer* Timer_Create (); + double Timer_GetAndReset (Timer*); + double Timer_GetElapsed (Timer const*); + void Timer_Reset (Timer*); + ]] + end + + do -- Global Symbol Table + Timer = { + Free = libphx.Timer_Free, + Create = libphx.Timer_Create, + GetAndReset = libphx.Timer_GetAndReset, + GetElapsed = libphx.Timer_GetElapsed, + Reset = libphx.Timer_Reset, + } + + if onDef_Timer then onDef_Timer(Timer, mt) end + Timer = setmetatable(Timer, mt) + end + + do -- Metatype for class instances + local t = ffi.typeof('Timer') + local mt = { + __index = { + managed = function(self) return ffi.gc(self, libphx.Timer_Free) end, + free = libphx.Timer_Free, + getAndReset = libphx.Timer_GetAndReset, + getElapsed = libphx.Timer_GetElapsed, + reset = libphx.Timer_Reset, + }, + } + + if onDef_Timer_t then onDef_Timer_t(t, mt) end + Timer_t = ffi.metatype(t, mt) + end + + return Timer +end + +return Loader diff --git a/engine/lib/phx/script/ffi_gen/TouchpadAxis.lua b/engine/lib/phx/script/ffi_gen/TouchpadAxis.lua new file mode 100644 index 000000000..990d7c33b --- /dev/null +++ b/engine/lib/phx/script/ffi_gen/TouchpadAxis.lua @@ -0,0 +1,45 @@ +-- TouchpadAxis ---------------------------------------------------------------- +local Loader = {} + +function Loader.declareType() + ffi.cdef [[ + typedef uint8 TouchpadAxis; + ]] + + return 2, 'TouchpadAxis' +end + +function Loader.defineType() + local ffi = require('ffi') + local libphx = require('libphx').lib + local TouchpadAxis + + do -- C Definitions + ffi.cdef [[ + TouchpadAxis TouchpadAxis_X; + TouchpadAxis TouchpadAxis_Y; + TouchpadAxis TouchpadAxis_MagnifyDelta; + TouchpadAxis TouchpadAxis_RotateDelta; + + cstr TouchpadAxis_ToString(TouchpadAxis); + ]] + end + + do -- Global Symbol Table + TouchpadAxis = { + X = libphx.TouchpadAxis_X, + Y = libphx.TouchpadAxis_Y, + MagnifyDelta = libphx.TouchpadAxis_MagnifyDelta, + RotateDelta = libphx.TouchpadAxis_RotateDelta, + + ToString = libphx.TouchpadAxis_ToString, + } + + if onDef_TouchpadAxis then onDef_TouchpadAxis(TouchpadAxis, mt) end + TouchpadAxis = setmetatable(TouchpadAxis, mt) + end + + return TouchpadAxis +end + +return Loader diff --git a/engine/lib/phx/script/ffi_gen/TouchpadState.lua b/engine/lib/phx/script/ffi_gen/TouchpadState.lua new file mode 100644 index 000000000..7a9b8ad1f --- /dev/null +++ b/engine/lib/phx/script/ffi_gen/TouchpadState.lua @@ -0,0 +1,56 @@ +-- TouchpadState --------------------------------------------------------------- +local Loader = {} + +function Loader.declareType() + ffi.cdef [[ + typedef struct TouchpadState {} TouchpadState; + ]] + + return 1, 'TouchpadState' +end + +function Loader.defineType() + local ffi = require('ffi') + local libphx = require('libphx').lib + local TouchpadState + + do -- C Definitions + ffi.cdef [[ + float TouchpadState_Value (TouchpadState const*, TouchpadAxis axis); + Vec2f TouchpadState_Position (TouchpadState const*); + float TouchpadState_MagnifyDelta (TouchpadState const*); + float TouchpadState_RotateDelta (TouchpadState const*); + ]] + end + + do -- Global Symbol Table + TouchpadState = { + Value = libphx.TouchpadState_Value, + Position = libphx.TouchpadState_Position, + MagnifyDelta = libphx.TouchpadState_MagnifyDelta, + RotateDelta = libphx.TouchpadState_RotateDelta, + } + + if onDef_TouchpadState then onDef_TouchpadState(TouchpadState, mt) end + TouchpadState = setmetatable(TouchpadState, mt) + end + + do -- Metatype for class instances + local t = ffi.typeof('TouchpadState') + local mt = { + __index = { + value = libphx.TouchpadState_Value, + position = libphx.TouchpadState_Position, + magnifyDelta = libphx.TouchpadState_MagnifyDelta, + rotateDelta = libphx.TouchpadState_RotateDelta, + }, + } + + if onDef_TouchpadState_t then onDef_TouchpadState_t(t, mt) end + TouchpadState_t = ffi.metatype(t, mt) + end + + return TouchpadState +end + +return Loader diff --git a/engine/lib/phx/script/ffi_gen/Window.lua b/engine/lib/phx/script/ffi_gen/Window.lua new file mode 100644 index 000000000..66b00b7b2 --- /dev/null +++ b/engine/lib/phx/script/ffi_gen/Window.lua @@ -0,0 +1,149 @@ +-- Window ---------------------------------------------------------------------- +local Loader = {} + +function Loader.declareType() + ffi.cdef [[ + typedef struct Window {} Window; + ]] + + return 1, 'Window' +end + +function Loader.defineType() + local ffi = require('ffi') + local libphx = require('libphx').lib + local Window + + do -- C Definitions + ffi.cdef [[ + void Window_BeginDraw (Window const*); + void Window_EndDraw (Window const*); + cstr Window_Title (Window const*); + void Window_SetTitle (Window*, cstr title); + Cursor* Window_Cursor (Window*); + PresentMode Window_PresentMode (Window const*); + void Window_SetPresentMode (Window*, PresentMode presentMode); + void Window_SetMaximized (Window*, bool maximized); + void Window_SetMinimized (Window*, bool minimized); + Vec2i Window_Position (Window const*); + void Window_SetCenteredPosition (Window*); + void Window_SetPosition (Window*, int x, int y); + float Window_Width (Window const*); + float Window_Height (Window const*); + Vec2f Window_Size (Window const*); + void Window_SetSize (Window*, float width, float height); + uint32 Window_PhysicalWidth (Window const*); + uint32 Window_PhysicalHeight (Window const*); + Vec2i Window_PhysicalSize (Window const*); + void Window_SetPhysicalSize (Window*, int width, int height); + bool Window_IsResizable (Window const*); + void Window_SetResizable (Window*, bool resizable); + bool Window_HasDecorations (Window const*); + void Window_SetDecorations (Window*, bool decorations); + bool Window_IsTransparent (Window const*); + void Window_SetTransparent (Window*, bool transparent); + bool Window_IsFocused (Window const*); + void Window_SetFocused (Window*, bool focused); + void Window_SetFullscreen (Window*, bool fs); + void Window_ToggleFullscreen (Window*); + double Window_ScaleFactor (Window const*); + Vec2f const* Window_CursorPosition (Window const*); + void Window_SetCursorPosition (Window*, Vec2f const* position); + Vec2f const* Window_PhysicalCursorPosition (Window const*); + void Window_SetPhysicalCursorPosition (Window*, Vec2d const* position); + ]] + end + + do -- Global Symbol Table + Window = { + BeginDraw = libphx.Window_BeginDraw, + EndDraw = libphx.Window_EndDraw, + Title = libphx.Window_Title, + SetTitle = libphx.Window_SetTitle, + Cursor = libphx.Window_Cursor, + PresentMode = libphx.Window_PresentMode, + SetPresentMode = libphx.Window_SetPresentMode, + SetMaximized = libphx.Window_SetMaximized, + SetMinimized = libphx.Window_SetMinimized, + Position = libphx.Window_Position, + SetCenteredPosition = libphx.Window_SetCenteredPosition, + SetPosition = libphx.Window_SetPosition, + Width = libphx.Window_Width, + Height = libphx.Window_Height, + Size = libphx.Window_Size, + SetSize = libphx.Window_SetSize, + PhysicalWidth = libphx.Window_PhysicalWidth, + PhysicalHeight = libphx.Window_PhysicalHeight, + PhysicalSize = libphx.Window_PhysicalSize, + SetPhysicalSize = libphx.Window_SetPhysicalSize, + IsResizable = libphx.Window_IsResizable, + SetResizable = libphx.Window_SetResizable, + HasDecorations = libphx.Window_HasDecorations, + SetDecorations = libphx.Window_SetDecorations, + IsTransparent = libphx.Window_IsTransparent, + SetTransparent = libphx.Window_SetTransparent, + IsFocused = libphx.Window_IsFocused, + SetFocused = libphx.Window_SetFocused, + SetFullscreen = libphx.Window_SetFullscreen, + ToggleFullscreen = libphx.Window_ToggleFullscreen, + ScaleFactor = libphx.Window_ScaleFactor, + CursorPosition = libphx.Window_CursorPosition, + SetCursorPosition = libphx.Window_SetCursorPosition, + PhysicalCursorPosition = libphx.Window_PhysicalCursorPosition, + SetPhysicalCursorPosition = libphx.Window_SetPhysicalCursorPosition, + } + + if onDef_Window then onDef_Window(Window, mt) end + Window = setmetatable(Window, mt) + end + + do -- Metatype for class instances + local t = ffi.typeof('Window') + local mt = { + __index = { + beginDraw = libphx.Window_BeginDraw, + endDraw = libphx.Window_EndDraw, + title = libphx.Window_Title, + setTitle = libphx.Window_SetTitle, + cursor = libphx.Window_Cursor, + presentMode = libphx.Window_PresentMode, + setPresentMode = libphx.Window_SetPresentMode, + setMaximized = libphx.Window_SetMaximized, + setMinimized = libphx.Window_SetMinimized, + position = libphx.Window_Position, + setCenteredPosition = libphx.Window_SetCenteredPosition, + setPosition = libphx.Window_SetPosition, + width = libphx.Window_Width, + height = libphx.Window_Height, + size = libphx.Window_Size, + setSize = libphx.Window_SetSize, + physicalWidth = libphx.Window_PhysicalWidth, + physicalHeight = libphx.Window_PhysicalHeight, + physicalSize = libphx.Window_PhysicalSize, + setPhysicalSize = libphx.Window_SetPhysicalSize, + isResizable = libphx.Window_IsResizable, + setResizable = libphx.Window_SetResizable, + hasDecorations = libphx.Window_HasDecorations, + setDecorations = libphx.Window_SetDecorations, + isTransparent = libphx.Window_IsTransparent, + setTransparent = libphx.Window_SetTransparent, + isFocused = libphx.Window_IsFocused, + setFocused = libphx.Window_SetFocused, + setFullscreen = libphx.Window_SetFullscreen, + toggleFullscreen = libphx.Window_ToggleFullscreen, + scaleFactor = libphx.Window_ScaleFactor, + cursorPosition = libphx.Window_CursorPosition, + setCursorPosition = libphx.Window_SetCursorPosition, + physicalCursorPosition = libphx.Window_PhysicalCursorPosition, + setPhysicalCursorPosition = libphx.Window_SetPhysicalCursorPosition, + }, + } + + if onDef_Window_t then onDef_Window_t(t, mt) end + Window_t = ffi.metatype(t, mt) + end + + return Window +end + +return Loader diff --git a/engine/lib/phx/script/ffi_gen/WindowMode.lua b/engine/lib/phx/script/ffi_gen/WindowMode.lua new file mode 100644 index 000000000..7d6c341c1 --- /dev/null +++ b/engine/lib/phx/script/ffi_gen/WindowMode.lua @@ -0,0 +1,45 @@ +-- WindowMode ------------------------------------------------------------------ +local Loader = {} + +function Loader.declareType() + ffi.cdef [[ + typedef uint8 WindowMode; + ]] + + return 2, 'WindowMode' +end + +function Loader.defineType() + local ffi = require('ffi') + local libphx = require('libphx').lib + local WindowMode + + do -- C Definitions + ffi.cdef [[ + WindowMode WindowMode_Windowed; + WindowMode WindowMode_BorderlessFullscreen; + WindowMode WindowMode_SizedFullscreen; + WindowMode WindowMode_Fullscreen; + + cstr WindowMode_ToString(WindowMode); + ]] + end + + do -- Global Symbol Table + WindowMode = { + Windowed = libphx.WindowMode_Windowed, + BorderlessFullscreen = libphx.WindowMode_BorderlessFullscreen, + SizedFullscreen = libphx.WindowMode_SizedFullscreen, + Fullscreen = libphx.WindowMode_Fullscreen, + + ToString = libphx.WindowMode_ToString, + } + + if onDef_WindowMode then onDef_WindowMode(WindowMode, mt) end + WindowMode = setmetatable(WindowMode, mt) + end + + return WindowMode +end + +return Loader diff --git a/engine/lib/phx/script/ffi/lfs_ffi.lua b/engine/lib/phx/script/lfs_ffi.lua similarity index 100% rename from engine/lib/phx/script/ffi/lfs_ffi.lua rename to engine/lib/phx/script/lfs_ffi.lua diff --git a/engine/lib/phx/script/ffi/libphx.lua b/engine/lib/phx/script/libphx.lua similarity index 73% rename from engine/lib/phx/script/ffi/libphx.lua rename to engine/lib/phx/script/libphx.lua index ae846252c..ca450a687 100644 --- a/engine/lib/phx/script/ffi/libphx.lua +++ b/engine/lib/phx/script/libphx.lua @@ -4,62 +4,31 @@ local jit = require('jit') local libphx = {} do -- Basic Typedefs ffi.cdef [[ - typedef unsigned long ulong; - typedef unsigned int uint; - typedef unsigned short ushort; - typedef unsigned char uchar; - typedef char const* cstr; - typedef int8_t int8; - typedef int16_t int16; - typedef int32_t int32; - typedef int64_t int64; - typedef uint8_t uint8; - typedef uint16_t uint16; - typedef uint32_t uint32; - typedef uint64_t uint64; - typedef int32 BlendMode; typedef uint8 BSPNodeRel; - typedef int8 Button; typedef int32 CollisionGroup; typedef int32 CollisionMask; typedef int32 CubeFace; typedef int32 CullFace; typedef uint8 CursorControl; - typedef uint8 CursorGrabMode; - typedef uint8 CursorIcon; typedef int32 DataFormat; - typedef int32 DeviceType; - typedef uint8 DragAndDropEvent; typedef uint32 Error; - typedef uint8 GamepadAxis; - typedef uint8 GamepadButton; typedef uint64 GamepadId; - typedef int32 HatDir; - typedef uint8 InputDeviceType; typedef uchar Key; - typedef uint8 KeyboardButton; typedef int32 Metric; typedef int32 Modifier; - typedef int32 MouseButton; - typedef uint8 MouseControl; typedef uint8 PhysicsType; typedef int32 PixelFormat; typedef uint8 PointClassification; typedef uint8 PolygonClassification; - typedef uint8 PresentMode; typedef int32 ResourceType; typedef int32 ShaderVarType; typedef int32 SocketType; typedef uint8 SoundState; typedef int32 State; - typedef uint8 SystemEvent; typedef int32 TexFilter; typedef int32 TexFormat; typedef int32 TexWrapMode; - typedef uint8 TouchpadAxis; - typedef uint32 WindowMode; - typedef int WindowPos; ]] end @@ -73,32 +42,20 @@ end do -- Opaque Structs ffi.cdef [[ - typedef struct Audio {} Audio; typedef struct BSP {} BSP; typedef struct BoxMesh {} BoxMesh; typedef struct BoxTree {} BoxTree; typedef struct Bytes {} Bytes; - typedef struct Cursor {} Cursor; - typedef struct CursorState {} CursorState; - typedef struct Directory {} Directory; - typedef struct DragAndDropState {} DragAndDropState; - typedef struct Engine {} Engine; typedef struct File {} File; typedef struct Font {} Font; - typedef struct GamepadState {} GamepadState; typedef struct HashGrid {} HashGrid; typedef struct HashGridElem {} HashGridElem; - typedef struct Input {} Input; typedef struct InputBinding {} InputBinding; - typedef struct InputDevice {} InputDevice; - typedef struct InputDeviceId {} InputDeviceId; typedef struct KDTree {} KDTree; - typedef struct KeyboardState {} KeyboardState; typedef struct LodMesh {} LodMesh; typedef struct MemPool {} MemPool; typedef struct MemStack {} MemStack; typedef struct Mesh {} Mesh; - typedef struct MouseState {} MouseState; typedef struct Octree {} Octree; typedef struct Physics {} Physics; typedef struct RNG {} RNG; @@ -108,49 +65,29 @@ do -- Opaque Structs typedef struct Shader {} Shader; typedef struct ShaderState {} ShaderState; typedef struct Socket {} Socket; - typedef struct Sound {} Sound; - typedef struct SoundDesc {} SoundDesc; typedef struct StrMap {} StrMap; typedef struct StrMapIter {} StrMapIter; - typedef struct SystemEventState {} SystemEventState; typedef struct Tex1D {} Tex1D; typedef struct Tex2D {} Tex2D; typedef struct Tex3D {} Tex3D; typedef struct TexCube {} TexCube; - typedef struct Timer {} Timer; - typedef struct TimeStamp {} TimeStamp; - typedef struct TouchpadState {} TouchpadState; typedef struct Trigger {} Trigger; - typedef struct Window {} Window; ]] libphx.Opaques = { - 'Audio', 'BSP', 'BoxMesh', 'BoxTree', 'Bytes', - 'Cursor', - 'CursorState', - 'Directory', - 'DragAndDropState', - 'Engine', 'File', 'Font', - 'GamepadState', 'HashGrid', 'HashGridElem', - 'Input', - 'InputBinding', - 'InputDevice', - 'InputDeviceId', 'KDTree', - 'KeyboardState', 'LodMesh', 'MemPool', 'MemStack', 'Mesh', - 'MouseState', 'Octree', 'Physics', 'RNG', @@ -160,20 +97,13 @@ do -- Opaque Structs 'Shader', 'ShaderState', 'Socket', - 'Sound', - 'SoundDesc', 'StrMap', 'StrMapIter', - 'SystemEventState', 'Tex1D', 'Tex2D', 'Tex3D', 'TexCube', - 'Timer', - 'TimeStamp', - 'TouchpadState', 'Trigger', - 'Window', } end @@ -218,20 +148,6 @@ do -- Transparent Structs RigidBody* body1; } Collision; - typedef struct Device { - DeviceType type; - uint32 id; - } Device; - - typedef struct InputEvent { - uint32 timestamp; - DeviceType devicetype; - uint32 deviceid; - Button button; - float value; - State state; - } InputEvent; - typedef struct IntersectSphereProfiling { int32 nodes; int32 leaves; @@ -401,8 +317,6 @@ do -- Transparent Structs 'Box3f', 'Box3i', 'Collision', - 'Device', - 'InputEvent', 'IntersectSphereProfiling', 'LineSegment', 'Matrix', @@ -413,7 +327,6 @@ do -- Transparent Structs 'RayCastResult', 'ShapeCastResult', 'Sphere', - 'Time', 'Vec3f', 'Triangle', 'TriangleTest', diff --git a/script/Core/Util/RequireAll.lua b/script/Core/Util/RequireAll.lua index 6de9b7300..daafd7060 100644 --- a/script/Core/Util/RequireAll.lua +++ b/script/Core/Util/RequireAll.lua @@ -4,9 +4,61 @@ local Log = require('Core.Util.Log') local requireAllCache = {} + +-- Load Lua modules from the path recursively function requireAll(path) -- NOTE : It may be more idiomatic to use package.searchers to handle this if requireAllCache[path] then return requireAllCache[path] end + + return collectAllLuaFiles(path, + function(fileName, filePath) return require(filePath) end, + function(path, results) requireAllCache[path] = results end) +end + +-- Loads generated Lua modules from the path recursively. Calls `declareType` function of each module loader. +-- Returns: +-- @results - path to subfolder or module loader table +-- @genFiles - Lua file path to loader table. Used fo later calling of `defineType` functions +-- @opaques - array of opaque type names +-- @structs - array of struct/transparent type names +function requireAllGenerated(path) + -- NOTE : It may be more idiomatic to use package.searchers to handle this + if requireAllCache[path] then return requireAllCache[path] end + + local genFiles = {} + local opaques = {} + local structs = {} + + local results = collectAllLuaFiles(path, + function(fileName, filePath) + local loader = require(filePath) + + -- Load type declarations + local typeId, typeName = loader.declareType() + + if typeId == 1 then + table.insert(opaques, typeName) + elseif typeId == 2 then + table.insert(structs, typeName) + end + + genFiles[fileName] = loader + + return loader + end, + function(p, r) requireAllCache[p] = r end) + + return results, genFiles, opaques, structs +end + +-- Recursive walk through folders and Lua files. +-- Parameters: +-- @path - starting path +-- @processFile(fileName, filePath) - function to apply to each found Lua file +-- @processResults(path, results) - function to apply to each folder results +-- Returns: +-- @results - folder's hierarchical results +function collectAllLuaFiles(path, processFile, processResults) local pathWithSlashes = path:gsub('%.', '/') local dir @@ -29,7 +81,7 @@ function requireAll(path) local files, dirs = io.listdirex(dir) for i = 1, #dirs do local dirName = dirs[i] - results[dirName] = requireAll(path .. '.' .. dirName) + results[dirName] = collectAllLuaFiles(path .. '.' .. dirName, processFile, processResults) end for i = 1, #files do @@ -37,11 +89,11 @@ function requireAll(path) if fileName:sub(-4) == ".lua" then fileName = fileName:gsub('%..*$', '') if fileName:len() > 0 then - results[fileName] = require(path .. '.' .. fileName) + results[fileName] = processFile(fileName, path .. '.' .. fileName) end end end - requireAllCache[path] = results + processResults(path, results) return results end diff --git a/script/Init.lua b/script/Init.lua index 32152c995..0096f55f9 100644 --- a/script/Init.lua +++ b/script/Init.lua @@ -10,7 +10,7 @@ if __embedded__ == nil then __embedded__ = false end ]] ffi = require('ffi') jit = require('jit') -lfs = require('ffi.lfs_ffi') +lfs = require('lfs_ffi') --[[ Importing all math functions (presumably from ffi and jit? Need Confirmation) @@ -60,14 +60,54 @@ Namespace.Inline(Core.Events, 'Systems.Events') ---- Load in FFI -- Please note. All of this will need double checking. This is near 1-1 to Josh's. -- His Reasoning for using requireAll, Inline, Inject. Is unclear. +do -- Basic Typedefs + ffi.cdef [[ + typedef unsigned long ulong; + typedef unsigned int uint; + typedef unsigned short ushort; + typedef unsigned char uchar; + typedef char const* cstr; + typedef int8_t int8; + typedef int16_t int16; + typedef int32_t int32; + typedef int64_t int64; + typedef uint8_t uint8; + typedef uint16_t uint16; + typedef uint32_t uint32; + typedef uint64_t uint64; + ]] +end + + +local genObjects, genFiles, genOpaques, genStructs = requireAllGenerated('ffi_gen') + Core.FFI = {} -Core.FFI.Ext = requireAll('ffiext') -Core.FFI.Lib = require('ffi.libphx') +Core.FFI.Ext = requireAll('ffi_ext') +Core.FFI.Lib = require('libphx') -Core.FFI.Base = requireAll('ffi') +Core.FFI.Base = requireAll('ffi_common') Namespace.Inline(Core.FFI.Base, 'Core.FFI.Base') Namespace.Inject(Core.FFI, 'Core.FFI', Core.FFI.Base, 'Core.FFI.Base') +-- Load type definitions +for k, v in pairs(genFiles) do + local obj = v.defineType() + + genObjects[k] = obj +end + +Core.FFI.Gen = genObjects +Namespace.Inline(Core.FFI.Gen, 'Core.FFI.Gen') +Namespace.Inject(Core.FFI, 'Core.FFI', Core.FFI.Gen, 'Core.FFI.Gen') + +for _, v in ipairs(genOpaques) do + table.insert(Core.FFI.Lib.Opaques, v) +end + +for _, v in ipairs(genStructs) do + table.insert(Core.FFI.Lib.Structs, v) +end + Core.FFI.CFFI = requireAll('Core.CFFI') Namespace.Inline(Core.FFI.CFFI, 'Core.FFI.CFFI')