RenderResult SettingsView::CreateHotkeySettingsGroup(RenderDescriptor renderDescriptor) { HotkeySettingsComponent* hotkeySettingsComponent = new HotkeySettingsComponent(Context->GetServiceRegistry(), this, GetModel()->GetHotkeySettingsViewModel()); RenderPosition renderPosition = AddSettingsGroup(renderDescriptor, hotkeySettingsComponent); return RenderResult(renderPosition); }
RenderResult SettingsView::CreateSaveButtonControl(RenderDescriptor renderDescriptor) { saveButton = new HoverFlatButtonControl(Context, this); saveButton->SetPosition(renderDescriptor.GetRenderPosition().GetPosition()); saveButton->SetText(L"Save"); saveButton->OnClick.Subscribe(&OnSaveSettings); saveButton->InitializeAndRender(); renderDescriptor.GetRenderer()->UpdateRenderedContentSize(saveButton); return RenderResult(Point( saveButton->GetBoundingRect().GetRight(), saveButton->GetPosition().GetY() + saveButton->GetTextBaseline())); }
RenderResult SettingsView::InitializeSettingsGroup(RenderDescriptor renderDescriptor, IComponent* settingsGroup) { settingsGroups.push_back(settingsGroup); settingsGroup->SetLayout(LayoutDescriptor::CreateLayoutDescriptor( renderDescriptor.GetRenderPosition().GetPosition(), Size(ScaleProvider->Scale(257), 0), OverflowModes::Fixed, OverflowModes::Stretch)); settingsGroup->InitializeAndRender(); renderDescriptor.GetRenderer()->UpdateRenderedContentSize(settingsGroup); return RenderResult(settingsGroup->GetBoundingRect()); }
void Graphics_Mesh(bool isOpenGLMode) { StartGraphicsTest(); SetGLEnable(isOpenGLMode); asd::Log* log = asd::Log_Imp::Create(L"graphics.html", L"メッシュ"); auto window = asd::Window_Imp::Create(640, 480, asd::ToAString(L"メッシュ").c_str()); ASSERT_TRUE(window != nullptr); auto file = asd::File_Imp::Create(); ASSERT_TRUE(file != nullptr); auto graphics = asd::Graphics_Imp::Create(window, isOpenGLMode ? asd::GraphicsDeviceType::OpenGL : asd::GraphicsDeviceType::DirectX11, log, file, false, false); ASSERT_TRUE(graphics != nullptr); auto renderer3d = new asd::Renderer3D(graphics, asd::RenderSettings()); ASSERT_TRUE(renderer3d != nullptr); renderer3d->SetWindowSize(asd::Vector2DI(640, 480)); auto mesh1 = CreateMesh(graphics); auto mesh2 = CreateMesh(graphics); auto deformer = CreateDeformer(graphics); auto animation = CreateAnimation(); SetMeshBone(mesh2); mesh1->SendToGPUMemory(); mesh2->SendToGPUMemory(); auto cameraObject = new asd::RenderedCameraObject3D(graphics); cameraObject->SetPosition(asd::Vector3DF(0, 0, 10)); cameraObject->SetFocus(asd::Vector3DF(0, 0, 0)); cameraObject->SetFieldOfView(20.0f); cameraObject->SetZNear(1.0f); cameraObject->SetZFar(20.0f); cameraObject->SetWindowSize(asd::Vector2DI(800, 600)); auto meshObject1 = new asd::RenderedModelObject3D(graphics); meshObject1->AddMesh(mesh1); meshObject1->SetPosition(asd::Vector3DF(1, 0, 0)); meshObject1->SetRotation(asd::Vector3DF(20.0f, 20.0f, 0.0f)); auto meshObject2 = new asd::RenderedModelObject3D(graphics); meshObject2->AddMesh(mesh2); meshObject2->SetDeformer(deformer.get()); meshObject2->SetPosition(asd::Vector3DF(-1, 0, 0)); meshObject2->SetRotation(asd::Vector3DF(20.0f, 20.0f, 0.0f)); meshObject2->AddAnimationClip(asd::ToAString("anime1").c_str(), animation.get()); meshObject2->PlayAnimation(0, asd::ToAString("anime1").c_str()); auto lightObject = new asd::RenderedDirectionalLightObject3D(graphics); lightObject->SetRotation(asd::Vector3DF(30, 160, 0)); renderer3d->AddObject(cameraObject); renderer3d->AddObject(meshObject1); renderer3d->AddObject(meshObject2); renderer3d->AddObject(lightObject); int32_t time = 0; while (window->DoEvent()) { graphics->Begin(); graphics->Clear(true, false, asd::Color(0, 0, 0, 255)); renderer3d->Flip(1); renderer3d->BeginRendering(1); asd::Sleep(100); renderer3d->EndRendering(); graphics->SetRenderTarget(nullptr, nullptr); graphics->Clear(true, false, asd::Color(0, 0, 0, 255)); renderer3d->RenderResult(); graphics->Present(); graphics->End(); if (time == 10) { SAVE_SCREEN_SHOT(graphics, 0); } if (time == 11) { window->Close(); } time++; } meshObject1->Release(); meshObject2->Release(); cameraObject->Release(); lightObject->Release(); delete renderer3d; graphics->Release(); file->Release(); window->Release(); delete log; }