glut -> glfw

This commit is contained in:
gbrochar 2020-12-25 14:58:25 +01:00
parent c86bab2d8a
commit 0d8fd653a5
4 changed files with 59 additions and 25 deletions

View File

@ -6,7 +6,7 @@
# By: gbrochar <gbrochar@student.42.fr> +#+ +:+ +#+ # # By: gbrochar <gbrochar@student.42.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ # # +#+#+#+#+#+ +#+ #
# Created: 2020/12/17 19:47:03 by gbrochar #+# #+# # # Created: 2020/12/17 19:47:03 by gbrochar #+# #+# #
# Updated: 2020/12/24 12:29:48 by gbrochar ### ########.fr # # Updated: 2020/12/25 14:54:54 by gbrochar ### ########.fr #
# # # #
# **************************************************************************** # # **************************************************************************** #
@ -38,7 +38,7 @@ SRC = $(addprefix $(SRC_DIR), $(SRC_FILE))
OBJ = $(addprefix $(OBJ_DIR), $(OBJ_FILE)) OBJ = $(addprefix $(OBJ_DIR), $(OBJ_FILE))
INC = $(addprefix $(INC_DIR), $(INC_FILE)) INC = $(addprefix $(INC_DIR), $(INC_FILE))
LIB = -lm -lGL -lglut -lGLEW LIB = -lm -lGL -lglfw -lGLEW
CC = gcc CC = gcc

View File

@ -6,7 +6,7 @@
/* By: gbrochar <gbrochar@student.42.fr> +#+ +:+ +#+ */ /* By: gbrochar <gbrochar@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2020/12/22 12:08:22 by gbrochar #+# #+# */ /* Created: 2020/12/22 12:08:22 by gbrochar #+# #+# */
/* Updated: 2020/12/24 14:32:38 by gbrochar ### ########.fr */ /* Updated: 2020/12/25 14:54:37 by gbrochar ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -20,7 +20,7 @@
# include <math.h> # include <math.h>
# include <GL/glew.h> # include <GL/glew.h>
# include <GL/freeglut.h> # include <GLFW/glfw3.h>
# define SUCCESS 0 # define SUCCESS 0
# define FAILURE -1 # define FAILURE -1
@ -117,6 +117,6 @@ void init_camera(t_env *e);
void init_object(t_env *e); void init_object(t_env *e);
void init_env(t_env *e); void init_env(t_env *e);
void run(t_env *e); int run(t_env *e);
#endif #endif

View File

@ -6,7 +6,7 @@
/* By: gbrochar <gbrochar@student.42.fr> +#+ +:+ +#+ */ /* By: gbrochar <gbrochar@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2020/12/22 12:02:14 by gbrochar #+# #+# */ /* Created: 2020/12/22 12:02:14 by gbrochar #+# #+# */
/* Updated: 2020/12/23 20:30:48 by gbrochar ### ########.fr */ /* Updated: 2020/12/25 14:58:03 by gbrochar ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -19,7 +19,10 @@ int main(int argc, char **argv)
init_env(&e); init_env(&e);
if (parse(&e, argc, argv) == SUCCESS) if (parse(&e, argc, argv) == SUCCESS)
run(&e); {
if (run(&e) == FAILURE)
printf("Error with glfw initialization\n");
}
else else
{ {
free_env(&e); free_env(&e);

View File

@ -6,7 +6,7 @@
/* By: gbrochar <gbrochar@student.42.fr> +#+ +:+ +#+ */ /* By: gbrochar <gbrochar@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2020/12/23 19:38:05 by gbrochar #+# #+# */ /* Created: 2020/12/23 19:38:05 by gbrochar #+# #+# */
/* Updated: 2020/12/24 14:39:39 by gbrochar ### ########.fr */ /* Updated: 2020/12/25 14:54:28 by gbrochar ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -70,14 +70,14 @@ static void RenderSceneCB()
glDisableVertexAttribArray(0); glDisableVertexAttribArray(0);
glutSwapBuffers(); // glutSwapBuffers();
} }
static void InitializeGlutCallbacks(void) // static void InitializeGlutCallbacks(void)
{ // {
glutDisplayFunc(RenderSceneCB); // // glutDisplayFunc(RenderSceneCB);
glutIdleFunc(RenderSceneCB); // // glutIdleFunc(RenderSceneCB);
} // }
static void CreateVertexBuffer(t_env *e) static void CreateVertexBuffer(t_env *e)
{ {
@ -187,22 +187,38 @@ static void CompileShaders()
assert(gModelLocation != 0xFFFFFFFF); assert(gModelLocation != 0xFFFFFFFF);
} }
void run(t_env *e) int run(t_env *e)
{ {
int argc = 1; // int argc = 1;
char *argv[1]; // char *argv[1];
argv[0] = strdup("scop"); // argv[0] = strdup("scop");
glutInit(&argc, argv); // glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH); // glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH);
glutInitWindowSize(e->window.width, e->window.height); // glutInitWindowSize(e->window.width, e->window.height);
glutInitWindowPosition(100, 100); // glutInitWindowPosition(100, 100);
glutCreateWindow("scop"); // glutCreateWindow("scop");
GLFWwindow* window;
/* Initialize the library */
if (!glfwInit())
return (FAILURE);
/* Create a windowed mode window and its OpenGL context */
window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL);
if (!window)
{
glfwTerminate();
return (FAILURE);
}
glfwMakeContextCurrent(window);
index_count = e->object.indices.ptr; index_count = e->object.indices.ptr;
printf("%ld\n", e->object.indices.ptr); printf("%ld\n", e->object.indices.ptr);
printf("%ld\n", e->object.vertices.ptr); printf("%ld\n", e->object.vertices.ptr);
InitializeGlutCallbacks(); // InitializeGlutCallbacks();
// Must be done after glut is initialized ! // Must be done after glut is initialized !
GLenum res = glewInit(); GLenum res = glewInit();
if (res != GLEW_OK) if (res != GLEW_OK)
@ -214,5 +230,20 @@ void run(t_env *e)
glClearColor(0.0f, 0.0f, 0.0f, 0.0f); glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
CreateVertexBuffer(e); CreateVertexBuffer(e);
CompileShaders(); CompileShaders();
glutMainLoop(); /* Loop until the user closes the window */
while (!glfwWindowShouldClose(window))
{
/* Render here */
glClear(GL_COLOR_BUFFER_BIT);
RenderSceneCB();
/* Swap front and back buffers */
glfwSwapBuffers(window);
/* Poll for and process events */
glfwPollEvents();
}
glfwTerminate();
return (SUCCESS);
} }