long Editor :: MenuCommand(wCommandMsg m) { Document *top = (Document*)TopMdiDocument(); short lp; Document *doc; // SET FOREGROUND COLOR if (m.usCmd() >= O_FGCOLOR && m.usCmd() < O_BGCOLOR) { fgc = carr[m.usCmd() - O_FGCOLOR]; wColor oldc; for (DocList()->First() ; (doc = (Document*)(DocList()->Current())) != 0 ; DocList()->Next()) oldc= doc->mle->SetForeground(fgc); for (lp=0 ; lp < 16 && carr[lp] != oldc; lp++) ; menu->UnCheckItem(lp + O_FGCOLOR); menu->CheckItem(m.usCmd()); } // SET BACKGROUND COLOR if (m.usCmd() >= O_BGCOLOR && m.usCmd() < O_BGCOLOR + 18) { bgc = carr[m.usCmd() - O_BGCOLOR]; wColor oldc; for (DocList()->First() ; (doc = (Document*)(DocList()->Current())) != 0 ; DocList()->Next()) oldc= doc->mle->SetBackground(bgc); for (lp=0 ; lp < 16 && carr[lp] != oldc; lp++) ; menu->UnCheckItem(lp + O_BGCOLOR); menu->CheckItem(m.usCmd()); } // SET FONT if (m.usCmd() == O_FONT) Fonts(); switch (m.usCmd()) { case F_NEW: new Document(this); break; case F_OPEN: Open(); break; case F_SAVE: top->Save(); break; case F_SAVEAS: top->SaveAs(); break; case F_CLOSE: if (top->Close(wMessage())) delete top; break; case F_QUIT: if (top) { if (CloseAll()) PostMessage(wMessage(WM_QUIT, 0, 0)); } break; case E_UNDO: top->mle->Undo(); break; case E_CUT: top->mle->CutSelection(); break; case E_COPY: top->mle->CopySelection(); break; case E_PASTE: top->mle->PasteSelection(); break; case E_CLEAR: top->mle->ClearSelection(); break; case E_FIND: { ushort found = TRUE; SearchDlg s(this, EDIT_SEARCH, &search, &replace, &cs); switch(s.GetResult()) { case ID_CANCEL: return FALSE; case ID_SEARCH: { //top->mle->DisableUpdate(); found = top->mle->Search(search, PosFirst, PosLast, MlSelectMatch | (cs ? MlCaseSensitive : 0)); break; } case ID_REPLACE: top->mle->DisableUpdate(); found = top->mle->SearchReplace(search, replace, PosFirst, PosLast, (cs ? MlCaseSensitive : 0)); break; case ID_REPLACEALL: top->mle->DisableUpdate(); found = TRUE; top->mle->SearchReplace(search, replace, PosFirst, PosLast, MlChangeAll | (cs ? MlCaseSensitive : 0)); break; } top->mle->EnableUpdate(); if (!found) { wMessageBox mb(this, "Search string not found", "Search", MbIconAsterisk | MbOk); } } break; case E_SELECTALL: top->mle->SetSelection(wRange(0, top->mle->GetNumChars())); break; case O_TABSTOPS: { ushort tmp; TabStops ts(this, &tab); if ((tmp = ts.GetResult()) != 0) { tab = tmp; if (top) { Document *doc; for (DocList()->First() ; (doc=(Document*)(DocList()->Current())) != 0 ; DocList()->Next()) doc->mle->SetTabStop(tmp); } } } break; case O_WWRAP: { wwrap = !wwrap; for (DocList()->First() ; (doc = (Document*)(DocList()->Current())) != 0 ; DocList()->Next()) (doc->mle->SetWrap(wwrap)); menu->ToggleCheckItem(O_WWRAP); } break; default: return FALSE; } return FALSE; }
// INITIALIZE CORE FUNCTIONS bool RenderEngine::Init(){ if (!InitWindow()){ return false; //gick inte att skapa window } if (!InitDirect3D(hWindow)){ return false; //gick inte att skapa Direct3D } // Sets and creates viewport SetViewport(); //Initialize Shaders and triangle data Shaders(); CreatePlaneData(); TextureFunc(); //Font Fonts(); //Import ImportObj("Objects/testPlayer1.obj", "Objects/testPlayer1.mtl", gDevice, true); ImportObj("Objects/mapPart1.obj", "Objects/mapPart1.mtl", gDevice, false); ImportObj("Objects/mapPart2.obj", "Objects/mapPart2.mtl", gDevice, false); ImportObj("Objects/mapPart3.obj", "Objects/mapPart3.mtl", gDevice, false); ImportObj("Objects/mapPart4.obj", "Objects/mapPart4.mtl", gDevice, false); ImportObj("Objects/mapPart5.obj", "Objects/mapPart5.mtl", gDevice, false); ImportObj("Objects/mapPart6.obj", "Objects/mapPart6.mtl", gDevice, false); ImportObj("Objects/mapPart7.obj", "Objects/mapPart7.mtl", gDevice, false); ImportObj("Objects/mapPart7.obj", "Objects/mapPart7.mtl", gDevice, false); //LIGHT TEST ZONE BITCHES /*float l1Int = 1.0f; XMFLOAT3 l1Pos = XMFLOAT3(0.0f, 1.0f, -2.0f); XMFLOAT4 l1Amb = XMFLOAT4(1.0f, 1.0f, 1.0f,1.0f); XMFLOAT4 l1Diff = XMFLOAT4(1.0f, 1.0f, 1.0f, 1.0f); XMFLOAT4 l1Spec = XMFLOAT4(0.5f, 0.2f, 0.2f, 1.0f); XMFLOAT3 l1Dir = XMFLOAT3(0.0f, -50.0f, 30.0f);*/ testLight[0] = LightClass(l_Directional, XMFLOAT3(1.0f, 1.0f, -5.0f), true, true); testLight[0].lightObject.Color = XMFLOAT4(Colors::White); /*testLight[0].ToggleActive();*/ LightClass snoppe(l_Point, XMFLOAT3(1.0f, 1.0f, 0.0f), true, true); testLight[1] = snoppe; snoppe.lightObject.Type = 2; testLight[1].lightObject.Position = XMFLOAT4(-4.0f, 8.0f, 1.0f, 1.0f); testLight[1].lightObject.Color = XMFLOAT4(Colors::LightGoldenrodYellow); testLight[1].lightObject.AttConst = 1.0f; testLight[1].lightObject.AttLinear = 0.08f; testLight[1].lightObject.AttQuadratic = 0.00000f; //testLight[1].ToggleActive(); globalAmb = XMFLOAT4(Colors::Black); D3D11_BUFFER_DESC lbuffDesc; ZeroMemory(&lbuffDesc, sizeof(lbuffDesc)); lbuffDesc.Usage = D3D11_USAGE_DEFAULT; lbuffDesc.BindFlags = D3D11_BIND_CONSTANT_BUFFER; lbuffDesc.CPUAccessFlags = 0; lbuffDesc.MiscFlags = 0; lbuffDesc.ByteWidth = sizeof(LightProperties); HRESULT hr = gDevice->CreateBuffer(&lbuffDesc, NULL, &lightConstBuff); // Material Buffers Init ZeroMemory(&lbuffDesc, sizeof(lbuffDesc)); lbuffDesc.ByteWidth = sizeof(MaterialProperties); hr = gDevice->CreateBuffer(&lbuffDesc, NULL, &matConstBuff); return true; //om båda funkade så returnera true (y) }