1
0
mirror of https://github.com/XProger/OpenLara.git synced 2025-08-13 08:34:32 +02:00

Merge pull request #74 from hexdoll/linux-debug

Linux _DEBUG mode
This commit is contained in:
Timur Gagiev
2017-06-02 07:25:41 +03:00
committed by GitHub
2 changed files with 38 additions and 12 deletions

View File

@@ -11,15 +11,36 @@ namespace Debug {
static GLuint font;
void init() {
font = glGenLists(256);
HDC hdc = GetDC(0);
HFONT hfont = CreateFontA(-MulDiv(10, GetDeviceCaps(hdc, LOGPIXELSY), 72), 0,
0, 0, FW_BOLD, 0, 0, 0,
ANSI_CHARSET, OUT_TT_PRECIS, CLIP_DEFAULT_PRECIS,
ANTIALIASED_QUALITY, DEFAULT_PITCH, "Courier New");
SelectObject(hdc, hfont);
wglUseFontBitmaps(hdc, 0, 256, font);
DeleteObject(hfont);
#ifdef WIN32
font = glGenLists(256);
HDC hdc = GetDC(0);
HFONT hfont = CreateFontA(-MulDiv(10, GetDeviceCaps(hdc, LOGPIXELSY), 72), 0,
0, 0, FW_BOLD, 0, 0, 0,
ANSI_CHARSET, OUT_TT_PRECIS, CLIP_DEFAULT_PRECIS,
ANTIALIASED_QUALITY, DEFAULT_PITCH, "Courier New");
SelectObject(hdc, hfont);
wglUseFontBitmaps(hdc, 0, 256, font);
DeleteObject(hfont);
#elif LINUX
XFontStruct *fontInfo;
Font id;
unsigned int first, last;
fontInfo = XLoadQueryFont(glXGetCurrentDisplay(), "-adobe-times-medium-r-normal--17-120-100-100-p-88-iso8859-1");
if (fontInfo == NULL) {
LOG("no font found\n");
}
id = fontInfo->fid;
first = fontInfo->min_char_or_byte2;
last = fontInfo->max_char_or_byte2;
font = glGenLists(last + 1);
if (font == 0) {
LOG("out of display lists\n");
}
glXUseXFont(id, first, last - first + 1, font + first);
#endif
}
void free() {
@@ -557,10 +578,10 @@ namespace Debug {
uint32 data;
uint32 dataSize;
} header = {
FOURCC("RIFF"), sizeof(Header) - 8 + dataSize,
FOURCC("RIFF"), (uint32) sizeof(Header) - 8 + dataSize,
FOURCC("WAVE"), FOURCC("fmt "), 16,
{ 1, 1, 44100, 44100 * 16 / 8, 0, 16 },
FOURCC("data"), dataSize
FOURCC("data"), (uint32) dataSize
};
fwrite(&header, sizeof(header), 1, f);

View File

@@ -7,7 +7,12 @@
#include <float.h>
#ifdef _DEBUG
#define debugBreak() _asm { int 3 }
#ifdef LINUX
#define debugBreak() raise(SIGTRAP);
#else
#define debugBreak() _asm { int 3 }
#endif
#define ASSERT(expr) if (expr) {} else { LOG("ASSERT %s in %s:%d\n", #expr, __FILE__, __LINE__); debugBreak(); }
#ifndef ANDROID