Basic rectangle drawing
This commit is contained in:
parent
ddf7e14682
commit
f547ff1b8f
2
.gitmodules
vendored
2
.gitmodules
vendored
@ -5,5 +5,5 @@
|
||||
path = libs/glm
|
||||
url = https://github.com/nigelbarink/glm.git
|
||||
[submodule "spdlog"]
|
||||
path = libs\\spdlog
|
||||
path = libs/spdlog
|
||||
url = https://github.com/nigelbarink/spdlog.git
|
||||
|
@ -38,6 +38,19 @@ Shader::Shader(const std::string vertexShaderPath, const std::string fragmentSha
|
||||
return;
|
||||
}
|
||||
|
||||
id = glCreateProgram();
|
||||
|
||||
glAttachShader(id, vertId);
|
||||
glAttachShader(id, fragId);
|
||||
glLinkProgram(id);
|
||||
|
||||
|
||||
int success;
|
||||
glGetProgramiv(id, GL_LINK_STATUS, &success);
|
||||
if(!success) {
|
||||
glGetProgramInfoLog(id, 512, NULL, infoLog);
|
||||
printf("ERROR::SHADER_PROGRAM::LINKING_FAILED\n %s", infoLog);
|
||||
}
|
||||
|
||||
|
||||
delete[] vertexCode;
|
||||
@ -90,5 +103,5 @@ char* Shader::readFile (const char* filePath){
|
||||
|
||||
void Shader::Use()
|
||||
{
|
||||
// glUseProgam(id);
|
||||
glUseProgram(id);
|
||||
}
|
@ -1,4 +1,5 @@
|
||||
#pragma once
|
||||
#include <glad/glad.h>
|
||||
#include <GLFW/glfw3.h>
|
||||
|
||||
|
||||
@ -9,7 +10,7 @@ class BarinkWindow{
|
||||
bool VulkanSupported;
|
||||
int Width, Height;
|
||||
|
||||
bool InitGLFW();
|
||||
static bool InitGLFW();
|
||||
|
||||
|
||||
public:
|
||||
|
@ -8,12 +8,15 @@ bool BarinkWindow::InitGLFW(){
|
||||
spdlog::error("Failed to initialise GLFW!");
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
BarinkWindow::BarinkWindow(const int width, const int height) :
|
||||
Width(width), Height(height), FullScreen(false){
|
||||
InitGLFW();
|
||||
if (InitGLFW()==false) {
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
window = glfwCreateWindow(Width, Height, "BarinkEngine", NULL, NULL);
|
||||
|
||||
@ -25,6 +28,10 @@ Width(width), Height(height), FullScreen(false){
|
||||
}
|
||||
|
||||
glfwMakeContextCurrent(window);
|
||||
if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) {
|
||||
printf("Failed to initialize GLAD!\n");
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
VulkanSupported = glfwVulkanSupported();
|
||||
|
||||
@ -33,6 +40,9 @@ Width(width), Height(height), FullScreen(false){
|
||||
|
||||
|
||||
|
||||
glClearColor(0.2f, 0.2f, 0.2f, 1.0f);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
@ -10,36 +10,74 @@ extern "C"
|
||||
#include "lualib.h"
|
||||
}
|
||||
|
||||
float vertices[] = {
|
||||
0.5f, 0.5f, 0.0f, // top, right
|
||||
0.5f, -0.5f, 0.0f, // bottom right
|
||||
-0.5f, -0.5f, 0.0f, // bottom left
|
||||
-0.5f, 0.5f, 0.0f // top left
|
||||
};
|
||||
|
||||
unsigned int indices[] = {
|
||||
0,1,3,
|
||||
1,2,3
|
||||
};
|
||||
|
||||
int main (int argc, char *argv[] ){
|
||||
|
||||
|
||||
BarinkWindow GameWindow(800, 600);
|
||||
|
||||
|
||||
if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)){
|
||||
printf("Failed to initialize GLAD!\n");
|
||||
return -1;
|
||||
}
|
||||
std::string vertexShaderSource = "build/SandboxApplication/Debug/test.vs";
|
||||
std::string fragmentShaderSource = "build/SandboxApplication/Debug/test.fs";
|
||||
//Shader shader (vertexShaderSource, fragmentShaderSource);
|
||||
Shader shader (vertexShaderSource, fragmentShaderSource);
|
||||
|
||||
spdlog::info("Working directory: {}", argv[0]);
|
||||
|
||||
lua_State* L = luaL_newstate();
|
||||
luaL_openlibs(L);
|
||||
luaL_dostring(L, "print('BarinkEngine')");
|
||||
luaL_dofile(L,"script.lua");
|
||||
luaL_dofile(L,"./script.lua");
|
||||
|
||||
unsigned int VBO, VAO, EBO;
|
||||
|
||||
glGenVertexArrays(1, &VAO);
|
||||
glGenBuffers(1, &VBO);
|
||||
glGenBuffers(1, &EBO);
|
||||
|
||||
|
||||
glBindVertexArray(VAO);
|
||||
|
||||
glBindBuffer(GL_ARRAY_BUFFER, VBO);
|
||||
glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
|
||||
|
||||
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, EBO);
|
||||
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(indices), indices, GL_STATIC_DRAW);
|
||||
|
||||
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void*)0);
|
||||
glEnableVertexAttribArray(0);
|
||||
|
||||
glBindBuffer(GL_ARRAY_BUFFER, 0);
|
||||
|
||||
glBindVertexArray(0);
|
||||
|
||||
glClearColor(0.2f, 0.2f, 0.2f, 1.0f);
|
||||
|
||||
|
||||
|
||||
while (!GameWindow.WindowShouldClose()) {
|
||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT) ;
|
||||
|
||||
shader.Use();
|
||||
glBindVertexArray(VAO);
|
||||
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, EBO);
|
||||
glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0);
|
||||
glBindVertexArray(0);
|
||||
|
||||
GameWindow.Poll();
|
||||
}
|
||||
|
||||
|
||||
glDeleteVertexArrays(1, &VAO);
|
||||
glDeleteBuffers(1, &EBO);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
1
SandboxApplication/script.lua
Normal file
1
SandboxApplication/script.lua
Normal file
@ -0,0 +1 @@
|
||||
print("Hello world!")
|
2
libs/glm
2
libs/glm
@ -1 +1 @@
|
||||
Subproject commit 72a01d3432204128442b2198d3f595bb84f011bb
|
||||
Subproject commit cc98465e3508535ba8c7f6208df934c156a018dc
|
38
premake5.lua
38
premake5.lua
@ -14,26 +14,21 @@ workspace "BarinkEngine"
|
||||
includedirs {
|
||||
"./libs/glad/include",
|
||||
"./MyGraphicsEngine/include",
|
||||
"./libs/lua-5.4.4/lua"
|
||||
"./libs/spdlog/include",
|
||||
"./libs/lua/include",
|
||||
"./libs/glfw/include",
|
||||
}
|
||||
|
||||
|
||||
|
||||
libdirs{
|
||||
"./libs/spdlog-1.9.1/build",
|
||||
"./libs/lua-5.4.4/lua"
|
||||
"./libs/spdlog/_builds/Release",
|
||||
"./libs/glfw/lib-vc2022",
|
||||
"./libs/lua"
|
||||
}
|
||||
|
||||
links{
|
||||
"liblua",
|
||||
"spdlog",
|
||||
"glfw3",
|
||||
"X11",
|
||||
"GL",
|
||||
"GLU",
|
||||
"pthread",
|
||||
"dl",
|
||||
"m",
|
||||
"MyGraphicsEngine"
|
||||
}
|
||||
|
||||
@ -55,27 +50,22 @@ workspace "BarinkEngine"
|
||||
|
||||
includedirs {
|
||||
"./libs/glad/include",
|
||||
"./libs/glfw-3.3.4/include",
|
||||
"./libs/glew-2.2.0/include",
|
||||
"./libs/spdlog-1.9.1/include",
|
||||
"./libs/glfw/include",
|
||||
"./libs/glew/include",
|
||||
"./libs/spdlog/include",
|
||||
"./libs/glm/glm",
|
||||
"./MyGraphicsEngine/include"
|
||||
}
|
||||
|
||||
|
||||
libdirs{
|
||||
"./libs/spdlog-1.9.1/build"
|
||||
"./libs/spdlog/_builds/Release",
|
||||
"./libs/glfw/lib-vc2022"
|
||||
}
|
||||
|
||||
links {
|
||||
"libspdlog",
|
||||
"glfw3",
|
||||
"X11",
|
||||
"GL",
|
||||
"GLU",
|
||||
"pthread",
|
||||
"dl",
|
||||
"m"
|
||||
"spdlog",
|
||||
"glfw3"
|
||||
}
|
||||
|
||||
files {
|
||||
@ -85,7 +75,7 @@ workspace "BarinkEngine"
|
||||
}
|
||||
|
||||
filter "configurations:Debug"
|
||||
defines {"DEBUG"}
|
||||
defines {"NDEBUG"}
|
||||
symbols "On"
|
||||
|
||||
filter "configurations:Release"
|
||||
|
Loading…
Reference in New Issue
Block a user