Refactored the tester to use scene classes to for different testing functions
parent
a0584b652c
commit
a42dc3c71a
@ -0,0 +1,44 @@
|
|||||||
|
/******************************************************************************
|
||||||
|
* File - baseScene.cpp
|
||||||
|
* Author - Joey Pollack
|
||||||
|
* Date - 2021/10/27 (y/m/d)
|
||||||
|
* Mod Date - 2021/10/27 (y/m/d)
|
||||||
|
* Description - The interface class for tester scenes
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
#include "baseScene.h"
|
||||||
|
|
||||||
|
namespace lunarium
|
||||||
|
{
|
||||||
|
BaseScene::BaseScene(uint32_t logCat)
|
||||||
|
: mLogCat(logCat)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void BaseScene::OnLoad()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void BaseScene::OnTick(double delta)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void BaseScene::OnRender(IGraphics* g)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void BaseScene::OnKeyPress(InputManager::KeyPress kp)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void BaseScene::OnKeyRelease(Keyboard::Key k)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,33 @@
|
|||||||
|
/******************************************************************************
|
||||||
|
* File - baseScene.h
|
||||||
|
* Author - Joey Pollack
|
||||||
|
* Date - 2021/10/27 (y/m/d)
|
||||||
|
* Mod Date - 2021/10/27 (y/m/d)
|
||||||
|
* Description - The interface class for tester scenes
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
#ifndef BASE_SCENE_H_
|
||||||
|
#define BASE_SCENE_H_
|
||||||
|
|
||||||
|
#include <input/inputManager.h>
|
||||||
|
#include <input/keyboard.h>
|
||||||
|
|
||||||
|
namespace lunarium
|
||||||
|
{
|
||||||
|
class IGraphics;
|
||||||
|
class BaseScene
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
BaseScene(uint32_t logCat);
|
||||||
|
virtual void OnLoad();
|
||||||
|
virtual void OnTick(double delta);
|
||||||
|
virtual void OnRender(IGraphics* g);
|
||||||
|
virtual void OnKeyPress(InputManager::KeyPress kp);
|
||||||
|
virtual void OnKeyRelease(Keyboard::Key k);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
uint32_t mLogCat;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // BASE_SCENE_H_
|
||||||
@ -0,0 +1,93 @@
|
|||||||
|
/******************************************************************************
|
||||||
|
* File - simpleRenderScene.cpp
|
||||||
|
* Author - Joey Pollack
|
||||||
|
* Date - 2021/10/27 (y/m/d)
|
||||||
|
* Mod Date - 2021/10/27 (y/m/d)
|
||||||
|
* Description - Displays a simple scene that tests basic render features.
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
#include "simpleRenderScene.h"
|
||||||
|
#include <core/core.h>
|
||||||
|
#include <utils/helpers.h>
|
||||||
|
#include <utils/logger.h>
|
||||||
|
#include <graphics/igraphics.h>
|
||||||
|
#include <input/inputManager.h>
|
||||||
|
#include <assets/types/image.h>
|
||||||
|
|
||||||
|
namespace lunarium
|
||||||
|
{
|
||||||
|
SimpleRenderScene::SimpleRenderScene(uint32_t logCat)
|
||||||
|
: BaseScene(logCat)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
void SimpleRenderScene::OnLoad()
|
||||||
|
{
|
||||||
|
mTextBoxWidth = 500;
|
||||||
|
|
||||||
|
// Currently the full default window size
|
||||||
|
mImageSize.Width = 1280;
|
||||||
|
mImageSize.Height = 720;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SimpleRenderScene::OnTick(double delta)
|
||||||
|
{
|
||||||
|
if (Core::Input().IsKeyDown(KeyCode::ESCAPE))
|
||||||
|
{
|
||||||
|
Core::GetInstance().SignalShutdown();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Textbox size adjustment
|
||||||
|
if (Core::Input().IsKeyDown(KeyCode::LEFT))
|
||||||
|
{
|
||||||
|
mTextBoxWidth -= 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Core::Input().IsKeyDown(KeyCode::RIGHT))
|
||||||
|
{
|
||||||
|
mTextBoxWidth += 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
mTextBoxWidth = Math::ClampI(mTextBoxWidth, 20, 500);
|
||||||
|
|
||||||
|
// Image Size adjustment
|
||||||
|
if (Core::Input().IsKeyDown(KeyCode::DOWN))
|
||||||
|
{
|
||||||
|
mImageSize.Width -= 10;
|
||||||
|
mImageSize.Height -= 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Core::Input().IsKeyDown(KeyCode::UP))
|
||||||
|
{
|
||||||
|
mImageSize.Width += 10;
|
||||||
|
mImageSize.Height += 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
mImageSize.Width = Math::ClampI(mImageSize.Width, 320, 1280);
|
||||||
|
mImageSize.Height = Math::ClampI(mImageSize.Height, 180, 720);
|
||||||
|
|
||||||
|
// Render to texture testing
|
||||||
|
OpRes result = Core::GetInstance().BeginRenderToTexture();
|
||||||
|
if (Failed(result))
|
||||||
|
{
|
||||||
|
Logger::Log(mLogCat, LogLevel::WARNING, "Unable to render to texture: %s", result.Description.c_str());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
IGraphics& g = Core::Graphics();
|
||||||
|
|
||||||
|
g.DrawFilledEllipse(glm::vec2(600, 300), glm::vec2(100, 150), Color(1.0f, 0.0f, 1.0f, 1.0f), 100);
|
||||||
|
g.DrawString("This is a test of the text renderer!", Rectangle(100, 200, mTextBoxWidth, 300),
|
||||||
|
Color(0.0f, 1.0f, 1.0f, 1.0f), 0.5f, g.DefaultFont());
|
||||||
|
|
||||||
|
mpRenderedImage = Core::GetInstance().EndRenderToTexture();
|
||||||
|
}
|
||||||
|
|
||||||
|
void SimpleRenderScene::OnRender(IGraphics* g)
|
||||||
|
{
|
||||||
|
g->DrawImage(*mpRenderedImage, Rectangle(0.0f, 0.0f, (float)mpRenderedImage->GetWidth(), (float)mpRenderedImage->GetHeight()),
|
||||||
|
Rectangle(0.0f, 0.0f, (float)mImageSize.Width, (float)mImageSize.Height), Color(1.0f, 1.0f, 1.0f, 1.0f));
|
||||||
|
|
||||||
|
g->DrawBox(Rectangle(0.0f, 0.0f, (float)mImageSize.Width, (float)mImageSize.Height), Color(0.0f, 0.0f, 0.0f, 1.0f), 1.0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,34 @@
|
|||||||
|
/******************************************************************************
|
||||||
|
* File - simpleRenderScene.h
|
||||||
|
* Author - Joey Pollack
|
||||||
|
* Date - 2021/10/27 (y/m/d)
|
||||||
|
* Mod Date - 2021/10/27 (y/m/d)
|
||||||
|
* Description - Displays a simple scene that tests basic render features.
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
#ifndef SIMPLE_RENDER_SCENE_H_
|
||||||
|
#define SIMPLE_RENDER_SCENE_H_
|
||||||
|
|
||||||
|
#include "baseScene.h"
|
||||||
|
#include <utils/types.h>
|
||||||
|
|
||||||
|
namespace lunarium
|
||||||
|
{
|
||||||
|
class Image;
|
||||||
|
class SimpleRenderScene : public BaseScene
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
SimpleRenderScene(uint32_t logCat);
|
||||||
|
virtual void OnLoad();
|
||||||
|
virtual void OnTick(double delta);
|
||||||
|
virtual void OnRender(IGraphics* g);
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
int mTextBoxWidth;
|
||||||
|
Sizei mImageSize;
|
||||||
|
Image* mpRenderedImage;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // SIMPLE_RENDER_SCENE_H_
|
||||||
Loading…
Reference in New Issue