From 65fd8e89bb3cb5359a3796fea61f0133637c5f19 Mon Sep 17 00:00:00 2001 From: "Grayson Riffe (Laptop)" Date: Wed, 1 Sep 2021 19:17:24 -0500 Subject: [PATCH] Added UIElement and Text; Custom fonts are supported --- Game/src/MainState.cpp | 2 +- .../AssetBuild/base/fonts/default.ttf | Bin 0 -> 245600 bytes .../entityFragment.shader} | 0 .../entityVertex.shader} | 0 .../base/shaders/textFragment.shader | 13 ++ .../AssetBuild/base/shaders/textVertex.shader | 14 +++ NFPackCreator/src/main.cpp | 2 +- NothinFancy/NothinFancy.vcxproj | 12 +- NothinFancy/NothinFancy.vcxproj.filters | 12 ++ NothinFancy/src/Assets.cpp | 14 +++ NothinFancy/src/Renderer/Camera.cpp | 2 - NothinFancy/src/Renderer/Drawable/Entity.cpp | 2 + NothinFancy/src/Renderer/Drawable/Model.cpp | 5 +- NothinFancy/src/Renderer/Drawable/Text.cpp | 113 ++++++++++++++++++ .../src/Renderer/Drawable/UIElement.cpp | 19 +++ NothinFancy/src/Renderer/Renderer.cpp | 40 +++++-- NothinFancy/src/Renderer/Shader.cpp | 5 + NothinFancy/src/Renderer/VertexArray.cpp | 6 + NothinFancy/src/include/Application.h | 4 +- NothinFancy/src/include/Assets.h | 10 +- NothinFancy/src/include/Config.h | 4 +- NothinFancy/src/include/Drawable.h | 1 - NothinFancy/src/include/Entity.h | 2 + NothinFancy/src/include/NothinFancy.h | 18 +-- NothinFancy/src/include/Renderer.h | 7 +- NothinFancy/src/include/Shader.h | 1 + NothinFancy/src/include/Text.h | 34 ++++++ NothinFancy/src/include/UIElement.h | 18 +++ NothinFancy/src/include/Utility.h | 20 +++- NothinFancy/src/include/VertexArray.h | 1 + 30 files changed, 346 insertions(+), 35 deletions(-) create mode 100644 NFPackCreator/AssetBuild/base/fonts/default.ttf rename NFPackCreator/AssetBuild/base/{defaultShader/defaultFragment.shader => shaders/entityFragment.shader} (100%) rename NFPackCreator/AssetBuild/base/{defaultShader/defaultVertex.shader => shaders/entityVertex.shader} (100%) create mode 100644 NFPackCreator/AssetBuild/base/shaders/textFragment.shader create mode 100644 NFPackCreator/AssetBuild/base/shaders/textVertex.shader create mode 100644 NothinFancy/src/Renderer/Drawable/Text.cpp create mode 100644 NothinFancy/src/Renderer/Drawable/UIElement.cpp create mode 100644 NothinFancy/src/include/Text.h create mode 100644 NothinFancy/src/include/UIElement.h diff --git a/Game/src/MainState.cpp b/Game/src/MainState.cpp index bbabee9..d888445 100644 --- a/Game/src/MainState.cpp +++ b/Game/src/MainState.cpp @@ -9,7 +9,7 @@ MainState::MainState(nf::Application* app) : void MainState::onEnter() { Log("MainState onEnter!"); -} + } void MainState::update(double deltaTime) { diff --git a/NFPackCreator/AssetBuild/base/fonts/default.ttf b/NFPackCreator/AssetBuild/base/fonts/default.ttf new file mode 100644 index 0000000000000000000000000000000000000000..2d8e9ca9ce1216331f7d665090eb5678bacdd614 GIT binary patch literal 245600 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 literal 0 HcmV?d00001 diff --git a/NFPackCreator/AssetBuild/base/defaultShader/defaultFragment.shader b/NFPackCreator/AssetBuild/base/shaders/entityFragment.shader similarity index 100% rename from NFPackCreator/AssetBuild/base/defaultShader/defaultFragment.shader rename to NFPackCreator/AssetBuild/base/shaders/entityFragment.shader diff --git a/NFPackCreator/AssetBuild/base/defaultShader/defaultVertex.shader b/NFPackCreator/AssetBuild/base/shaders/entityVertex.shader similarity index 100% rename from NFPackCreator/AssetBuild/base/defaultShader/defaultVertex.shader rename to NFPackCreator/AssetBuild/base/shaders/entityVertex.shader diff --git a/NFPackCreator/AssetBuild/base/shaders/textFragment.shader b/NFPackCreator/AssetBuild/base/shaders/textFragment.shader new file mode 100644 index 0000000..3a281b7 --- /dev/null +++ b/NFPackCreator/AssetBuild/base/shaders/textFragment.shader @@ -0,0 +1,13 @@ +#version 330 core + +out vec4 color; + +uniform sampler2D text; +uniform vec3 textColor; + +in vec2 texCoord; + +void main() { + vec4 temp = vec4(1.0, 1.0, 1.0, texture(text, texCoord).r); + color = vec4(textColor.xyz, 1.0) * temp; +} diff --git a/NFPackCreator/AssetBuild/base/shaders/textVertex.shader b/NFPackCreator/AssetBuild/base/shaders/textVertex.shader new file mode 100644 index 0000000..14988a3 --- /dev/null +++ b/NFPackCreator/AssetBuild/base/shaders/textVertex.shader @@ -0,0 +1,14 @@ +#version 330 core + +layout(location = 0) in vec2 pos; +layout(location = 1) in vec2 texCoords; + +//uniform mat4 model; +uniform mat4 proj; + +out vec2 texCoord; + +void main() { + gl_Position = proj * vec4(pos, 0.0, 1.0); + texCoord = texCoords; +} \ No newline at end of file diff --git a/NFPackCreator/src/main.cpp b/NFPackCreator/src/main.cpp index 44c0106..483af26 100644 --- a/NFPackCreator/src/main.cpp +++ b/NFPackCreator/src/main.cpp @@ -75,7 +75,7 @@ int main(int argc, char* argv[]) { } std::set extensions; - extensions.insert({ "obj", "png", "shader" }); + extensions.insert({ "obj", "png", "shader", "ttf" }); unsigned int dirCount = 0; const std::filesystem::path workingDir = std::filesystem::current_path(); diff --git a/NothinFancy/NothinFancy.vcxproj b/NothinFancy/NothinFancy.vcxproj index bbb4065..4916c57 100644 --- a/NothinFancy/NothinFancy.vcxproj +++ b/NothinFancy/NothinFancy.vcxproj @@ -104,7 +104,7 @@ true - glew32s.lib;opengl32.lib;%(AdditionalDependencies) + glew32s.lib;opengl32.lib;freetype.lib;%(AdditionalDependencies) $(ProjectDir)dep\lib\;%(AdditionalLibraryDirectories) @@ -132,7 +132,7 @@ true - glew32s.lib;opengl32.lib;%(AdditionalDependencies) + glew32s.lib;opengl32.lib;freetype.lib;%(AdditionalDependencies) $(ProjectDir)dep\lib\;%(AdditionalLibraryDirectories) @@ -156,7 +156,7 @@ true - glew32s.lib;opengl32.lib;%(AdditionalDependencies) + glew32s.lib;opengl32.lib;freetype.lib;%(AdditionalDependencies) $(ProjectDir)dep\lib\;%(AdditionalLibraryDirectories) @@ -184,7 +184,7 @@ true - glew32s.lib;opengl32.lib;%(AdditionalDependencies) + glew32s.lib;opengl32.lib;freetype.lib;%(AdditionalDependencies) $(ProjectDir)dep\lib\;%(AdditionalLibraryDirectories) @@ -203,6 +203,8 @@ + + @@ -226,7 +228,9 @@ + + diff --git a/NothinFancy/NothinFancy.vcxproj.filters b/NothinFancy/NothinFancy.vcxproj.filters index 71ee110..993779f 100644 --- a/NothinFancy/NothinFancy.vcxproj.filters +++ b/NothinFancy/NothinFancy.vcxproj.filters @@ -60,6 +60,12 @@ Source Files + + Source Files + + + Source Files + @@ -116,6 +122,12 @@ Header Files + + Header Files + + + Header Files + diff --git a/NothinFancy/src/Assets.cpp b/NothinFancy/src/Assets.cpp index d05ecbb..f007411 100644 --- a/NothinFancy/src/Assets.cpp +++ b/NothinFancy/src/Assets.cpp @@ -20,6 +20,10 @@ namespace nf { } + AFont::~AFont() { + + } + AssetPack::AssetPack() { } @@ -73,6 +77,14 @@ namespace nf { m_assets[assetName] = shader; continue; } + if (extension == "ttf") { + AFont* font = new AFont; + font->data = new char[assetSize]; + std::memcpy(font->data, &assetContents[0], assetSize); + font->size = assetSize; + m_assets[assetName] = font; + continue; + } Error("Invalid asset extention in pack \"" + (std::string)packName + (std::string)"\"!"); } } @@ -100,4 +112,6 @@ namespace nf { AModel* BaseAssets::cone; AModel* BaseAssets::cylinder; AModel* BaseAssets::torus; + + AFont* BaseAssets::defaultFont; } \ No newline at end of file diff --git a/NothinFancy/src/Renderer/Camera.cpp b/NothinFancy/src/Renderer/Camera.cpp index 72cf5c3..c71d631 100644 --- a/NothinFancy/src/Renderer/Camera.cpp +++ b/NothinFancy/src/Renderer/Camera.cpp @@ -24,8 +24,6 @@ namespace nf { m_app->trackMouse(true); else m_app->trackMouse(false); - m_yaw = -90.0f; - m_pitch = 0.0f; } } diff --git a/NothinFancy/src/Renderer/Drawable/Entity.cpp b/NothinFancy/src/Renderer/Drawable/Entity.cpp index 630f412..11d859c 100644 --- a/NothinFancy/src/Renderer/Drawable/Entity.cpp +++ b/NothinFancy/src/Renderer/Drawable/Entity.cpp @@ -2,6 +2,8 @@ #include +#include "Shader.h" + namespace nf { Entity::Entity() : m_model(nullptr), diff --git a/NothinFancy/src/Renderer/Drawable/Model.cpp b/NothinFancy/src/Renderer/Drawable/Model.cpp index 9fefc9f..86cfff4 100644 --- a/NothinFancy/src/Renderer/Drawable/Model.cpp +++ b/NothinFancy/src/Renderer/Drawable/Model.cpp @@ -7,7 +7,10 @@ #include "Texture.h" namespace nf { - Model::Model() { + Model::Model() : + m_texture(nullptr) + { + } void Model::create(const void* vertexBufferData, const size_t vertexBufferSize, const void* indexBufferData, size_t indexBufferCount, const void* textureCoordinatesBufferData, size_t textureCoordinatesBufferSize, const char* textureData, size_t textureSize) { diff --git a/NothinFancy/src/Renderer/Drawable/Text.cpp b/NothinFancy/src/Renderer/Drawable/Text.cpp new file mode 100644 index 0000000..82305f8 --- /dev/null +++ b/NothinFancy/src/Renderer/Drawable/Text.cpp @@ -0,0 +1,113 @@ +#include "Text.h" + +#include "GL/glew.h" +#include "ft2build.h" +#include FT_FREETYPE_H + +#include "UIElement.h" +#include "Shader.h" + +namespace nf { + Text::Text() : + m_centered(false) + { + + } + + void Text::create(const std::string& string, const Vec2& position, const Vec3& color, unsigned int size, Asset* font) { + m_string = string; + m_position = position; + m_color = color; + FT_Library ft; + if (FT_Init_FreeType(&ft)) + Error("Could not initialize FreeType!"); + FT_Face face; + AFont& newFont = *(AFont*)font; + if (FT_New_Memory_Face(ft, (const unsigned char*)newFont.data, newFont.size, 0, &face)) + Error("Could not load font!"); + FT_Set_Pixel_Sizes(face, 0, size); + for (unsigned char c = 0; c < 128; c++) { + FT_Load_Char(face, c, FT_LOAD_RENDER); + unsigned int tex; + glGenTextures(1, &tex); + glBindTexture(GL_TEXTURE_2D, tex); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RED, face->glyph->bitmap.width, face->glyph->bitmap.rows, 0, GL_RED, GL_UNSIGNED_BYTE, face->glyph->bitmap.buffer); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + Character ch = { tex, Vec2((float)face->glyph->bitmap.width, (float)face->glyph->bitmap.rows), Vec2(face->glyph->bitmap_left, face->glyph->bitmap_top), (unsigned int)face->glyph->advance.x }; + m_font[c] = ch; + } + FT_Done_Face(face); + FT_Done_FreeType(ft); + m_vao = new VertexArray; + m_vao->addBuffer(nullptr, 0); + m_vao->push(2); + m_vao->finishBufferLayout(); + m_vao->addBuffer(nullptr, 0); + m_vao->push(2); + m_vao->finishBufferLayout(); + } + + void Text::centered(bool centered) { + m_centered = centered; + } + + const char* Text::identity() { + return "text"; + } + + void Text::render(Shader* shader, unsigned int windowWidth, unsigned int windowHeight) { + float scale = windowWidth / 4000.0f; + m_vao->bind(); + std::string::const_iterator si; + float currX = (float)m_position.x * windowWidth, currY = (float)m_position.y * windowHeight; + if (m_centered) { + float textWidth = 0.0f; + float textHeight = 0.0f; + for (si = m_string.begin(); si != m_string.end(); si++) { + Character& c = m_font[*si]; + textWidth += (c.advance >> 6) * scale; + if (c.size.y >= textHeight) + textHeight = (float)c.size.y * scale; + } + currX = ((float)windowWidth - textWidth) / 2; + currY = ((float)windowHeight - textHeight) / 2; + } + glm::vec3 color = { m_color.x, m_color.y, m_color.z }; + shader->setUniform("textColor", color); + for (si = m_string.begin(); si != m_string.end(); si++) { + Character& c = m_font[*si]; + float x = currX + (float)c.bearing.x * scale; + float y = currY - float(c.size.y - c.bearing.y) * scale; + float w = (float)c.size.x * scale; + float h = (float)c.size.y * scale; + float vb[3][4] = { + x, y + h, + x, y, + x + w, y, + x, y + h, + x + w, y, + x + w, y + h + }; + float tc[3][4] = { + 0.0, 0.0, + 0.0, 1.0, + 1.0, 1.0, + 0.0, 0.0, + 1.0, 1.0, + 1.0, 0.0 + }; + glBindTexture(GL_TEXTURE_2D, c.texID); + m_vao->setBufferData(0, vb, sizeof(vb)); + m_vao->setBufferData(1, tc, sizeof(tc)); + glDrawArrays(GL_TRIANGLES, 0, 6); + currX += (c.advance >> 6) * scale; + } + } + + Text::~Text() { + + } +} \ No newline at end of file diff --git a/NothinFancy/src/Renderer/Drawable/UIElement.cpp b/NothinFancy/src/Renderer/Drawable/UIElement.cpp new file mode 100644 index 0000000..ba5be01 --- /dev/null +++ b/NothinFancy/src/Renderer/Drawable/UIElement.cpp @@ -0,0 +1,19 @@ +#include "UIElement.h" + +namespace nf { + UIElement::UIElement() { + + } + + const char* UIElement::identity() { + return "none"; + } + + void UIElement::render(Shader* shader, unsigned int windowWidth, unsigned int windowHeight) { + + } + + UIElement::~UIElement() { + + } +} \ No newline at end of file diff --git a/NothinFancy/src/Renderer/Renderer.cpp b/NothinFancy/src/Renderer/Renderer.cpp index f0cced9..d947636 100644 --- a/NothinFancy/src/Renderer/Renderer.cpp +++ b/NothinFancy/src/Renderer/Renderer.cpp @@ -5,6 +5,8 @@ #include "glm/glm.hpp" #include "Application.h" +#include "Shader.h" +#include "UIElement.h" #include "Utility.h" namespace nf { @@ -52,12 +54,16 @@ namespace nf { glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glEnable(GL_CULL_FACE); + glPixelStorei(GL_UNPACK_ALIGNMENT, 1); glClearColor(0.0f, 0.0f, 0.0f, 1.0f); baseAP.load("base.nfpack"); - const char* defaultVertex = baseAP["defaultVertex.shader"]->data; - const char* defaultFragment = baseAP["defaultFragment.shader"]->data; - m_defaultShader = new Shader(defaultVertex, defaultFragment); + const char* entityVertex = baseAP["entityVertex.shader"]->data; + const char* entityFragment = baseAP["entityFragment.shader"]->data; + m_entityShader = new Shader(entityVertex, entityFragment); + const char* textVertex = baseAP["textVertex.shader"]->data; + const char* textFragment = baseAP["textFragment.shader"]->data; + m_textShader = new Shader(textVertex, textFragment); BaseAssets::cube = (AModel*)baseAP["cube.obj"]; BaseAssets::plane = (AModel*)baseAP["plane.obj"]; @@ -65,6 +71,7 @@ namespace nf { BaseAssets::cone = (AModel*)baseAP["cone.obj"]; BaseAssets::cylinder = (AModel*)baseAP["cylinder.obj"]; BaseAssets::torus = (AModel*)baseAP["torus.obj"]; + BaseAssets::defaultFont = (AFont*)baseAP["default.ttf"]; } void Renderer::render(Entity& in) { @@ -73,25 +80,38 @@ namespace nf { m_lGame.push_back(&in); //TODO: Sort transparent objects by distance; Farthest first } + void Renderer::render(UIElement& in) { + if (&in == nullptr) + Error("Tried to render Entity before being created!"); + m_lUI.push_back(&in); + //TODO: Sort transparent objects by distance; Farthest first + } void Renderer::doFrame(Camera* camera) { glViewport(0, 0, m_app->getConfig().width, m_app->getConfig().height); - glm::mat4 proj = glm::perspective(glm::radians(45.0f), (float)m_app->getConfig().width / (float)m_app->getConfig().height, 0.1f, 100000.0f); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + glm::mat4 proj = glm::perspective(glm::radians(45.0f), (float)m_app->getConfig().width / (float)m_app->getConfig().height, 0.1f, 100000.0f); for (Entity* draw : m_lGame) { Entity& curr = *draw; - curr.bind(m_defaultShader); - m_defaultShader->setUniform("proj", proj); - camera->bind(m_defaultShader); + curr.bind(m_entityShader); + m_entityShader->setUniform("proj", proj); + camera->bind(m_entityShader); //TODO: Clean this up a bit glDrawElements(GL_TRIANGLES, curr.getModel()->getIndexCount(), GL_UNSIGNED_INT, nullptr); } m_lGame.clear(); - for (Drawable* draw : m_lUI) { - Drawable& curr = *draw; - + proj = glm::ortho(0.0f, (float)m_app->getConfig().width, 0.0f, (float)m_app->getConfig().height); + for (UIElement* draw : m_lUI) { + UIElement& curr = *draw; + if (curr.identity() == "text") { + m_textShader->bind(); + m_textShader->setUniform("proj", proj); + curr.render(m_textShader, m_app->getConfig().width, m_app->getConfig().height); + continue; + } + //TODO: Add else if for UI texture } m_lUI.clear(); diff --git a/NothinFancy/src/Renderer/Shader.cpp b/NothinFancy/src/Renderer/Shader.cpp index 0068483..fc25158 100644 --- a/NothinFancy/src/Renderer/Shader.cpp +++ b/NothinFancy/src/Renderer/Shader.cpp @@ -52,6 +52,11 @@ namespace nf { getUniformLocation(name); glUniformMatrix4fv(m_uniformLocations[name], 1, GL_FALSE, glm::value_ptr(data)); } + void Shader::setUniform(const char* name, glm::vec3& data) { + if (m_uniformLocations.find(name) == m_uniformLocations.end()) + getUniformLocation(name); + glUniform3fv(m_uniformLocations[name], 1, glm::value_ptr(data)); + } void Shader::getUniformLocation(const char* uniformName) { unsigned int loc = glGetUniformLocation(m_id, uniformName); diff --git a/NothinFancy/src/Renderer/VertexArray.cpp b/NothinFancy/src/Renderer/VertexArray.cpp index 68677f6..c13a6a7 100644 --- a/NothinFancy/src/Renderer/VertexArray.cpp +++ b/NothinFancy/src/Renderer/VertexArray.cpp @@ -50,6 +50,12 @@ namespace nf { glBindVertexArray(m_id); } + void VertexArray::setBufferData(unsigned int buffer, const void* data, const size_t dataSize) { + bind(); + m_buffers[buffer]->bind(); + glBufferData(GL_ARRAY_BUFFER, dataSize, data, GL_STATIC_DRAW); + } + VertexArray::~VertexArray() { for (VertexBuffer* curr : m_buffers) { delete curr; diff --git a/NothinFancy/src/include/Application.h b/NothinFancy/src/include/Application.h index 74b24d5..f36ee9e 100644 --- a/NothinFancy/src/include/Application.h +++ b/NothinFancy/src/include/Application.h @@ -52,7 +52,7 @@ namespace nf { LPCWSTR m_wclassName; HWND m_window; LONG m_defaultWindowStyle; - int m_altWidth, m_altHeight; + unsigned int m_altWidth, m_altHeight; std::chrono::duration m_fpsDuration; double m_deltaTime; @@ -75,7 +75,7 @@ namespace nf { //Array of booleans that represent keyboard and mouse input minus the scrollwheel bool m_input[164]; - int m_mouseX, m_mouseY; + unsigned int m_mouseX, m_mouseY; bool m_trackingMouse; bool m_mouseTrackFirst; int m_mouseDiffX, m_mouseDiffY; diff --git a/NothinFancy/src/include/Assets.h b/NothinFancy/src/include/Assets.h index 4f647a8..c6689cf 100644 --- a/NothinFancy/src/include/Assets.h +++ b/NothinFancy/src/include/Assets.h @@ -27,6 +27,12 @@ namespace nf { ~AShader() override; }; + struct AFont : Asset { + size_t size; + + ~AFont() override; + }; + class AssetPack { public: AssetPack(); @@ -48,6 +54,8 @@ namespace nf { static AModel* cylinder; static AModel* torus; - static ATexture* logo; + static AFont* defaultFont; + + //static ATexture* logo; }; } \ No newline at end of file diff --git a/NothinFancy/src/include/Config.h b/NothinFancy/src/include/Config.h index 444850b..ada3a8e 100644 --- a/NothinFancy/src/include/Config.h +++ b/NothinFancy/src/include/Config.h @@ -3,8 +3,8 @@ namespace nf { struct Config { public: - int width; - int height; + unsigned int width; + unsigned int height; bool fullscreen; const char* title; }; diff --git a/NothinFancy/src/include/Drawable.h b/NothinFancy/src/include/Drawable.h index 86f3bfa..2d4dcfc 100644 --- a/NothinFancy/src/include/Drawable.h +++ b/NothinFancy/src/include/Drawable.h @@ -1,5 +1,4 @@ #pragma once -#include "Shader.h" #include "VertexArray.h" #include "IndexBuffer.h" diff --git a/NothinFancy/src/include/Entity.h b/NothinFancy/src/include/Entity.h index ea54c21..a229ce3 100644 --- a/NothinFancy/src/include/Entity.h +++ b/NothinFancy/src/include/Entity.h @@ -4,6 +4,8 @@ #include "Utility.h" namespace nf { + class Shader; + class Entity { public: Entity(); diff --git a/NothinFancy/src/include/NothinFancy.h b/NothinFancy/src/include/NothinFancy.h index 66571ba..212bb43 100644 --- a/NothinFancy/src/include/NothinFancy.h +++ b/NothinFancy/src/include/NothinFancy.h @@ -9,6 +9,8 @@ #include "Utility.h" #include "IntroGamestate.h" #include "Assets.h" +#include "Text.h" +#include "Input.h" namespace nf { class Drawable; @@ -48,7 +50,7 @@ namespace nf { Renderer(Application* app); void render(Entity& in); - //TODO: Create second render function for UIElements + void render(UIElement& in); void doFrame(Camera* camera); @@ -59,9 +61,12 @@ namespace nf { HDC m_hdc; HGLRC m_hglrc; + AssetPack baseAP; + std::vector m_lGame; - std::vector m_lUI; - Shader* m_defaultShader; + std::vector m_lUI; + Shader* m_entityShader; + Shader* m_textShader; }; class Application { @@ -107,7 +112,7 @@ namespace nf { LPCWSTR m_wclassName; HWND m_window; LONG m_defaultWindowStyle; - int m_altWidth, m_altHeight; + unsigned int m_altWidth, m_altHeight; std::chrono::duration m_fpsDuration; double m_deltaTime; @@ -130,7 +135,7 @@ namespace nf { //Array of booleans that represent keyboard and mouse input minus the scrollwheel bool m_input[164]; - int m_mouseX, m_mouseY; + unsigned int m_mouseX, m_mouseY; bool m_trackingMouse; bool m_mouseTrackFirst; int m_mouseDiffX, m_mouseDiffY; @@ -138,5 +143,4 @@ namespace nf { //Renderer object to use OpenGL to render the current state Renderer* m_renderer; }; -} -#include "Input.h" \ No newline at end of file +} \ No newline at end of file diff --git a/NothinFancy/src/include/Renderer.h b/NothinFancy/src/include/Renderer.h index 96ca0dd..cb7a40b 100644 --- a/NothinFancy/src/include/Renderer.h +++ b/NothinFancy/src/include/Renderer.h @@ -7,12 +7,14 @@ namespace nf { class Application; + class UIElement; class Renderer { public: Renderer(Application* app); void render(Entity& in); + void render(UIElement& in); //TODO: Create second render function for UIElements void doFrame(Camera* camera); @@ -27,7 +29,8 @@ namespace nf { AssetPack baseAP; std::vector m_lGame; - std::vector m_lUI; - Shader* m_defaultShader; + std::vector m_lUI; + Shader* m_entityShader; + Shader* m_textShader; }; } \ No newline at end of file diff --git a/NothinFancy/src/include/Shader.h b/NothinFancy/src/include/Shader.h index abb93b4..95a7ff7 100644 --- a/NothinFancy/src/include/Shader.h +++ b/NothinFancy/src/include/Shader.h @@ -10,6 +10,7 @@ namespace nf { void bind(); void setUniform(const char* name, glm::mat4& data); + void setUniform(const char* name, glm::vec3& data); ~Shader(); private: diff --git a/NothinFancy/src/include/Text.h b/NothinFancy/src/include/Text.h new file mode 100644 index 0000000..f1eec91 --- /dev/null +++ b/NothinFancy/src/include/Text.h @@ -0,0 +1,34 @@ +#pragma once +#include + +#include "UIElement.h" +#include "Assets.h" +#include "Utility.h" + +namespace nf { + struct Character { + unsigned int texID; + Vec2 size; + Vec2 bearing; + unsigned int advance; + }; + + class Text : public UIElement { + public: + Text(); + + void create(const std::string& string, const Vec2& position, const Vec3& color = {1.0, 1.0, 1.0}, unsigned int size = 160, Asset* font = BaseAssets::defaultFont); + void centered(bool centered); + + const char* identity() override; + void render(Shader* shader, unsigned int windowWidth, unsigned int windowHeight) override; + + ~Text(); + private: + std::string m_string; + Vec2 m_position; + Vec3 m_color; + bool m_centered; + std::map m_font; + }; +} \ No newline at end of file diff --git a/NothinFancy/src/include/UIElement.h b/NothinFancy/src/include/UIElement.h new file mode 100644 index 0000000..84664a2 --- /dev/null +++ b/NothinFancy/src/include/UIElement.h @@ -0,0 +1,18 @@ +#pragma once +#include "Drawable.h" + +namespace nf { + class Shader; + + class UIElement : public Drawable { + public: + UIElement(); + + virtual const char* identity(); + virtual void render(Shader* shader, unsigned int windowWidth, unsigned int windowHeight); + + ~UIElement(); + private: + + }; +} \ No newline at end of file diff --git a/NothinFancy/src/include/Utility.h b/NothinFancy/src/include/Utility.h index 11ba9cf..8a0e96f 100644 --- a/NothinFancy/src/include/Utility.h +++ b/NothinFancy/src/include/Utility.h @@ -38,7 +38,25 @@ __debugbreak();} #define Error(x) {MessageBox(FindWindow(L"NFClass", NULL), toWide(x), L"NF Engine Error", MB_OK | MB_ICONERROR);\ std::exit(-1);} #endif - + struct Vec2 { + Vec2() : x(0.0), y(0.0) {} + Vec2(double x1) : x(x1), y(x1) {} + Vec2(double x1, double y1) : x(x1), y(y1) {} + Vec2 operator*(const double scalar) { + return Vec2(x * scalar, y * scalar); + } + Vec2& operator+=(const Vec2& rhs) { + this->x += rhs.x; + this->y += rhs.y; + return *this; + } + Vec2& operator-=(const Vec2& rhs) { + this->x -= rhs.x; + this->y -= rhs.y; + return *this; + } + double x, y; + }; struct Vec3 { Vec3() : x(0.0), y(0.0), z(0.0) {} Vec3(double x1) : x(x1), y(x1), z(x1) {} diff --git a/NothinFancy/src/include/VertexArray.h b/NothinFancy/src/include/VertexArray.h index e13c72b..a0c187a 100644 --- a/NothinFancy/src/include/VertexArray.h +++ b/NothinFancy/src/include/VertexArray.h @@ -19,6 +19,7 @@ namespace nf { void push(unsigned int count); void finishBufferLayout(); void bind(); + void setBufferData(unsigned int buffer, const void* data, const size_t dataSize); ~VertexArray(); private: