Debug drawing and better build shortcut
parent
b967bc45ec
commit
3c3bf65c56
@ -0,0 +1,76 @@
|
||||
#include "sokol_gfx.h"
|
||||
#include "sokol_gp.h"
|
||||
#include "types.h"
|
||||
|
||||
#define MAX_COMMANDS 64
|
||||
|
||||
typedef struct Command
|
||||
{
|
||||
enum
|
||||
{
|
||||
rect,
|
||||
line
|
||||
} type;
|
||||
union
|
||||
{
|
||||
// rect
|
||||
V2 center;
|
||||
|
||||
// line
|
||||
struct
|
||||
{
|
||||
V2 from;
|
||||
V2 to;
|
||||
};
|
||||
};
|
||||
} Command;
|
||||
|
||||
// thread local variables so debug drawing in server thread
|
||||
// doesn't fuck up main thread
|
||||
static __declspec(thread) Command commands[MAX_COMMANDS] = {0};
|
||||
static __declspec(thread) int command_i = 0;
|
||||
|
||||
void dbg_drawall()
|
||||
{
|
||||
// return;
|
||||
sgp_set_color(0.4f, 0.8f, 0.2f, 0.8f);
|
||||
for (int i = 0; i < command_i; i++)
|
||||
{
|
||||
const float size = 0.05f;
|
||||
switch(commands[i].type)
|
||||
{
|
||||
case rect:
|
||||
V2 center = commands[i].center;
|
||||
V2 upper_left = V2add(center, (V2){.x = -size / 2.0f, .y = -size / 2.0f});
|
||||
sgp_draw_filled_rect(upper_left.x, upper_left.y, size, size);
|
||||
break;
|
||||
case line:
|
||||
V2 from = commands[i].from;
|
||||
V2 to = commands[i].to;
|
||||
sgp_draw_line(from.x, from.y, to.x, to.y);
|
||||
break;
|
||||
}
|
||||
}
|
||||
command_i = 0;
|
||||
}
|
||||
|
||||
void dbg_line(V2 from, V2 to)
|
||||
{
|
||||
commands[command_i] = (Command){
|
||||
.type = line,
|
||||
.from = from,
|
||||
.to = to,
|
||||
};
|
||||
command_i++;
|
||||
command_i %= MAX_COMMANDS;
|
||||
}
|
||||
|
||||
void dbg_rect(V2 center)
|
||||
{
|
||||
commands[command_i] = (Command){
|
||||
.type = rect,
|
||||
.center = center,
|
||||
};
|
||||
command_i++;
|
||||
command_i %= MAX_COMMANDS;
|
||||
}
|
Loading…
Reference in New Issue