Files
WickedEngine/Tests/Tests.cpp
T
turanszkij 9f056b4cfe updated engine initialization logic;
fade manager is now time-based instead of frame-based;
wiImage moved to namespace instead of static class;
refactors;
editor updates;
contributing updates;
2018-10-26 18:35:11 +01:00

171 lines
4.9 KiB
C++

#include "stdafx.h"
#include "Tests.h"
using namespace wiSceneSystem;
Tests::Tests()
{
}
Tests::~Tests()
{
}
void Tests::Initialize()
{
// Call this before Maincomponent::Initialize if you want to load shaders from an other directory!
// otherwise, shaders will be loaded from the working directory
wiRenderer::GetShaderPath() = "../WickedEngine/shaders/";
wiFont::GetFontPath() = "../WickedEngine/fonts/"; // search for fonts elsewhere
MainComponent::Initialize();
infoDisplay.active = true;
infoDisplay.watermark = true;
infoDisplay.fpsinfo = true;
infoDisplay.cpuinfo = false;
infoDisplay.resolution = true;
activateComponent(new TestsRenderer);
}
TestsRenderer::TestsRenderer()
{
setSSREnabled(false);
setSSAOEnabled(false);
setReflectionsEnabled(true);
setFXAAEnabled(false);
float screenW = (float)wiRenderer::GetDevice()->GetScreenWidth();
float screenH = (float)wiRenderer::GetDevice()->GetScreenHeight();
TransformComponent transform;
transform.Translate(XMFLOAT3(0, 2.f, -4.5f));
transform.UpdateTransform();
wiRenderer::GetCamera().TransformCamera(transform);
wiLabel* label = new wiLabel("Label1");
label->SetText("Wicked Engine Test Framework");
label->SetSize(XMFLOAT2(200,15));
label->SetPos(XMFLOAT2(screenW / 2.f - label->scale.x / 2.f, screenH*0.95f));
GetGUI().AddWidget(label);
wiComboBox* testSelector = new wiComboBox("TestSelector");
testSelector->SetText("Demo: ");
testSelector->SetSize(XMFLOAT2(120, 20));
testSelector->SetPos(XMFLOAT2(50, 80));
testSelector->SetColor(wiColor(255, 205, 43, 200), wiWidget::WIDGETSTATE::IDLE);
testSelector->SetColor(wiColor(255, 235, 173, 255), wiWidget::WIDGETSTATE::FOCUS);
testSelector->AddItem("HelloWorld");
testSelector->AddItem("Model");
testSelector->AddItem("EmittedParticle 1");
testSelector->AddItem("EmittedParticle 2");
testSelector->AddItem("HairParticle");
testSelector->AddItem("Lua Script");
testSelector->AddItem("Water Test");
testSelector->AddItem("Shadows Test");
testSelector->AddItem("Physics Test");
testSelector->AddItem("Cloth Physics Test");
testSelector->SetMaxVisibleItemCount(100);
testSelector->OnSelect([=](wiEventArgs args) {
wiRenderer::SetToDrawGridHelper(false);
wiRenderer::SetTemporalAAEnabled(false);
wiRenderer::ClearWorld();
wiRenderer::GetScene().weather = WeatherComponent();
this->clearSprites();
wiLua::GetGlobal()->KillProcesses();
switch (args.iValue)
{
case 0:
{
wiSprite* sprite = new wiSprite("images/HelloWorld.png");
sprite->effects.pos = XMFLOAT3(screenW / 2, screenH / 2, 0);
sprite->effects.siz = XMFLOAT2(200, 100);
sprite->effects.pivot = XMFLOAT2(0.5f, 0.5f);
sprite->anim.rot = XM_PI / 400.0f;
this->addSprite(sprite);
break;
}
case 1:
wiRenderer::SetTemporalAAEnabled(true);
wiRenderer::LoadModel("../models/teapot.wiscene");
break;
case 2:
wiRenderer::LoadModel("../models/emitter_smoke.wiscene");
break;
case 3:
wiRenderer::LoadModel("../models/emitter_skinned.wiscene");
break;
case 4:
wiRenderer::LoadModel("../models/hairparticle_torus.wiscene", XMMatrixTranslation(0, 1, 0));
break;
case 5:
wiRenderer::SetToDrawGridHelper(true);
wiLua::GetGlobal()->RunFile("test_script.lua");
break;
case 6:
wiRenderer::SetTemporalAAEnabled(true);
wiRenderer::LoadModel("../models/water_test.wiscene", XMMatrixTranslation(0, 1, 0));
break;
case 7:
wiRenderer::SetTemporalAAEnabled(true);
wiRenderer::LoadModel("../models/shadows_test.wiscene", XMMatrixTranslation(0, 1, 0));
break;
case 8:
wiRenderer::SetTemporalAAEnabled(true);
wiRenderer::LoadModel("../models/physics_test.wiscene");
break;
case 9:
wiRenderer::LoadModel("../models/cloth_test.wiscene", XMMatrixTranslation(0, 3, 4));
break;
}
});
testSelector->SetSelected(0);
GetGUI().AddWidget(testSelector);
wiButton* audioTest = new wiButton("AudioTest");
audioTest->SetText("Play Test Audio");
audioTest->SetSize(XMFLOAT2(180, 20));
audioTest->SetPos(XMFLOAT2(10, 110));
audioTest->SetColor(wiColor(255, 205, 43, 200), wiWidget::WIDGETSTATE::IDLE);
audioTest->SetColor(wiColor(255, 235, 173, 255), wiWidget::WIDGETSTATE::FOCUS);
audioTest->OnClick([=](wiEventArgs args) {
static wiMusic music("sound/music.wav");
static bool playing = false;
if (playing)
{
music.Stop();
audioTest->SetText("Play Test Audio");
}
else
{
music.Play();
audioTest->SetText("Stop Test Audio");
}
playing = !playing;
});
GetGUI().AddWidget(audioTest);
wiSlider* volume = new wiSlider(0, 100, 50, 100, "Volume");
volume->SetText("Volume: ");
volume->SetSize(XMFLOAT2(85, 20));
volume->SetPos(XMFLOAT2(65, 140));
volume->SetColor(wiColor(255, 205, 43, 200), wiWidget::WIDGETSTATE::IDLE);
volume->SetColor(wiColor(255, 235, 173, 255), wiWidget::WIDGETSTATE::FOCUS);
volume->OnSlide([](wiEventArgs args) {
wiMusic::SetVolume(args.fValue / 100.0f);
});
GetGUI().AddWidget(volume);
}
TestsRenderer::~TestsRenderer()
{
}