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)
|
||||
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)
|
||||
}
|
||||
|
||||
// Log message types
|
||||
type TraceLogLevel int
|
||||
|
||||
// Trace log level
|
||||
// NOTE: Organized by priority level
|
||||
const (
|
||||
LogAll = iota
|
||||
// Display all logs
|
||||
LogAll TraceLogLevel = iota
|
||||
// Trace logging, intended for internal use only
|
||||
LogTrace
|
||||
// Debug logging, used for internal debugging, it should be disabled on release builds
|
||||
LogDebug
|
||||
// Info logging, used for program execution info
|
||||
LogInfo
|
||||
// Warning logging, used on recoverable failures
|
||||
LogWarning
|
||||
// Error logging, used on unrecoverable failures
|
||||
LogError
|
||||
// Fatal logging, used to abort program: exit(EXIT_FAILURE)
|
||||
LogFatal
|
||||
// Disable logging
|
||||
LogNone
|
||||
)
|
||||
|
||||
var logTypeFlags byte = LogInfo | LogWarning | LogError
|
||||
|
|
|
@ -1,49 +1,43 @@
|
|||
//go:build !android && !windows
|
||||
// +build !android,!windows
|
||||
//go:build !android
|
||||
// +build !android
|
||||
|
||||
package rl
|
||||
|
||||
/*
|
||||
#include "stdlib.h"
|
||||
#include "raylib.h"
|
||||
void TraceLogWrapper(int logLevel, const char *text)
|
||||
{
|
||||
TraceLog(logLevel, text);
|
||||
}
|
||||
*/
|
||||
import "C"
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
// SetTraceLog - Enable trace log message types
|
||||
func SetTraceLog(typeFlags byte) {
|
||||
logTypeFlags = typeFlags
|
||||
|
||||
ctypeFlags := (C.int)(typeFlags)
|
||||
C.SetTraceLogLevel(ctypeFlags)
|
||||
// Set the current threshold (minimum) log level
|
||||
func SetTraceLog(logLevel TraceLogLevel) {
|
||||
clogLevel := (C.int)(logLevel)
|
||||
C.SetTraceLogLevel(clogLevel)
|
||||
}
|
||||
|
||||
// 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...)
|
||||
}
|
||||
}
|
||||
// Show trace log messages (LOG_DEBUG, LOG_INFO, LOG_WARNING, LOG_ERROR...)
|
||||
func TraceLog(logLevel TraceLogLevel, text string, v ...interface{}) {
|
||||
ctext := C.CString(fmt.Sprintf(text, v...))
|
||||
defer C.free(unsafe.Pointer(ctext))
|
||||
clogLevel := (C.int)(logLevel)
|
||||
C.TraceLogWrapper(clogLevel, ctext)
|
||||
}
|
||||
|
||||
// HomeDir - Returns user home directory
|
||||
func HomeDir() string {
|
||||
return os.Getenv("HOME")
|
||||
// NOTE: On Android this returns internal data path and must be called after InitWindow
|
||||
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
|
||||
|
||||
/*
|
||||
#include "stdlib.h"
|
||||
#include "raylib.h"
|
||||
#include <stdlib.h>
|
||||
|
||||
void log_info(const char *msg);
|
||||
void log_warn(const char *msg);
|
||||
void log_error(const char *msg);
|
||||
void log_debug(const char *msg);
|
||||
|
||||
extern char* get_internal_storage_path();
|
||||
void TraceLogWrapper(int logLevel, const char *text)
|
||||
{
|
||||
TraceLog(logLevel, text);
|
||||
}
|
||||
*/
|
||||
import "C"
|
||||
|
||||
|
@ -21,46 +18,22 @@ import (
|
|||
"unsafe"
|
||||
)
|
||||
|
||||
// SetTraceLog - Enable trace log message types (bit flags based)
|
||||
func SetTraceLog(typeFlags byte) {
|
||||
logTypeFlags = typeFlags
|
||||
|
||||
ctypeFlags := (C.int)(typeFlags)
|
||||
C.SetTraceLogLevel(ctypeFlags)
|
||||
// Set the current threshold (minimum) log level
|
||||
func SetTraceLog(logLevel TraceLogLevel) {
|
||||
clogLevel := (C.int)(logLevel)
|
||||
C.SetTraceLogLevel(clogLevel)
|
||||
}
|
||||
|
||||
// TraceLog - Trace log messages showing (INFO, WARNING, ERROR, DEBUG)
|
||||
func TraceLog(msgType int, text string, v ...interface{}) {
|
||||
switch msgType {
|
||||
case LogInfo:
|
||||
if logTypeFlags&LogInfo != 0 {
|
||||
msg := C.CString(fmt.Sprintf("INFO: "+text, v...))
|
||||
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)
|
||||
}
|
||||
}
|
||||
// Show trace log messages (LOG_DEBUG, LOG_INFO, LOG_WARNING, LOG_ERROR...)
|
||||
func TraceLog(logLevel TraceLogLevel, text string, v ...interface{}) {
|
||||
ctext := C.CString(fmt.Sprintf(text, v...))
|
||||
defer C.free(unsafe.Pointer(ctext))
|
||||
clogLevel := (C.int)(logLevel)
|
||||
C.TraceLogWrapper(clogLevel, ctext)
|
||||
}
|
||||
|
||||
// HomeDir - Returns user home directory
|
||||
// NOTE: On Android this returns internal data path and must be called after InitWindow
|
||||
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