Package Exports
- @bunchtogether/node-sdl2
- @bunchtogether/node-sdl2/lib/app
- @bunchtogether/node-sdl2/lib/window
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@bunchtogether/node-sdl2) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
node-sdl2
Bindings for SDL2 in Node
Installation
Install with npm:
npm install node-sdl2
Usage
1. Use with wrapped class ( Api Reference )
const NS = require('node-sdl2')
const App = NS.app
const Window = NS.window
let win = new Window
win.on('close', () => {
App.quit()
})
win.on('change', () => {
draw()
})
let draw = () => {
...
}
2. Use as primitive SDL2 API ( SDL 2.0 API by Category )
const NS = require('node-sdl2')
const SDL2_video = NS.require('SDL2_video')
const SDL2_render = NS.require('SDl2_render')
...
Tutorials
- Test everything in node-sdl2, you will get Screenshot shown below.
Screenshot
API References
app
Control your application's event lifecycle.
Methods
app.quit()
app.hide()
app.show()
app.exit()
Events
app.on('window-all-closed', () = {})
app.on('before-quit', (event) = {})
event
ObjectpreventDefalut()
app.on('will-quit', (event) = {})
event
ObjectpreventDefault()
app.on('drop', (file) = {})
file
String
window
Create and control
window(s)
.
Methods
let win = new window(opts)
opts
Objecttittle
String -''
w
Integer -0x1FFF0000
h
Integer -0x1FFF0000
x
Integer -0x1FFF0000
y
Integer -0x1FFF0000
background
Integer|Object|Array - rgb | { rgb, a } | { r, g, b, a } | [rgb, a] -0xFF0000
center
Boolean -false
show
Boolean -true
closable
Boolean -true
resizable
Boolean -true
minimized
Boolean -false
maximized
Boolean -false
borderless
Boolean -false
fullscreen
Boolean -false
kiosk
Boolean -false
hdpi
Boolean -true
mouseCapture
Boolean -false
grab
Boolean -false
win.close()
win.destroy()
win.restore()
win.center()
win.setModal(win)
win
[Circular]
win.render
[Getter]
Object
win.size
[Getter]
Array-like Object -{ w: 100, h: 200, "1": 100, "2": 200 }
[Setter]
Object|Array -{ w: 100, h: 200 }
|[ 100, 200 ]
win.bounds
[Getter/Setter]
[Array-like Object / Object|Array] - { x, y, w, h }
win.minimumSize
[Getter/Setter]
[Array-like Object / Object|Array] - { w, h }
win.maximumSize
[Getter/Setter]
[Array-like Object / Object|Array] - { w, h }
win.bordersSize
[Getter]
[Array-like Object / Object|Array] - { top, right, bottom, left }
win.id
[Getter]
Integer
win.focus
[Getter/Setter]
Boolean
win.grab
[Getter/Setter]
Boolean
win.show
[Getter/Setter]
Boolean
win.maximize
[Getter/Setter]
Boolean
win.minimize
[Getter/Setter]
Boolean
win.fullScreen
[Getter/Setter]
Boolean
win.resizable
[Getter]
Boolean
win.closable
[Getter/Setter]
Boolean
win.position
[Getter/Setter]
Boolean
win.title
[Getter/Setter]
String
win.background
[Getter/Setter]
Integer
win.bordered
[Setter]
Boolean
win.screenKeyboard
[Getter]
Boolean
- static
window.all
[Getter]
win
- static
window.focused
[Getter]
win
- static
window.mouseFocused
[Getter]
win
- static
window.keyboardFocused
[Getter]
win
- static
window.grabbed
[Getter]
win
- static
window.mouseFocused
[Getter]
win
- static
window.screenSaver
[Getter]
win
- static
window.fromID
[Getter]
win
- static
window.showMessageBox(opts, cb)
Events
win.on('change', (w, h) => {})
w
Integerh
Integer
win.on('close', (event) => {}
event
ObjectpreventDefault()
win.on('show', () => {})
win.on('hide', () => {})
win.on('move', (x, y) => {})
x
Integery
Integer
win.on('resize', (w, h) => {})
w
Integerh
Integer
win.on('minimize', () => {})
win.on('maximize', () => {})
win.on('restore', () => {})
win.on('enter', () => {})
win.on('leave', () => {})
win.on('focus', () => {})
win.on('blur', () => {})
win.on('keydown', (key) => {})
key
Objectscancode
Integerscanname
Stringkeycode
Integerkeyname
Stringrepeat
Boolean
win.on('keyup', (key) => {})
key
Objectscancode
Integerscanname
Stringkeycode
Integerkeyname
Stringrepeat
Boolean
win.on('editing', ({str, start, length}) => {})
str
Stringstart
Integerlength
Integer
win.on('textinput', (str) => {})
str
String
win.on('mousemove', (pos) => {})
pos
Objectx
Integery
Integerxrel
Integeryrel
Integer
win.on('mousedown', (mou) => {})
mou
Objectx
Integery
Integerclicks
Integerbutton
String
win.on('mouseup', (mou) => {})
mou
Objectx
Integery
Integerclicks
Integerbutton
String
win.on('mousewheel', (mou) => {})
mou
Objectx
Integery
Integerclicks
Integerbutton
String
clipboard
Get and set the clipboard text.
Methods
clipboard.text
[Getter/Setter]
String
clipboard.hasText
[Getter]
Boolean
Events
- Event 'update'
keyboard
Control the keyboard.
- Methods
keyboard.startTextInput()
keyboard.stopTextInput()
keyboard.setTextInput(rect)
rect
Object|Array - { x, y, w, h }
keyboard.hasTextInput
[Getter]
Boolean
keyboard.hasScreenKeyboard
[Getter]
Boolean
keyboard.state
[Getter]
Object
keyboard.mod
[Getter]
Object
mouse
Control the mouse and cursor.
- Methods
mouse.setCursor(id)
mouse.setCursor(image, hot_x, hot_y)
mouse.setCursor(data, mask, w, h, hot_x, hot_y)
mouse.capture
[Setter]
Boolean
mouse.relative
[Getter/Setter]
Boolean
mouse.show
[Getter/Setter]
Boolean
mouse.state
[Getter]
Objectwin
Objectx
Integery
Integer
global
Objectx
Integery
Integer
relative
Objectx
Integery
Integer
power
Moniter the power infomation of hardware
- Methods
power.info
[Getter]
Objectlife
Integerpercentage
Integerstate
String
font
Allow you drawing text into window's face. please
npm install sdl2-ttf
before use.
- Methods
let ft = new font(file, pixelsize, index)
file
Stringpixelsize
Integerindex
Integer
ft.style
[Geter/Setter]
String
ft.outline
[Geter/Setter]
Integer
ft.hinting
[Geter/Setter]
Integer
ft.kerning
[Geter/Setter]
Integer
ft.height
[Geter]
Integer
ft.ascent
[Geter]
Integer
ft.descent
[Geter]
Integer
ft.lineSkip
[Geter]
Integer
ft.solid(text, rgba)
text
Stringrgba
Integer|Object|Array - rgb | { rgb, a } | { r, g, b, a } | [rgb, a]
ft.shade(text, rgba, rgbaBG)
text
Stringrgba
Integer|Object|Array - rgb | { rgb, a } | { r, g, b, a } | [rgb, a]rgbaBG
Integer|Object|Array - rgb | { rgb, a } | { r, g, b, a } | [rgb, a]
ft.blend(text, rgba)
text
Stringrgba
Integer|Object|Array - rgb | { rgb, a } | { r, g, b, a } | [rgb, a]
ft.close()
ft.test(char)
char
String
ft.metrics(char)
char
String
ft.getSize(char)
char
String
- static
font.init()
- static
font.wasInit()
- static
font.quit()
image
Load image from file. please
npm install sdl2-image
before use.
Methods
let img = new image(file)
file
String
img.free()
img.texture(render)
- static
Image.init()
- static
Image.quit()