42 lines
2.3 KiB
Odin
42 lines
2.3 KiB
Odin
package sdl3
|
|
|
|
import "core:c"
|
|
|
|
Process :: struct {}
|
|
|
|
ProcessIO :: enum c.int {
|
|
STDIO_INHERITED, /**< The I/O stream is inherited from the application. */
|
|
STDIO_NULL, /**< The I/O stream is ignored. */
|
|
STDIO_APP, /**< The I/O stream is connected to a new SDL_IOStream that the application can read or write */
|
|
STDIO_REDIRECT, /**< The I/O stream is redirected to an existing SDL_IOStream. */
|
|
}
|
|
|
|
PROP_PROCESS_CREATE_ARGS_POINTER :: "SDL.process.create.args"
|
|
PROP_PROCESS_CREATE_ENVIRONMENT_POINTER :: "SDL.process.create.environment"
|
|
PROP_PROCESS_CREATE_STDIN_NUMBER :: "SDL.process.create.stdin_option"
|
|
PROP_PROCESS_CREATE_STDIN_POINTER :: "SDL.process.create.stdin_source"
|
|
PROP_PROCESS_CREATE_STDOUT_NUMBER :: "SDL.process.create.stdout_option"
|
|
PROP_PROCESS_CREATE_STDOUT_POINTER :: "SDL.process.create.stdout_source"
|
|
PROP_PROCESS_CREATE_STDERR_NUMBER :: "SDL.process.create.stderr_option"
|
|
PROP_PROCESS_CREATE_STDERR_POINTER :: "SDL.process.create.stderr_source"
|
|
PROP_PROCESS_CREATE_STDERR_TO_STDOUT_BOOLEAN :: "SDL.process.create.stderr_to_stdout"
|
|
PROP_PROCESS_CREATE_BACKGROUND_BOOLEAN :: "SDL.process.create.background"
|
|
|
|
PROP_PROCESS_PID_NUMBER :: "SDL.process.pid"
|
|
PROP_PROCESS_STDIN_POINTER :: "SDL.process.stdin"
|
|
PROP_PROCESS_STDOUT_POINTER :: "SDL.process.stdout"
|
|
PROP_PROCESS_STDERR_POINTER :: "SDL.process.stderr"
|
|
PROP_PROCESS_BACKGROUND_BOOLEAN :: "SDL.process.background"
|
|
|
|
@(default_calling_convention="c", link_prefix="SDL_", require_results)
|
|
foreign lib {
|
|
CreateProcess :: proc(args: [^]cstring, pipe_stdio: bool) -> ^Process ---
|
|
CreateProcessWithProperties :: proc(props: PropertiesID) -> ^Process ---
|
|
GetProcessProperties :: proc(process: ^Process) -> PropertiesID ---
|
|
ReadProcess :: proc(process: ^Process, datasize: ^uint, exitcode: ^c.int) -> rawptr ---
|
|
GetProcessInput :: proc(process: ^Process) -> ^IOStream ---
|
|
GetProcessOutput :: proc(process: ^Process) -> ^IOStream ---
|
|
KillProcess :: proc(process: ^Process, force: bool) -> bool ---
|
|
WaitProcess :: proc(process: ^Process, block: bool, exitcode: ^c.int) -> bool ---
|
|
DestroyProcess :: proc(process: ^Process) ---
|
|
} |