Events isolation
This commit is contained in:
parent
2031e1a4c4
commit
29935cf54e
@ -34,7 +34,7 @@ Graphic3DRenderer::Graphic3DRenderer() {
|
||||
if (mMainCamera == nullptr) {
|
||||
mMainCamera = std::make_unique<Camera>();
|
||||
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();
|
||||
}
|
||||
|
||||
@ -182,8 +182,8 @@ void Graphic3DRenderer::Draw(sf::RenderTexture& context) {
|
||||
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[3] = v_tri[0];
|
||||
context.draw(v_tri, 4, sf::LineStrip, sRS);
|
||||
//context.draw(v_tri, 3, sf::Triangles, sRS);
|
||||
//context.draw(v_tri, 4, sf::LineStrip, sRS);
|
||||
context.draw(v_tri, 3, sf::Triangles, sRS);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -34,7 +34,7 @@ void UI::CreateDefaultRenderWindow() {
|
||||
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;
|
||||
spriteRender.setTexture(this->mUIRender.getTexture());
|
||||
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::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();
|
||||
|
||||
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::RenderStates sRS(sBM);
|
||||
|
||||
|
@ -15,7 +15,7 @@ public:
|
||||
void SetRTSize(unsigned int w, unsigned int h, bool recreateCanvas = false);
|
||||
|
||||
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:
|
||||
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
|
||||
|
||||
void CreateDefaultRenderWindow();
|
||||
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, sf::Vector2f& view) { DrawUIOnRenderWindow(context, view.x, view.y); }
|
||||
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, sf::Vector2f& view) { DrawUIOnRenderWindow(context, view.x, view.y); }
|
||||
|
||||
};
|
||||
|
||||
@ -44,7 +44,7 @@ public:
|
||||
CockpitUI& operator= (CockpitUI const&) = delete;
|
||||
|
||||
void Update() override;
|
||||
void Draw(std::shared_ptr<sf::RenderWindow>) override;
|
||||
void Draw(std::shared_ptr<sf::RenderWindow>&) override;
|
||||
|
||||
private:
|
||||
sf::Texture mStaticCockpitTexture;
|
||||
@ -53,7 +53,7 @@ private:
|
||||
|
||||
class WorldUI final : public UI {
|
||||
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&&) = default;
|
||||
@ -62,7 +62,7 @@ public:
|
||||
WorldUI& operator= (WorldUI const&) = delete;
|
||||
|
||||
void Update() override;
|
||||
void Draw(std::shared_ptr<sf::RenderWindow>) override;
|
||||
void Draw(std::shared_ptr<sf::RenderWindow>&) override;
|
||||
|
||||
private:
|
||||
std::shared_ptr<Graphic3DRenderer> mWorld3D;
|
||||
|
5
Game.cpp
5
Game.cpp
@ -35,7 +35,7 @@ Game* Game::smInstance = nullptr;
|
||||
|
||||
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;
|
||||
GetDefaultWindowSize(wndWidth, wndHeight);
|
||||
|
||||
@ -133,7 +133,8 @@ void Game::Update() {
|
||||
}
|
||||
|
||||
void Game::KeyboardInputsCheck() {
|
||||
const float deltaTimeS = mSysTimer.GetDeltaTime() / 1000;
|
||||
const float deltaTimeS = mKeyEventTimer.GetDeltaTime() / 1000;
|
||||
mKeyEventTimer.Reset();
|
||||
|
||||
if (mMainWindow->hasFocus()) {
|
||||
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);
|
||||
|
||||
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;
|
||||
|
||||
void Update();
|
||||
@ -57,6 +57,7 @@ private:
|
||||
std::unique_ptr<DebugUI> mDbgUI = nullptr;
|
||||
|
||||
SysTimer mSysTimer;
|
||||
SysTimer mKeyEventTimer;
|
||||
std::unique_ptr<SysTimer> mPerfsTimer = nullptr;
|
||||
|
||||
std::shared_ptr<sf::RenderWindow> mMainWindow;
|
||||
|
@ -16,7 +16,7 @@ struct MainWindowParams {
|
||||
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);
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
@ -62,6 +62,10 @@ int main(int argc, char** argv) {
|
||||
//ForceWindowRatio(mainWindow.get());
|
||||
break;
|
||||
|
||||
case sf::Event::MouseMoved:
|
||||
arcadeGame.EventMouseMoved(event.mouseMove.x, event.mouseMove.y);
|
||||
break;
|
||||
|
||||
//case sf::Event::LostFocus:
|
||||
// EventSuspending();
|
||||
// break;
|
||||
@ -75,7 +79,7 @@ int main(int argc, char** argv) {
|
||||
}
|
||||
|
||||
// Focus only actions
|
||||
if (mainWindow->hasFocus()) {
|
||||
/*if (mainWindow->hasFocus()) {
|
||||
switch (event.type) {
|
||||
case sf::Event::MouseMoved:
|
||||
arcadeGame.EventMouseMoved(event.mouseMove.x, event.mouseMove.y);
|
||||
@ -84,7 +88,7 @@ int main(int argc, char** argv) {
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
// Focused-only keys actions
|
||||
@ -111,11 +115,14 @@ int main(int argc, char** argv) {
|
||||
break;
|
||||
}
|
||||
|
||||
mainWindow->close();
|
||||
mainWindow.reset();
|
||||
|
||||
log.PrintInfo(LOGGER_MSG_FT("Bye bye!"));
|
||||
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::VideoMode vMode;
|
||||
|
||||
@ -137,12 +144,12 @@ static void CreateWindow(std::shared_ptr<sf::RenderWindow> wnd, MainWindowParams
|
||||
}*/
|
||||
|
||||
wnd->create(vMode, "ProtoTank", wndStyle, params.wndContextSettings);
|
||||
wnd->setIcon(64, 64, _aicon_bin);
|
||||
|
||||
wnd->setVerticalSyncEnabled(false); // Never use simultaneously with framerate limiter
|
||||
wnd->setFramerateLimit(60); // Never use simultaneously with VSync
|
||||
wnd->setKeyRepeatEnabled(false);
|
||||
wnd->setMouseCursorVisible(true);
|
||||
wnd->setIcon(64, 64, _aicon_bin);
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
x
Reference in New Issue
Block a user