mirror of
https://github.com/scratchfoundation/bgfx.git
synced 2024-12-01 03:47:07 -05:00
Updated trace callback.
This commit is contained in:
parent
3cdf4beaa7
commit
cb6cee9dd1
5 changed files with 22 additions and 24 deletions
|
@ -136,9 +136,10 @@ struct BgfxCallback : public bgfx::CallbackI
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void trace(const char* _str) BX_OVERRIDE
|
virtual void traceVargs(const char* _filePath, uint16_t _line, const char* _format, va_list _argList) BX_OVERRIDE
|
||||||
{
|
{
|
||||||
dbgPrintf("%s", _str);
|
dbgPrintf("%s (%d): ", _filePath, _line);
|
||||||
|
dbgPrintfVargs(_format, _argList);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual uint32_t cacheReadSize(uint64_t _id) BX_OVERRIDE
|
virtual uint32_t cacheReadSize(uint64_t _id) BX_OVERRIDE
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
#ifndef BGFX_C99_H_HEADER_GUARD
|
#ifndef BGFX_C99_H_HEADER_GUARD
|
||||||
#define BGFX_C99_H_HEADER_GUARD
|
#define BGFX_C99_H_HEADER_GUARD
|
||||||
|
|
||||||
|
#include <stdarg.h> // va_list
|
||||||
#include <stdbool.h> // bool
|
#include <stdbool.h> // bool
|
||||||
#include <stdint.h> // uint32_t
|
#include <stdint.h> // uint32_t
|
||||||
#include <stdlib.h> // size_t
|
#include <stdlib.h> // size_t
|
||||||
|
@ -367,7 +368,7 @@ typedef struct bgfx_callback_interface
|
||||||
typedef struct bgfx_callback_vtbl
|
typedef struct bgfx_callback_vtbl
|
||||||
{
|
{
|
||||||
void (*fatal)(bgfx_callback_interface_t* _this, bgfx_fatal_t _code, const char* _str);
|
void (*fatal)(bgfx_callback_interface_t* _this, bgfx_fatal_t _code, const char* _str);
|
||||||
void (*trace)(bgfx_callback_interface_t* _this, const char* _str);
|
void (*trace_vargs)(bgfx_callback_interface_t* _this, const char* _filePath, uint16_t _line, const char* _format, va_list _argList);
|
||||||
uint32_t (*cache_read_size)(bgfx_callback_interface_t* _this, uint64_t _id);
|
uint32_t (*cache_read_size)(bgfx_callback_interface_t* _this, uint64_t _id);
|
||||||
bool (*cache_read)(bgfx_callback_interface_t* _this, uint64_t _id, void* _data, uint32_t _size);
|
bool (*cache_read)(bgfx_callback_interface_t* _this, uint64_t _id, void* _data, uint32_t _size);
|
||||||
void (*cache_write)(bgfx_callback_interface_t* _this, uint64_t _id, const void* _data, uint32_t _size);
|
void (*cache_write)(bgfx_callback_interface_t* _this, uint64_t _id, const void* _data, uint32_t _size);
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
#ifndef BGFX_H_HEADER_GUARD
|
#ifndef BGFX_H_HEADER_GUARD
|
||||||
#define BGFX_H_HEADER_GUARD
|
#define BGFX_H_HEADER_GUARD
|
||||||
|
|
||||||
|
#include <stdarg.h> // va_list
|
||||||
#include <stdint.h> // uint32_t
|
#include <stdint.h> // uint32_t
|
||||||
#include <stdlib.h> // size_t
|
#include <stdlib.h> // size_t
|
||||||
|
|
||||||
|
@ -275,14 +276,18 @@ namespace bgfx
|
||||||
|
|
||||||
/// Print debug message.
|
/// Print debug message.
|
||||||
///
|
///
|
||||||
/// @param[in] _str Message.
|
/// @param[in] _filePath File path where debug message was generated.
|
||||||
|
/// @param[in] _line Line where debug message was generated.
|
||||||
|
/// @param[in] _format `printf` style format.
|
||||||
|
/// @param[in] _argList Variable arguments list initialized with
|
||||||
|
/// `va_start`.
|
||||||
///
|
///
|
||||||
/// @remarks
|
/// @remarks
|
||||||
/// Not thread safe and it can be called from any thread.
|
/// Not thread safe and it can be called from any thread.
|
||||||
///
|
///
|
||||||
/// @attention C99 equivalent is `bgfx_callback_vtbl.trace`.
|
/// @attention C99 equivalent is `bgfx_callback_vtbl.trace_vargs`.
|
||||||
///
|
///
|
||||||
virtual void trace(const char* _str) = 0;
|
virtual void traceVargs(const char* _filePath, uint16_t _line, const char* _format, va_list _argList) = 0;
|
||||||
|
|
||||||
/// Return size of for cached item. Return 0 if no cached item was
|
/// Return size of for cached item. Return 0 if no cached item was
|
||||||
/// found.
|
/// found.
|
||||||
|
|
23
src/bgfx.cpp
23
src/bgfx.cpp
|
@ -40,9 +40,10 @@ namespace bgfx
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void trace(const char* _str) BX_OVERRIDE
|
virtual void traceVargs(const char* _filePath, uint16_t _line, const char* _format, va_list _argList) BX_OVERRIDE
|
||||||
{
|
{
|
||||||
bx::debugOutput(_str);
|
dbgPrintf("%s (%d): ", _filePath, _line);
|
||||||
|
dbgPrintfVargs(_format, _argList);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void fatal(Fatal::Enum _code, const char* _str) BX_OVERRIDE
|
virtual void fatal(Fatal::Enum _code, const char* _str) BX_OVERRIDE
|
||||||
|
@ -254,23 +255,13 @@ namespace bgfx
|
||||||
g_callback->fatal(_code, out);
|
g_callback->fatal(_code, out);
|
||||||
}
|
}
|
||||||
|
|
||||||
void trace(const char* _format, ...)
|
void trace(const char* _filePath, uint16_t _line, const char* _format, ...)
|
||||||
{
|
{
|
||||||
char temp[8192];
|
|
||||||
|
|
||||||
va_list argList;
|
va_list argList;
|
||||||
va_start(argList, _format);
|
va_start(argList, _format);
|
||||||
char* out = temp;
|
g_callback->traceVargs(_filePath, _line, _format, argList);
|
||||||
int32_t len = bx::vsnprintf(out, sizeof(temp), _format, argList);
|
|
||||||
if ( (int32_t)sizeof(temp) < len)
|
|
||||||
{
|
|
||||||
out = (char*)alloca(len+1);
|
|
||||||
len = bx::vsnprintf(out, len, _format, argList);
|
|
||||||
}
|
|
||||||
out[len] = '\0';
|
|
||||||
va_end(argList);
|
va_end(argList);
|
||||||
|
|
||||||
g_callback->trace(out);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#include "charset.h"
|
#include "charset.h"
|
||||||
|
@ -3106,9 +3097,9 @@ namespace bgfx
|
||||||
m_interface->vtbl->fatal(m_interface, (bgfx_fatal_t)_code, _str);
|
m_interface->vtbl->fatal(m_interface, (bgfx_fatal_t)_code, _str);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void trace(const char* _str) BX_OVERRIDE
|
virtual void traceVargs(const char* _filePath, uint16_t _line, const char* _format, va_list _argList) BX_OVERRIDE
|
||||||
{
|
{
|
||||||
m_interface->vtbl->trace(m_interface, _str);
|
m_interface->vtbl->trace_vargs(m_interface, _filePath, _line, _format, _argList);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual uint32_t cacheReadSize(uint64_t _id) BX_OVERRIDE
|
virtual uint32_t cacheReadSize(uint64_t _id) BX_OVERRIDE
|
||||||
|
|
|
@ -57,7 +57,7 @@ namespace bgfx
|
||||||
void fatal(Fatal::Enum _code, const char* _format, ...);
|
void fatal(Fatal::Enum _code, const char* _format, ...);
|
||||||
#endif // BX_COMPILER_CLANG_ANALYZER
|
#endif // BX_COMPILER_CLANG_ANALYZER
|
||||||
|
|
||||||
void trace(const char* _format, ...);
|
void trace(const char* _filePath, uint16_t _line, const char* _format, ...);
|
||||||
|
|
||||||
void dbgPrintfVargs(const char* _format, va_list _argList);
|
void dbgPrintfVargs(const char* _format, va_list _argList);
|
||||||
void dbgPrintf(const char* _format, ...);
|
void dbgPrintf(const char* _format, ...);
|
||||||
|
@ -65,7 +65,7 @@ namespace bgfx
|
||||||
|
|
||||||
#define _BX_TRACE(_format, ...) \
|
#define _BX_TRACE(_format, ...) \
|
||||||
BX_MACRO_BLOCK_BEGIN \
|
BX_MACRO_BLOCK_BEGIN \
|
||||||
bgfx::trace(BX_FILE_LINE_LITERAL "BGFX " _format "\n", ##__VA_ARGS__); \
|
bgfx::trace(__FILE__, uint16_t(__LINE__), "BGFX " _format "\n", ##__VA_ARGS__); \
|
||||||
BX_MACRO_BLOCK_END
|
BX_MACRO_BLOCK_END
|
||||||
|
|
||||||
#define _BX_WARN(_condition, _format, ...) \
|
#define _BX_WARN(_condition, _format, ...) \
|
||||||
|
|
Loading…
Reference in a new issue