Merge pull request #208 from JupiterRider/master
Cleanup utils - especially logging
This commit is contained in:
commit
93f4babf10
6 changed files with 57 additions and 154 deletions
|
@ -131,3 +131,7 @@ func (a *asset) Close() error {
|
||||||
C.AAsset_close(a.ptr)
|
C.AAsset_close(a.ptr)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getInternalStoragePath() string {
|
||||||
|
return C.GoString(C.internal_storage_path)
|
||||||
|
}
|
||||||
|
|
|
@ -1195,16 +1195,25 @@ func newRenderTexture2DFromPointer(ptr unsafe.Pointer) RenderTexture2D {
|
||||||
return *(*RenderTexture2D)(ptr)
|
return *(*RenderTexture2D)(ptr)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Log message types
|
type TraceLogLevel int
|
||||||
|
|
||||||
|
// Trace log level
|
||||||
|
// NOTE: Organized by priority level
|
||||||
const (
|
const (
|
||||||
LogAll = iota
|
// Display all logs
|
||||||
|
LogAll TraceLogLevel = iota
|
||||||
|
// Trace logging, intended for internal use only
|
||||||
LogTrace
|
LogTrace
|
||||||
|
// Debug logging, used for internal debugging, it should be disabled on release builds
|
||||||
LogDebug
|
LogDebug
|
||||||
|
// Info logging, used for program execution info
|
||||||
LogInfo
|
LogInfo
|
||||||
|
// Warning logging, used on recoverable failures
|
||||||
LogWarning
|
LogWarning
|
||||||
|
// Error logging, used on unrecoverable failures
|
||||||
LogError
|
LogError
|
||||||
|
// Fatal logging, used to abort program: exit(EXIT_FAILURE)
|
||||||
LogFatal
|
LogFatal
|
||||||
|
// Disable logging
|
||||||
LogNone
|
LogNone
|
||||||
)
|
)
|
||||||
|
|
||||||
var logTypeFlags byte = LogInfo | LogWarning | LogError
|
|
||||||
|
|
|
@ -1,49 +1,43 @@
|
||||||
//go:build !android && !windows
|
//go:build !android
|
||||||
// +build !android,!windows
|
// +build !android
|
||||||
|
|
||||||
package rl
|
package rl
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
#include "stdlib.h"
|
||||||
#include "raylib.h"
|
#include "raylib.h"
|
||||||
|
void TraceLogWrapper(int logLevel, const char *text)
|
||||||
|
{
|
||||||
|
TraceLog(logLevel, text);
|
||||||
|
}
|
||||||
*/
|
*/
|
||||||
import "C"
|
import "C"
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
"unsafe"
|
||||||
)
|
)
|
||||||
|
|
||||||
// SetTraceLog - Enable trace log message types
|
// Set the current threshold (minimum) log level
|
||||||
func SetTraceLog(typeFlags byte) {
|
func SetTraceLog(logLevel TraceLogLevel) {
|
||||||
logTypeFlags = typeFlags
|
clogLevel := (C.int)(logLevel)
|
||||||
|
C.SetTraceLogLevel(clogLevel)
|
||||||
ctypeFlags := (C.int)(typeFlags)
|
|
||||||
C.SetTraceLogLevel(ctypeFlags)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// TraceLog - Show trace log messages (INFO, WARNING, ERROR, DEBUG)
|
// Show trace log messages (LOG_DEBUG, LOG_INFO, LOG_WARNING, LOG_ERROR...)
|
||||||
func TraceLog(msgType int, text string, v ...interface{}) {
|
func TraceLog(logLevel TraceLogLevel, text string, v ...interface{}) {
|
||||||
switch msgType {
|
ctext := C.CString(fmt.Sprintf(text, v...))
|
||||||
case LogInfo:
|
defer C.free(unsafe.Pointer(ctext))
|
||||||
if logTypeFlags&LogInfo != 0 {
|
clogLevel := (C.int)(logLevel)
|
||||||
fmt.Printf("INFO: "+text+"\n", v...)
|
C.TraceLogWrapper(clogLevel, ctext)
|
||||||
}
|
|
||||||
case LogWarning:
|
|
||||||
if logTypeFlags&LogWarning != 0 {
|
|
||||||
fmt.Printf("WARNING: "+text+"\n", v...)
|
|
||||||
}
|
|
||||||
case LogError:
|
|
||||||
if logTypeFlags&LogError != 0 {
|
|
||||||
fmt.Printf("ERROR: "+text+"\n", v...)
|
|
||||||
}
|
|
||||||
case LogDebug:
|
|
||||||
if logTypeFlags&LogDebug != 0 {
|
|
||||||
fmt.Printf("DEBUG: "+text+"\n", v...)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// HomeDir - Returns user home directory
|
// HomeDir - Returns user home directory
|
||||||
func HomeDir() string {
|
// NOTE: On Android this returns internal data path and must be called after InitWindow
|
||||||
return os.Getenv("HOME")
|
func HomeDir() string {
|
||||||
|
if homeDir, err := os.UserHomeDir(); err != nil {
|
||||||
|
return homeDir
|
||||||
|
}
|
||||||
|
return ""
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,24 +0,0 @@
|
||||||
// +build android
|
|
||||||
|
|
||||||
#include "_cgo_export.h"
|
|
||||||
#include <android/log.h>
|
|
||||||
|
|
||||||
void log_info(const char *msg) {
|
|
||||||
__android_log_print(ANDROID_LOG_INFO, "raylib", "%s\n", msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
void log_warn(const char *msg) {
|
|
||||||
__android_log_print(ANDROID_LOG_WARN, "raylib", "%s\n", msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
void log_error(const char *msg) {
|
|
||||||
__android_log_print(ANDROID_LOG_ERROR, "raylib", "%s\n", msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
void log_debug(const char *msg) {
|
|
||||||
__android_log_print(ANDROID_LOG_DEBUG, "raylib", "%s\n", msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
const char* get_internal_storage_path() {
|
|
||||||
return internal_storage_path;
|
|
||||||
}
|
|
|
@ -4,15 +4,12 @@
|
||||||
package rl
|
package rl
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
#include "stdlib.h"
|
||||||
#include "raylib.h"
|
#include "raylib.h"
|
||||||
#include <stdlib.h>
|
void TraceLogWrapper(int logLevel, const char *text)
|
||||||
|
{
|
||||||
void log_info(const char *msg);
|
TraceLog(logLevel, text);
|
||||||
void log_warn(const char *msg);
|
}
|
||||||
void log_error(const char *msg);
|
|
||||||
void log_debug(const char *msg);
|
|
||||||
|
|
||||||
extern char* get_internal_storage_path();
|
|
||||||
*/
|
*/
|
||||||
import "C"
|
import "C"
|
||||||
|
|
||||||
|
@ -21,46 +18,22 @@ import (
|
||||||
"unsafe"
|
"unsafe"
|
||||||
)
|
)
|
||||||
|
|
||||||
// SetTraceLog - Enable trace log message types (bit flags based)
|
// Set the current threshold (minimum) log level
|
||||||
func SetTraceLog(typeFlags byte) {
|
func SetTraceLog(logLevel TraceLogLevel) {
|
||||||
logTypeFlags = typeFlags
|
clogLevel := (C.int)(logLevel)
|
||||||
|
C.SetTraceLogLevel(clogLevel)
|
||||||
ctypeFlags := (C.int)(typeFlags)
|
|
||||||
C.SetTraceLogLevel(ctypeFlags)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// TraceLog - Trace log messages showing (INFO, WARNING, ERROR, DEBUG)
|
// Show trace log messages (LOG_DEBUG, LOG_INFO, LOG_WARNING, LOG_ERROR...)
|
||||||
func TraceLog(msgType int, text string, v ...interface{}) {
|
func TraceLog(logLevel TraceLogLevel, text string, v ...interface{}) {
|
||||||
switch msgType {
|
ctext := C.CString(fmt.Sprintf(text, v...))
|
||||||
case LogInfo:
|
defer C.free(unsafe.Pointer(ctext))
|
||||||
if logTypeFlags&LogInfo != 0 {
|
clogLevel := (C.int)(logLevel)
|
||||||
msg := C.CString(fmt.Sprintf("INFO: "+text, v...))
|
C.TraceLogWrapper(clogLevel, ctext)
|
||||||
defer C.free(unsafe.Pointer(msg))
|
|
||||||
C.log_info(msg)
|
|
||||||
}
|
|
||||||
case LogWarning:
|
|
||||||
if logTypeFlags&LogWarning != 0 {
|
|
||||||
msg := C.CString(fmt.Sprintf("WARNING: "+text, v...))
|
|
||||||
defer C.free(unsafe.Pointer(msg))
|
|
||||||
C.log_warn(msg)
|
|
||||||
}
|
|
||||||
case LogError:
|
|
||||||
if logTypeFlags&LogError != 0 {
|
|
||||||
msg := C.CString(fmt.Sprintf("ERROR: "+text, v...))
|
|
||||||
defer C.free(unsafe.Pointer(msg))
|
|
||||||
C.log_error(msg)
|
|
||||||
}
|
|
||||||
case LogDebug:
|
|
||||||
if logTypeFlags&LogDebug != 0 {
|
|
||||||
msg := C.CString(fmt.Sprintf("DEBUG: "+text, v...))
|
|
||||||
defer C.free(unsafe.Pointer(msg))
|
|
||||||
C.log_debug(msg)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// HomeDir - Returns user home directory
|
// HomeDir - Returns user home directory
|
||||||
// NOTE: On Android this returns internal data path and must be called after InitWindow
|
// NOTE: On Android this returns internal data path and must be called after InitWindow
|
||||||
func HomeDir() string {
|
func HomeDir() string {
|
||||||
return C.GoString(C.get_internal_storage_path())
|
return getInternalStoragePath()
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,53 +0,0 @@
|
||||||
//go:build windows
|
|
||||||
// +build windows
|
|
||||||
|
|
||||||
package rl
|
|
||||||
|
|
||||||
/*
|
|
||||||
#include "raylib.h"
|
|
||||||
*/
|
|
||||||
import "C"
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"os"
|
|
||||||
)
|
|
||||||
|
|
||||||
// SetTraceLog - Enable trace log message types (bit flags based)
|
|
||||||
func SetTraceLog(typeFlags byte) {
|
|
||||||
logTypeFlags = typeFlags
|
|
||||||
|
|
||||||
ctypeFlags := (C.int)(typeFlags)
|
|
||||||
C.SetTraceLogLevel(ctypeFlags)
|
|
||||||
}
|
|
||||||
|
|
||||||
// TraceLog - Show trace log messages (INFO, WARNING, ERROR, DEBUG)
|
|
||||||
func TraceLog(msgType int, text string, v ...interface{}) {
|
|
||||||
switch msgType {
|
|
||||||
case LogInfo:
|
|
||||||
if logTypeFlags&LogInfo != 0 {
|
|
||||||
fmt.Printf("INFO: "+text+"\n", v...)
|
|
||||||
}
|
|
||||||
case LogWarning:
|
|
||||||
if logTypeFlags&LogWarning != 0 {
|
|
||||||
fmt.Printf("WARNING: "+text+"\n", v...)
|
|
||||||
}
|
|
||||||
case LogError:
|
|
||||||
if logTypeFlags&LogError != 0 {
|
|
||||||
fmt.Printf("ERROR: "+text+"\n", v...)
|
|
||||||
}
|
|
||||||
case LogDebug:
|
|
||||||
if logTypeFlags&LogDebug != 0 {
|
|
||||||
fmt.Printf("DEBUG: "+text+"\n", v...)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// HomeDir - Returns user home directory
|
|
||||||
func HomeDir() string {
|
|
||||||
home := os.Getenv("HOMEDRIVE") + os.Getenv("HOMEPATH")
|
|
||||||
if home == "" {
|
|
||||||
home = os.Getenv("USERPROFILE")
|
|
||||||
}
|
|
||||||
return home
|
|
||||||
}
|
|
Loading…
Add table
Add a link
Reference in a new issue