upstream changes
parent
69b7782b2e
commit
cb37e1e9f4
|
@ -520,7 +520,7 @@ int audio_queue( const void *samples, int num_samples, int flags ) {
|
||||||
if( audio_queue_voice < 0 ) return 0;
|
if( audio_queue_voice < 0 ) return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
audio_queue_t *aq = MALLOC(sizeof(audio_queue_t) + bytes << (channels == 1)); // dupe space if going to be converted from mono to stereo
|
audio_queue_t *aq = MALLOC(sizeof(audio_queue_t) + (bytes << (channels == 1))); // dupe space if going to be converted from mono to stereo
|
||||||
aq->cursor = 0;
|
aq->cursor = 0;
|
||||||
aq->avail = bytes;
|
aq->avail = bytes;
|
||||||
aq->flags = flags;
|
aq->flags = flags;
|
||||||
|
|
|
@ -19,6 +19,9 @@ void (profile_render)() {
|
||||||
|
|
||||||
if( has_menu ? ui_window("Profiler", 0) : ui_panel("Profiler", 0) ) {
|
if( has_menu ? ui_window("Profiler", 0) : ui_panel("Profiler", 0) ) {
|
||||||
|
|
||||||
|
double fps = window_fps();
|
||||||
|
profile_setstat("Render.num_fps", fps);
|
||||||
|
|
||||||
if(1) { // @todo: ui_plot()
|
if(1) { // @todo: ui_plot()
|
||||||
// draw fps-meter: 300 samples, [0..70] range each, 70px height plot.
|
// draw fps-meter: 300 samples, [0..70] range each, 70px height plot.
|
||||||
nk_layout_row_dynamic(ui_ctx, 70, 1);
|
nk_layout_row_dynamic(ui_ctx, 70, 1);
|
||||||
|
@ -26,7 +29,7 @@ void (profile_render)() {
|
||||||
enum { COUNT = 300 };
|
enum { COUNT = 300 };
|
||||||
|
|
||||||
static float values[COUNT] = {0}; static int offset = 0;
|
static float values[COUNT] = {0}; static int offset = 0;
|
||||||
values[offset=(offset+1)%COUNT] = window_fps();
|
values[offset=(offset+1)%COUNT] = fps;
|
||||||
|
|
||||||
int index = -1;
|
int index = -1;
|
||||||
if( nk_chart_begin(ui_ctx, NK_CHART_LINES, COUNT, 0.f, 70.f) ) {
|
if( nk_chart_begin(ui_ctx, NK_CHART_LINES, COUNT, 0.f, 70.f) ) {
|
||||||
|
|
|
@ -2359,6 +2359,21 @@ mesh_t mesh() {
|
||||||
return z;
|
return z;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
aabb mesh_bounds(mesh_t *m) {
|
||||||
|
aabb b = {{1e9,1e9,1e9},{-1e9,-1e9,-1e9}};
|
||||||
|
for( int i = 0; i < array_count(m->in_vertex3); ++i ) {
|
||||||
|
if( m->in_vertex3[i].x < b.min.x ) b.min.x = m->in_vertex3[i].x;
|
||||||
|
if( m->in_vertex3[i].x > b.max.x ) b.max.x = m->in_vertex3[i].x;
|
||||||
|
|
||||||
|
if( m->in_vertex3[i].y < b.min.y ) b.min.y = m->in_vertex3[i].y;
|
||||||
|
if( m->in_vertex3[i].y > b.max.y ) b.max.y = m->in_vertex3[i].y;
|
||||||
|
|
||||||
|
if( m->in_vertex3[i].z < b.min.z ) b.min.z = m->in_vertex3[i].z;
|
||||||
|
if( m->in_vertex3[i].z > b.max.z ) b.max.z = m->in_vertex3[i].z;
|
||||||
|
}
|
||||||
|
return b;
|
||||||
|
}
|
||||||
|
|
||||||
void mesh_update(mesh_t *m, const char *format, int vertex_stride,int vertex_count,const void *vertex_data, int index_count,const void *index_data, int flags) {
|
void mesh_update(mesh_t *m, const char *format, int vertex_stride,int vertex_count,const void *vertex_data, int index_count,const void *index_data, int flags) {
|
||||||
m->flags = flags;
|
m->flags = flags;
|
||||||
|
|
||||||
|
|
|
@ -862,6 +862,9 @@ int tty_cols() {
|
||||||
#endif
|
#endif
|
||||||
return 80;
|
return 80;
|
||||||
}
|
}
|
||||||
|
void tty_detach() {
|
||||||
|
ifdef(win32, FreeConsole());
|
||||||
|
}
|
||||||
void tty_attach() {
|
void tty_attach() {
|
||||||
#if is(win32)
|
#if is(win32)
|
||||||
// in order to have a Windows gui application with console:
|
// in order to have a Windows gui application with console:
|
||||||
|
|
|
@ -19,6 +19,7 @@ API float optionf(const char *commalist, float defaults); // app_option?
|
||||||
API void tty_color(unsigned color);
|
API void tty_color(unsigned color);
|
||||||
API void tty_reset();
|
API void tty_reset();
|
||||||
API void tty_attach();
|
API void tty_attach();
|
||||||
|
API void tty_detach();
|
||||||
|
|
||||||
API const char* app_exec(const char *command); // returns ("%15d %s", retcode, output_last_line)
|
API const char* app_exec(const char *command); // returns ("%15d %s", retcode, output_last_line)
|
||||||
API int app_cores();
|
API int app_cores();
|
||||||
|
|
Loading…
Reference in New Issue