-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathutil_win_sdl.go
80 lines (70 loc) · 3.18 KB
/
util_win_sdl.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
//go:build win && sdl && !ray
// +build win,sdl,!ray
package main
import (
"database/sql"
"net"
"os"
"github.com/veandco/go-sdl2/mix"
"github.com/veandco/go-sdl2/sdl"
"github.com/veandco/go-sdl2/ttf"
"runtime"
"syscall"
"unsafe"
)
type GlobalSettingsObject struct {
webObject WebObject
globalVariableArray *[]Variable
globalFunctionArray *[]Function
globalNativeVarList *[]string
mySQLResults map[string]map[string][]string //NOTE: TEMPORARY ONLY
sQLiteSettings map[string]map[string]string
sQLiteResults map[string]map[string][]string
netConnection map[string]net.Conn
netConnectionListener map[string]net.Listener
netUDPConnectionListener map[string]*net.UDPConn
mySQLConnection map[string]*sql.DB
fileHandler map[string]*os.File
sdlWindow map[string]*sdl.Window
sdlSurface map[string]*sdl.Surface
sdlRect map[string]sdl.Rect
sdlEvent map[string]sdl.Event
sdlFont map[string]*ttf.Font
sdlMusic map[string]*mix.Music
sdlChunk map[string]*mix.Chunk
sdlRenderer map[string]*sdl.Renderer
sdlTexture map[string]*sdl.Texture
consoleInfo CONSOLE_SCREEN_BUFFER_INFO //for windows only
}
func (globalSettings *GlobalSettingsObject) Init(globalVariableArray *[]Variable, globalFunctionArray *[]Function, globalNativeVarList *[]string) {
globalSettings.globalVariableArray = globalVariableArray
globalSettings.globalFunctionArray = globalFunctionArray
globalSettings.globalNativeVarList = globalNativeVarList
globalSettings.webObject = WebObject{}
globalSettings.webObject.Init(globalSettings)
globalSettings.mySQLResults = make(map[string]map[string][]string) //TODO: NEED WAY TO CLEAN THIS UP //MAYBE END OF FUNCTION CALLS?
globalSettings.sQLiteSettings = make(map[string]map[string]string)
globalSettings.sQLiteResults = make(map[string]map[string][]string)
globalSettings.netConnection = make(map[string]net.Conn)
globalSettings.netConnectionListener = make(map[string]net.Listener)
globalSettings.netUDPConnectionListener = make(map[string]*net.UDPConn)
globalSettings.mySQLConnection = make(map[string]*sql.DB)
globalSettings.fileHandler = make(map[string]*os.File)
globalSettings.sdlWindow = make(map[string]*sdl.Window)
globalSettings.sdlSurface = make(map[string]*sdl.Surface)
globalSettings.sdlRect = make(map[string]sdl.Rect)
globalSettings.sdlEvent = make(map[string]sdl.Event)
globalSettings.sdlFont = make(map[string]*ttf.Font)
globalSettings.sdlMusic = make(map[string]*mix.Music)
globalSettings.sdlChunk = make(map[string]*mix.Chunk)
globalSettings.sdlRenderer = make(map[string]*sdl.Renderer)
globalSettings.sdlTexture = make(map[string]*sdl.Texture)
if runtime.GOOS == "windows" {
//get console handle
//for windows
kernel32 := syscall.NewLazyDLL("kernel32.dll")
getConsoleScreenBufferInfoProc := kernel32.NewProc("GetConsoleScreenBufferInfo")
handle, _ := syscall.GetStdHandle(syscall.STD_OUTPUT_HANDLE)
_, _, _ = getConsoleScreenBufferInfoProc.Call(uintptr(handle), uintptr(unsafe.Pointer(&globalSettings.consoleInfo)), 0)
}
}