Events isolation
This commit is contained in:
parent
2031e1a4c4
commit
29935cf54e
@ -34,7 +34,7 @@ Graphic3DRenderer::Graphic3DRenderer() {
|
|||||||
if (mMainCamera == nullptr) {
|
if (mMainCamera == nullptr) {
|
||||||
mMainCamera = std::make_unique<Camera>();
|
mMainCamera = std::make_unique<Camera>();
|
||||||
mMainCamera->SetPosition(0.0f, 1.5f, -8.0f);
|
mMainCamera->SetPosition(0.0f, 1.5f, -8.0f);
|
||||||
mMainCamera->SetFrustrum(90.0f, mRTSize.x/mRTSize.y, 1.0f, 100.f);
|
mMainCamera->SetFrustrum(75.0f, mRTSize.x/mRTSize.y, 1.0f, 100.f);
|
||||||
mMainCamera->UpdateCamView();
|
mMainCamera->UpdateCamView();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -182,8 +182,8 @@ void Graphic3DRenderer::Draw(sf::RenderTexture& context) {
|
|||||||
v_tri[1].position = sf::Vector2f(M3D_V4GetX(V2), M3D_V4GetY(V2));
|
v_tri[1].position = sf::Vector2f(M3D_V4GetX(V2), M3D_V4GetY(V2));
|
||||||
v_tri[2].position = sf::Vector2f(M3D_V4GetX(V3), M3D_V4GetY(V3));
|
v_tri[2].position = sf::Vector2f(M3D_V4GetX(V3), M3D_V4GetY(V3));
|
||||||
v_tri[3] = v_tri[0];
|
v_tri[3] = v_tri[0];
|
||||||
context.draw(v_tri, 4, sf::LineStrip, sRS);
|
//context.draw(v_tri, 4, sf::LineStrip, sRS);
|
||||||
//context.draw(v_tri, 3, sf::Triangles, sRS);
|
context.draw(v_tri, 3, sf::Triangles, sRS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,7 @@ void UI::CreateDefaultRenderWindow() {
|
|||||||
mUIRender.setRepeated(false);
|
mUIRender.setRepeated(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void UI::DrawUIOnRenderWindow(std::shared_ptr<sf::RenderWindow> context, float& viewX, float& viewY) {
|
void UI::DrawUIOnRenderWindow(std::shared_ptr<sf::RenderWindow>& context, float& viewX, float& viewY) {
|
||||||
sf::Sprite spriteRender;
|
sf::Sprite spriteRender;
|
||||||
spriteRender.setTexture(this->mUIRender.getTexture());
|
spriteRender.setTexture(this->mUIRender.getTexture());
|
||||||
spriteRender.setPosition(0.0f, 0.0f);
|
spriteRender.setPosition(0.0f, 0.0f);
|
||||||
@ -55,7 +55,7 @@ void CockpitUI::Update() {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CockpitUI::Draw(std::shared_ptr<sf::RenderWindow> context) {
|
void CockpitUI::Draw(std::shared_ptr<sf::RenderWindow>& context) {
|
||||||
sf::BlendMode sBM = sf::BlendNone;
|
sf::BlendMode sBM = sf::BlendNone;
|
||||||
sf::RenderStates sRS(sBM);
|
sf::RenderStates sRS(sBM);
|
||||||
|
|
||||||
@ -82,7 +82,7 @@ void CockpitUI::Draw(std::shared_ptr<sf::RenderWindow> context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
WorldUI::WorldUI(unsigned int w, unsigned int h, std::shared_ptr<Graphic3DRenderer> engineInstance) : UI(w, h), mWorld3D(engineInstance) {
|
WorldUI::WorldUI(unsigned int w, unsigned int h, std::shared_ptr<Graphic3DRenderer>& engineInstance) : UI(w, h), mWorld3D(engineInstance) {
|
||||||
CreateDefaultRenderWindow();
|
CreateDefaultRenderWindow();
|
||||||
|
|
||||||
mUIRender.clear(sf::Color::Black);
|
mUIRender.clear(sf::Color::Black);
|
||||||
@ -93,7 +93,7 @@ void WorldUI::Update() {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldUI::Draw(std::shared_ptr<sf::RenderWindow> context) {
|
void WorldUI::Draw(std::shared_ptr<sf::RenderWindow>& context) {
|
||||||
sf::BlendMode sBM = sf::BlendNone;
|
sf::BlendMode sBM = sf::BlendNone;
|
||||||
sf::RenderStates sRS(sBM);
|
sf::RenderStates sRS(sBM);
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ public:
|
|||||||
void SetRTSize(unsigned int w, unsigned int h, bool recreateCanvas = false);
|
void SetRTSize(unsigned int w, unsigned int h, bool recreateCanvas = false);
|
||||||
|
|
||||||
virtual void Update() = 0;
|
virtual void Update() = 0;
|
||||||
virtual inline void Draw(std::shared_ptr<sf::RenderWindow> c) { DrawUIOnRenderWindow(c); }
|
virtual inline void Draw(std::shared_ptr<sf::RenderWindow>& c) { DrawUIOnRenderWindow(c); }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
UI(unsigned int w, unsigned int h) : mRTSize(sf::Vector2f(w, h)) {}
|
UI(unsigned int w, unsigned int h) : mRTSize(sf::Vector2f(w, h)) {}
|
||||||
@ -25,9 +25,9 @@ protected:
|
|||||||
sf::RenderTexture mUIRender; // The screen to draw onto
|
sf::RenderTexture mUIRender; // The screen to draw onto
|
||||||
|
|
||||||
void CreateDefaultRenderWindow();
|
void CreateDefaultRenderWindow();
|
||||||
void DrawUIOnRenderWindow(std::shared_ptr<sf::RenderWindow> context, float& viewX, float& viewY);
|
void DrawUIOnRenderWindow(std::shared_ptr<sf::RenderWindow>& context, float& viewX, float& viewY);
|
||||||
inline void DrawUIOnRenderWindow(std::shared_ptr<sf::RenderWindow> context) { DrawUIOnRenderWindow(context, mRTSize); }
|
inline void DrawUIOnRenderWindow(std::shared_ptr<sf::RenderWindow>& context) { DrawUIOnRenderWindow(context, mRTSize); }
|
||||||
inline void DrawUIOnRenderWindow(std::shared_ptr<sf::RenderWindow> context, sf::Vector2f& view) { DrawUIOnRenderWindow(context, view.x, view.y); }
|
inline void DrawUIOnRenderWindow(std::shared_ptr<sf::RenderWindow>& context, sf::Vector2f& view) { DrawUIOnRenderWindow(context, view.x, view.y); }
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -44,7 +44,7 @@ public:
|
|||||||
CockpitUI& operator= (CockpitUI const&) = delete;
|
CockpitUI& operator= (CockpitUI const&) = delete;
|
||||||
|
|
||||||
void Update() override;
|
void Update() override;
|
||||||
void Draw(std::shared_ptr<sf::RenderWindow>) override;
|
void Draw(std::shared_ptr<sf::RenderWindow>&) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
sf::Texture mStaticCockpitTexture;
|
sf::Texture mStaticCockpitTexture;
|
||||||
@ -53,7 +53,7 @@ private:
|
|||||||
|
|
||||||
class WorldUI final : public UI {
|
class WorldUI final : public UI {
|
||||||
public:
|
public:
|
||||||
WorldUI(unsigned int w, unsigned int h, std::shared_ptr<Graphic3DRenderer> engineInstance);
|
WorldUI(unsigned int w, unsigned int h, std::shared_ptr<Graphic3DRenderer>& engineInstance);
|
||||||
~WorldUI() {}
|
~WorldUI() {}
|
||||||
|
|
||||||
WorldUI(WorldUI&&) = default;
|
WorldUI(WorldUI&&) = default;
|
||||||
@ -62,7 +62,7 @@ public:
|
|||||||
WorldUI& operator= (WorldUI const&) = delete;
|
WorldUI& operator= (WorldUI const&) = delete;
|
||||||
|
|
||||||
void Update() override;
|
void Update() override;
|
||||||
void Draw(std::shared_ptr<sf::RenderWindow>) override;
|
void Draw(std::shared_ptr<sf::RenderWindow>&) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::shared_ptr<Graphic3DRenderer> mWorld3D;
|
std::shared_ptr<Graphic3DRenderer> mWorld3D;
|
||||||
|
5
Game.cpp
5
Game.cpp
@ -35,7 +35,7 @@ Game* Game::smInstance = nullptr;
|
|||||||
|
|
||||||
More details to write here...
|
More details to write here...
|
||||||
*/
|
*/
|
||||||
Game::Game(std::shared_ptr<sf::RenderWindow> mainWnd, bool dbgFlag) : mbDbgModeEnabled(dbgFlag), mMainWindow(mainWnd) {
|
Game::Game(std::shared_ptr<sf::RenderWindow>& mainWnd, bool dbgFlag) : mbDbgModeEnabled(dbgFlag), mMainWindow(mainWnd) {
|
||||||
unsigned int wndWidth, wndHeight;
|
unsigned int wndWidth, wndHeight;
|
||||||
GetDefaultWindowSize(wndWidth, wndHeight);
|
GetDefaultWindowSize(wndWidth, wndHeight);
|
||||||
|
|
||||||
@ -133,7 +133,8 @@ void Game::Update() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Game::KeyboardInputsCheck() {
|
void Game::KeyboardInputsCheck() {
|
||||||
const float deltaTimeS = mSysTimer.GetDeltaTime() / 1000;
|
const float deltaTimeS = mKeyEventTimer.GetDeltaTime() / 1000;
|
||||||
|
mKeyEventTimer.Reset();
|
||||||
|
|
||||||
if (mMainWindow->hasFocus()) {
|
if (mMainWindow->hasFocus()) {
|
||||||
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Z)) {
|
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Z)) {
|
||||||
|
3
Game.hpp
3
Game.hpp
@ -45,7 +45,7 @@ public:
|
|||||||
void EventWindowSizeChanged(unsigned int w, unsigned int h);
|
void EventWindowSizeChanged(unsigned int w, unsigned int h);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Game(std::shared_ptr<sf::RenderWindow> mainWnd, bool dbgFlag) noexcept(false);
|
Game(std::shared_ptr<sf::RenderWindow>& mainWnd, bool dbgFlag) noexcept(false);
|
||||||
static Game* smInstance;
|
static Game* smInstance;
|
||||||
|
|
||||||
void Update();
|
void Update();
|
||||||
@ -57,6 +57,7 @@ private:
|
|||||||
std::unique_ptr<DebugUI> mDbgUI = nullptr;
|
std::unique_ptr<DebugUI> mDbgUI = nullptr;
|
||||||
|
|
||||||
SysTimer mSysTimer;
|
SysTimer mSysTimer;
|
||||||
|
SysTimer mKeyEventTimer;
|
||||||
std::unique_ptr<SysTimer> mPerfsTimer = nullptr;
|
std::unique_ptr<SysTimer> mPerfsTimer = nullptr;
|
||||||
|
|
||||||
std::shared_ptr<sf::RenderWindow> mMainWindow;
|
std::shared_ptr<sf::RenderWindow> mMainWindow;
|
||||||
|
@ -16,7 +16,7 @@ struct MainWindowParams {
|
|||||||
bool wndFullscreen = false;
|
bool wndFullscreen = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
static void CreateWindow(std::shared_ptr<sf::RenderWindow> wnd, MainWindowParams& params);
|
static void CreateWindow(std::shared_ptr<sf::RenderWindow>& wnd, MainWindowParams& params);
|
||||||
//static void ForceWindowRatio(sf::RenderWindow* wnd);
|
//static void ForceWindowRatio(sf::RenderWindow* wnd);
|
||||||
|
|
||||||
int main(int argc, char** argv) {
|
int main(int argc, char** argv) {
|
||||||
@ -62,6 +62,10 @@ int main(int argc, char** argv) {
|
|||||||
//ForceWindowRatio(mainWindow.get());
|
//ForceWindowRatio(mainWindow.get());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case sf::Event::MouseMoved:
|
||||||
|
arcadeGame.EventMouseMoved(event.mouseMove.x, event.mouseMove.y);
|
||||||
|
break;
|
||||||
|
|
||||||
//case sf::Event::LostFocus:
|
//case sf::Event::LostFocus:
|
||||||
// EventSuspending();
|
// EventSuspending();
|
||||||
// break;
|
// break;
|
||||||
@ -75,7 +79,7 @@ int main(int argc, char** argv) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Focus only actions
|
// Focus only actions
|
||||||
if (mainWindow->hasFocus()) {
|
/*if (mainWindow->hasFocus()) {
|
||||||
switch (event.type) {
|
switch (event.type) {
|
||||||
case sf::Event::MouseMoved:
|
case sf::Event::MouseMoved:
|
||||||
arcadeGame.EventMouseMoved(event.mouseMove.x, event.mouseMove.y);
|
arcadeGame.EventMouseMoved(event.mouseMove.x, event.mouseMove.y);
|
||||||
@ -84,7 +88,7 @@ int main(int argc, char** argv) {
|
|||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
// Focused-only keys actions
|
// Focused-only keys actions
|
||||||
@ -111,11 +115,14 @@ int main(int argc, char** argv) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mainWindow->close();
|
||||||
|
mainWindow.reset();
|
||||||
|
|
||||||
log.PrintInfo(LOGGER_MSG_FT("Bye bye!"));
|
log.PrintInfo(LOGGER_MSG_FT("Bye bye!"));
|
||||||
return EXIT_SUCCESS;
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void CreateWindow(std::shared_ptr<sf::RenderWindow> wnd, MainWindowParams& params) {
|
static void CreateWindow(std::shared_ptr<sf::RenderWindow>& wnd, MainWindowParams& params) {
|
||||||
sf::Uint32 wndStyle = sf::Style::Close | sf::Style::Titlebar;
|
sf::Uint32 wndStyle = sf::Style::Close | sf::Style::Titlebar;
|
||||||
sf::VideoMode vMode;
|
sf::VideoMode vMode;
|
||||||
|
|
||||||
@ -137,12 +144,12 @@ static void CreateWindow(std::shared_ptr<sf::RenderWindow> wnd, MainWindowParams
|
|||||||
}*/
|
}*/
|
||||||
|
|
||||||
wnd->create(vMode, "ProtoTank", wndStyle, params.wndContextSettings);
|
wnd->create(vMode, "ProtoTank", wndStyle, params.wndContextSettings);
|
||||||
|
wnd->setIcon(64, 64, _aicon_bin);
|
||||||
|
|
||||||
wnd->setVerticalSyncEnabled(false); // Never use simultaneously with framerate limiter
|
wnd->setVerticalSyncEnabled(false); // Never use simultaneously with framerate limiter
|
||||||
wnd->setFramerateLimit(60); // Never use simultaneously with VSync
|
wnd->setFramerateLimit(60); // Never use simultaneously with VSync
|
||||||
wnd->setKeyRepeatEnabled(false);
|
wnd->setKeyRepeatEnabled(false);
|
||||||
wnd->setMouseCursorVisible(true);
|
wnd->setMouseCursorVisible(true);
|
||||||
wnd->setIcon(64, 64, _aicon_bin);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user