Working example
This commit is contained in:
42
sdl3/sdl3_process.odin
Normal file
42
sdl3/sdl3_process.odin
Normal file
@@ -0,0 +1,42 @@
|
||||
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) ---
|
||||
}
|
||||
Reference in New Issue
Block a user