void Menu::render(Global &global) { gfx->SelectTexture(0, menu_object); gfx->SelectVertexBuffer(Model::quad_vertex); gfx->SelectIndexBuffer(Model::quad_index); for(unsigned int i = 0; i < menu_list.size(); i++) { menu_t *item = menu_list[i]; if (item->state == menu_state) { if (item->flag & 1) { gfx->clear(); global.Select(); global.Params(matrix, 0); gfx->DrawArrayTri(0, 0, 6, 4); // gfx->SelectShader(0); // gfx->DeselectTexture(0); gfx->cleardepth(); } break; } } for(unsigned int i = 0; i < menu_list.size(); i++) { menu_t *item = menu_list[i]; if (item->state == menu_state) { if (item->flag & 2) { // draw model } else if (item->flag & 4) { // draw texture } else { vec3 color(item->color[0], item->color[1], item->color[2]); draw_text(item->msg, item->position[0], item->position[1], item->scale, color); } } } }
void Menu::render_console(Global &global) { vec3 color(1.0f, 1.0f, 1.0f); gfx->SelectTexture(0, console_object); gfx->SelectIndexBuffer(Model::quad_index); gfx->SelectVertexBuffer(Model::quad_vertex); global.Select(); matrix.m[13] = 1.0f; global.Params(matrix, 0); matrix.m[13] = 0.0f; gfx->DrawArrayTri(0, 0, 6, 4); // gfx->SelectShader(0); // gfx->DeselectTexture(0); gfx->cleardepth(); for(unsigned int i = 0; i < console_buffer.size(); i++) draw_text(console_buffer[i], 0.0125f, 0.4f - 0.025f * (console_buffer.size() - 1 - i), 0.025f, color); strcat(key_buffer, "\4"); draw_text(key_buffer, 0.0125f, 0.5f - 0.05f, 0.025f, color); key_buffer[strlen(key_buffer) - 1] = '\0'; draw_text("Console", 0.85f - 0.0125f, 0.5f - 0.025f, 0.025f, color); }