void KeExcptHandler(int type, excptArgs_t* args) { word_t cpsr = args->cpsr; if (type == Excpt_UndInstr) args->pc -= (cpsr & BIT(5)) ? 2 : 4; word_t excptPc = args->pc; int mode = cpsr&0xF; const char* modeName = getModeName(mode); int i; word_t excptSp, excptLr; CpuSaveModeRegs(mode, &excptSp, &excptLr); kputs("\n>> KRNLB0RK\n"); kprintf(">> %s at %p (%s mode)\n", excptTypeString[type], excptPc, modeName); for (i = 0; i < 5; i ++) kprintf("> r%d = %x | r%d = %x\n", i*2, args->reg[i*2], i*2+1, args->reg[i*2+1]); kprintf("> r10 = %x | r11 = %x\n", args->reg[10], args->reg[10]); kprintf("> r12 = %x | sp = %x\n", args->reg[12], excptSp); kprintf("> lr = %x | pc = %x\n", excptLr, excptPc); printf("\n<<General Kernel b0rk>>\n"); printf("Something went horribly wrong and FeOS/High became completely b0rked.\n"); printf("We apologize for any inconvenience and/or data loss caused by the b0rk.\n"); printf("Exact details of the b0rk:\n"); printf(">> %s at %p (%s mode)\n", excptTypeString[type], (void*)excptPc, modeName); for (i = 0; i < 5; i ++) printf("> r%d = %x | r%d = %x\n", i*2, args->reg[i*2], i*2+1, args->reg[i*2+1]); printf("> r10 = %x | r11 = %x\n", args->reg[10], args->reg[10]); printf("> r12 = %x | sp = %x\n", args->reg[12], excptSp); printf("> lr = %x | pc = %x\n", excptLr, excptPc); for (;;); }
ShaderDiscardCase* makeDiscardCase (Context& context, DiscardTemplate tmpl, DiscardMode mode) { StringTemplate shaderTemplate(getTemplate(tmpl)); map<string, string> params; switch (mode) { case DISCARDMODE_ALWAYS: params["DISCARD"] = "discard"; break; case DISCARDMODE_NEVER: params["DISCARD"] = "if (false) discard"; break; case DISCARDMODE_UNIFORM: params["DISCARD"] = "if (ui_one > 0) discard"; break; case DISCARDMODE_DYNAMIC: params["DISCARD"] = "if (v_coords.x+v_coords.y > 0.0) discard"; break; case DISCARDMODE_TEXTURE: params["DISCARD"] = "if (texture(ut_brick, v_coords.xy*0.25+0.5).x < 0.7) discard"; break; default: DE_ASSERT(DE_FALSE); break; } string name = string(getTemplateName(tmpl)) + "_" + getModeName(mode); string description = string(getModeDesc(mode)) + " in " + getTemplateDesc(tmpl); return new ShaderDiscardCase(context, name.c_str(), description.c_str(), shaderTemplate.specialize(params).c_str(), getEvalFunc(mode), mode == DISCARDMODE_TEXTURE); }
ThothWindow::ThothWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::ThothWindow) { ui->setupUi(this); // ALERT! Use the following code to get keyboard focus at your OpenGL widget ui->contextGL->setFocusPolicy(Qt::StrongFocus); ui->contextGL->setFocus(); message = new QLabel(this); popUp = new QLabel(this); mode = new QLabel(this); picked = new QLabel(this); ui->statusBar->addWidget(popUp); ui->statusBar->addPermanentWidget(picked); ui->statusBar->addPermanentWidget(mode); ui->statusBar->addPermanentWidget(message); mode->setText("Selecting"); message->setText("No model selected"); ui->statusBar->showMessage("Ready", 5000); //Tree file. //treeview of tabs TreeFile *m_build = new TreeFile(ui->treeViewBuild, "Build"); m_buildModel = m_build->getQFileSystemModel(); TreeFile *m_decorate = new TreeFile(ui->treeViewDecorate, "Decorate"); m_decorateModel = m_decorate->getQFileSystemModel(); TreeFile *m_furnish = new TreeFile(ui->treeViewFurnish, "Furnish"); m_furnishModel = m_furnish->getQFileSystemModel(); connect(ui->actionSave_project, SIGNAL(triggered()), this, SLOT(actionSave_project_triggered())); QTimer *tim = new QTimer(this); connect(tim, SIGNAL(timeout()), ui->contextGL, SLOT(updateGL())); tim->start(TICK_PER_SECOND); connect(tim, SIGNAL(timeout()), ui->contextGL, SLOT(checkActiveModel())); connect(ui->SldR, SIGNAL(valueChanged(int)), SLOT(onColorChanged())); connect(ui->SldG, SIGNAL(valueChanged(int)), SLOT(onColorChanged())); connect(ui->SldB, SIGNAL(valueChanged(int)), SLOT(onColorChanged())); onColorChanged(); connect(CScenary::getInstance(), SIGNAL(setNameModel(string)), SLOT(getModelName(string))); connect(RenderManager::GetInstance(), SIGNAL(sendChangeTab()), SLOT(changeTab())); RenderManager::GetInstance()->GetRenderMode(EDITOR_2D)->SetCameraProjection(INIT_WIDTH, INIT_HEIGHT); connect(this, SIGNAL(changeMouseMove(bool)), RenderManager::GetInstance()->GetRenderMode(EXPLORER), SLOT(setMouseMove(bool))); connect(this, SIGNAL(changeCursor(Qt::CursorShape)), ui->contextGL, SLOT(changeCursor(Qt::CursorShape))); connect(ui->ColorButton, SIGNAL(clicked(bool)), SLOT(on_colorButton_clicked())); connect(this, SIGNAL(newModel(ModelInfo, int)), RenderManager::GetInstance()->GetRenderMode(EXPLORER), SLOT(changeModelTexture(ModelInfo, int))); connect(ui->actionOpen_project, SIGNAL(triggered()), this, SLOT(actionOpen_project_triggered())); connect(CScenary::getInstance(), SIGNAL(setNameModel(string)), SLOT(getModelName(string))); connect(RenderManager::GetInstance(), SIGNAL(sendChangeTab()), SLOT(changeTab())); connect(CScenary::getInstance(), SIGNAL(activeFloorChanged(int)), ui->floorBox, SLOT(setValue(int))); connect(RenderManager::GetInstance()->GetRenderMode(EDITOR_2D), SIGNAL(changedMode(string)), SLOT(getModeName(string))); connect(RenderManager::GetInstance()->GetRenderMode(EDITOR_2D), SIGNAL(pickedInfo(string)), SLOT(getPicked(string))); connect(RenderManager::GetInstance()->GetRenderMode(EXPLORER), SIGNAL(pickedInfo(string)), SLOT(getPicked(string))); connect(RenderManager::GetInstance()->GetRenderMode(EXPLORER), SIGNAL(setMessage(string, int)), SLOT(getMessage(string, int))); connect(RenderManager::GetInstance()->GetRenderMode(EDITOR_2D), SIGNAL(setMessage(string, int)), SLOT(getMessage(string, int))); connect(CScenary::getInstance(), SIGNAL(setMessage(string, int)), SLOT(getMessage(string, int))); }