Graphics Example Stable

This commit is contained in:
IlyaShurupov 2024-03-19 11:37:55 +03:00
parent bb5cbfdfe2
commit b342f4fd8c
10 changed files with 28 additions and 12 deletions

View file

@ -10,7 +10,7 @@ file(GLOB HEADERS "./public/*.hpp")
add_library(${PROJECT_NAME} STATIC ${SOURCES} ${HEADERS})
target_include_directories(${PROJECT_NAME} PUBLIC ./public/)
target_include_directories(${PROJECT_NAME} PRIVATE ${BINDINGS_INCLUDE})
target_link_libraries(${PROJECT_NAME} PUBLIC Strings Math Allocators)
target_link_libraries(${PROJECT_NAME} PUBLIC Math Allocators)
target_link_libraries(${PROJECT_NAME} PRIVATE ${BINDINGS_LIBS})
### -------------------------- Examples -------------------------- ###

View file

@ -1,5 +1,7 @@
#include "Window.hpp"
#include "Graphics.hpp"
#include "Timing.hpp"
#include "imgui.h"
@ -16,15 +18,19 @@ int main() {
int fps = 0;
tp::Timer timer(1000);
auto window = tp::Window::createWindow();
{
auto window = tp::Window::createWindow(800, 600, "Window 1");
tp::Graphics graphics(window);
if (window) {
while (!window->shouldClose()) {
window->processEvents();
graphics.proc();
ImGui::Text("fps: %i", fps);
graphics.draw();
window->draw();
if (timer.isTimeout()) {
@ -37,8 +43,9 @@ int main() {
}
}
tp::Window::destroyWindow(window);
}
tp::Window::destroyWindow(window);
testModule.deinitialize();
}

View file

@ -4,7 +4,7 @@
#define GLEW_STATIC
#include <GL/glew.h>
#include "WindowContext.hpp"
#include "Graphics.hpp"
// -------- Canvas -------- //
#define NANOVG_GL3_IMPLEMENTATION

View file

@ -1,6 +1,8 @@
#include "Window.hpp"
#include "WindowContext.hpp"
#include "Allocators.hpp"
#include "Graphics.hpp"
// -------- Debug UI -------- //

View file

@ -1,2 +1,7 @@
#include "EventHandler.hpp"
using namespace tp;
EventHandler::EventHandler() = default;
EventHandler::~EventHandler() = default;

View file

@ -1,5 +1,6 @@
#include "Window.hpp"
#include "WindowContext.hpp"
#include "Allocators.hpp"
// -------- OpenGL -------- //
#include <GL/glew.h>
@ -31,13 +32,13 @@ static void keyCallback(GLFWwindow* window, int key, int scancode, int action, i
static void mouseButtonCallback(GLFWwindow* window, int button, int action, int mods);
static void scrollCallback(GLFWwindow* window, double xOffset, double yOffset);
Window::Window(Vec2F size, const String& title) {
Window::Window(Vec2F size, const char* title) {
mContext = new Context();
glfwWindowHint(GLFW_TRANSPARENT_FRAMEBUFFER, 1);
// Create a window and OpenGL context
mContext->window = glfwCreateWindow((int) size.x, (int) size.y, title.read(), nullptr, nullptr);
mContext->window = glfwCreateWindow((int) size.x, (int) size.y, title, nullptr, nullptr);
if (!mContext->window) {
printf("Failed to create GLFW window\n");
return;
@ -63,7 +64,7 @@ Window::~Window() {
delete mContext;
}
Window* Window::createWindow(Vec2F size, const String& title) {
Window* Window::createWindow(Vec2F size, const char* title) {
HeapAllocGlobal::startIgnore();
static int count = 1;

View file

@ -56,7 +56,7 @@ namespace tp {
// Event posters has no access to any custom state and only report any changes in any way
class EventHandler {
public:
EventHandler() = default;
EventHandler();
~EventHandler();
public: // Event Poster Interface

View file

@ -63,7 +63,7 @@ namespace tp {
};
class Graphics {
private:
public:
explicit Graphics(Window* window) : mGui(window), mCanvas(window) {}
void proc() {

View file

@ -1,6 +1,8 @@
#pragma once
#include "Environment.hpp"
namespace tp {
enum class InputID : ualni {
/* Printable keys */

View file

@ -2,7 +2,6 @@
#include "Buffer.hpp"
#include "EventHandler.hpp"
#include "Strings.hpp"
namespace tp {
@ -12,11 +11,11 @@ namespace tp {
class Context;
private:
Window(Vec2F size, const String& title);
Window(Vec2F size, const char* title);
~Window();
public:
static Window* createWindow(Vec2F size = { 1000.f, 900.f }, const String& title = "Window");
static Window* createWindow(Vec2F size = { 1000.f, 900.f }, const char* title = "Window");
static void destroyWindow(Window* window);
public: