Tesseract-Engine/src/Windows/RenderWindow.h

55 lines
1.1 KiB
C
Raw Normal View History

#pragma once
#include "../Rendering/FBO.h"
#include <glm/glm.hpp>
2025-01-05 04:04:21 +00:00
#include <memory>
#include "Rendering/Shader.h" //
2025-01-05 04:04:21 +00:00
#include "Components/CameraComponent.h"
2025-01-06 18:43:18 +00:00
#include "Components/GameObject.h"
#include "Engine/InputManager.h"
class RenderWindow
{
public:
2025-01-06 18:43:18 +00:00
void Show(bool *GameRunning, double deltaTime);
private:
void InitGLResources();
void RenderSceneToFBO(bool *GameRunning);
2025-01-05 04:04:21 +00:00
std::shared_ptr<CameraComponent> m_ActiveCamera;
// Offscreen render target
FBO m_FBO;
// Keep track if we've initialized
bool m_Initialized = false;
// GL objects for the cube
unsigned int m_VAO = 0;
unsigned int m_VBO = 0;
unsigned int m_EBO = 0;
// Spin
float m_RotationAngle = 0.f;
int m_LastWidth = 0;
int m_LastHeight = 0;
// The loaded texture
unsigned int m_TextureID = 0;
// The loaded shader program (via AssetManager)
Shader* m_ShaderPtr = nullptr;
Shader* m_LineShaderPtr = nullptr;
2025-01-06 18:43:18 +00:00
GameObject m_EditorCamera;
};
struct Ray
{
glm::vec3 origin;
glm::vec3 direction; // Should be normalized
};