93 lines
4.9 KiB
C++
93 lines
4.9 KiB
C++
#include "jdebug.h"
|
|
#include <stdio.h>
|
|
|
|
namespace debug
|
|
{
|
|
Uint8 bmp[448] {0x42, 0x4D, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x01, 0x00, 0x00, 0x12, 0x0B, 0x00, 0x00, 0x12, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x18, 0xF3, 0x83, 0x83, 0xCF, 0x83, 0x87, 0x00, 0x00, 0xF3, 0x39, 0x39, 0xCF, 0x79, 0xF3, 0x00, 0x00, 0x01, 0xF9, 0x39, 0xCF, 0x61, 0xF9, 0x00, 0x00, 0x33, 0xF9, 0x03, 0xE7, 0x87, 0x81, 0x00, 0x00, 0x93, 0x03, 0x3F, 0xF3, 0x1B, 0x39, 0x00, 0x00, 0xC3, 0x3F, 0x9F, 0x39, 0x3B, 0x39, 0x00, 0x41, 0xE3, 0x03, 0xC3, 0x01, 0x87, 0x83, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xE7, 0x01, 0xC7, 0x81, 0x01, 0x83, 0x00, 0x00, 0xE7, 0x1F, 0x9B, 0xE7, 0x1F, 0x39, 0x00, 0x00, 0xE7, 0x8F, 0x39, 0xE7, 0x87, 0xF9, 0x00, 0x00, 0xC3, 0xC7, 0x39, 0xE7, 0xC3, 0xC3, 0x00, 0x00, 0x99, 0xE3, 0x39, 0xE7, 0xF1, 0xE7, 0x00, 0x00, 0x99, 0xF1, 0xB3, 0xC7, 0x39, 0xF3, 0x00, 0x00, 0x99, 0x01, 0xC7, 0xE7, 0x83, 0x81, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x83, 0xE7, 0x83, 0xEF, 0x39, 0x39, 0x00, 0x00, 0x39, 0xE7, 0x39, 0xC7, 0x11, 0x11, 0x00, 0x00, 0xF9, 0xE7, 0x39, 0x83, 0x01, 0x83, 0x00, 0x00, 0x83, 0xE7, 0x39, 0x11, 0x01, 0xC7, 0x00, 0x00, 0x3F, 0xE7, 0x39, 0x39, 0x29, 0x83, 0x00, 0x00, 0x33, 0xE7, 0x39, 0x39, 0x39, 0x11, 0x00, 0x00, 0x87, 0x81, 0x39, 0x39, 0x39, 0x39, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x39, 0x39, 0x83, 0x3F, 0x85, 0x31, 0x00, 0x00, 0x39, 0x31, 0x39, 0x3F, 0x33, 0x23, 0x00, 0x00, 0x29, 0x21, 0x39, 0x03, 0x21, 0x07, 0x00, 0x00, 0x01, 0x01, 0x39, 0x39, 0x39, 0x31, 0x00, 0x00, 0x01, 0x09, 0x39, 0x39, 0x39, 0x39, 0x00, 0x00, 0x11, 0x19, 0x39, 0x39, 0x39, 0x39, 0x00, 0x00, 0x39, 0x39, 0x83, 0x03, 0x83, 0x03, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xC1, 0x39, 0x81, 0x83, 0x31, 0x01, 0x00, 0x00, 0x99, 0x39, 0xE7, 0x39, 0x23, 0x3F, 0x00, 0x00, 0x39, 0x39, 0xE7, 0xF9, 0x07, 0x3F, 0x00, 0x00, 0x31, 0x01, 0xE7, 0xF9, 0x0F, 0x3F, 0x00, 0x00, 0x3F, 0x39, 0xE7, 0xF9, 0x27, 0x3F, 0x00, 0x00, 0x9F, 0x39, 0xE7, 0xF9, 0x33, 0x3F, 0x00, 0x00, 0xC1, 0x39, 0x81, 0xF9, 0x39, 0x3F, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x39, 0x03, 0xC3, 0x07, 0x01, 0x3F, 0x00, 0x00, 0x39, 0x39, 0x99, 0x33, 0x3F, 0x3F, 0x00, 0x00, 0x01, 0x39, 0x3F, 0x39, 0x3F, 0x3F, 0x00, 0x00, 0x39, 0x03, 0x3F, 0x39, 0x03, 0x03, 0x00, 0x00, 0x39, 0x39, 0x3F, 0x39, 0x3F, 0x3F, 0x00, 0x00, 0x93, 0x39, 0x99, 0x33, 0x3F, 0x3F, 0x00, 0x00, 0xC7, 0x03, 0xC3, 0x07, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00};
|
|
SDL_Texture* dbgtex;
|
|
static char dbg_str[1200];
|
|
static char *cursor = nullptr;
|
|
|
|
void init(SDL_Renderer *renderer)
|
|
{
|
|
dbgtex = SDL_CreateTextureFromSurface(renderer, SDL_LoadBMP_IO(SDL_IOFromMem(bmp, 448), 1));
|
|
cursor = dbg_str;
|
|
SDL_SetTextureBlendMode(dbgtex, SDL_BLENDMODE_ADD);
|
|
}
|
|
|
|
void render(SDL_Renderer *renderer)
|
|
{
|
|
int x = 0, y = 0, cc = 0;
|
|
SDL_FRect src {0, 0, 8, 8}, dst {0, 0, 8, 8};
|
|
while (cc<1200 && dbg_str[cc] != 0) {
|
|
char chr = dbg_str[cc++];
|
|
if (chr > 96) chr -= 32;
|
|
if (chr==46) chr = 32;
|
|
if (chr > 32) {
|
|
if (chr >= 65) {
|
|
src.x = ((chr-65)%6)*8;
|
|
src.y = ((chr-65)/6)*8;
|
|
} else if (chr < 65) {
|
|
src.x = ((chr-22)%6)*8;
|
|
src.y = ((chr-22)/6)*8;
|
|
}
|
|
SDL_RenderTexture(renderer, dbgtex, &src, &dst);
|
|
dst.x += 8;
|
|
if (dst.x >= 320) {
|
|
dst.x=0; dst.y += 8;
|
|
if (dst.y >= 240) cc = 2000;
|
|
}
|
|
} else if (chr==32) {
|
|
dst.x += 8;
|
|
if (dst.x >= 320) {
|
|
dst.x=0; dst.y += 8;
|
|
if (dst.y >= 240) cc = 2000;
|
|
}
|
|
} else if (chr==10 || chr==13) {
|
|
dst.x=0; dst.y += 8;
|
|
if (dst.y >= 240) cc = 2000;
|
|
}
|
|
}
|
|
cursor = dbg_str; *cursor=0;
|
|
}
|
|
|
|
void println(const char *label, int value)
|
|
{
|
|
print(label);
|
|
print(" ");
|
|
print(value);
|
|
newline();
|
|
}
|
|
|
|
void print(int value)
|
|
{
|
|
char temp[20];
|
|
SDL_itoa(value, temp, 10);
|
|
const int len = strlen(temp);
|
|
strcpy(cursor, temp);
|
|
cursor+=len;
|
|
}
|
|
|
|
void print(const char *value)
|
|
{
|
|
const int len = strlen(value);
|
|
strcpy(cursor, value);
|
|
cursor+=len;
|
|
}
|
|
|
|
void print(float value)
|
|
{
|
|
char temp[20];
|
|
sprintf(temp, "%f", value);
|
|
const int len = strlen(temp);
|
|
strcpy(cursor, temp);
|
|
cursor+=len;
|
|
}
|
|
|
|
void newline()
|
|
{
|
|
*(cursor++) = '\n';
|
|
*cursor = '\0';
|
|
}
|
|
}
|