aboutsummaryrefslogtreecommitdiff
path: root/platform/gl/gl.c
diff options
context:
space:
mode:
authoriamcheeseman <[email protected]>2026-05-26 15:35:13 -0400
committeriamcheeseman <[email protected]>2026-05-26 15:35:13 -0400
commited7dfaad432b6e3fe838b9a2b5fe225abea5365d (patch)
tree0af2e01a688d963ec6d2977802dbeb9156335845 /platform/gl/gl.c
parent8122098e3854bf68ca63cc25e082ba51a27b8615 (diff)
tbh i did a lot
Diffstat (limited to 'platform/gl/gl.c')
-rw-r--r--platform/gl/gl.c44
1 files changed, 10 insertions, 34 deletions
diff --git a/platform/gl/gl.c b/platform/gl/gl.c
index 3e454d2..15bfe00 100644
--- a/platform/gl/gl.c
+++ b/platform/gl/gl.c
@@ -2,8 +2,9 @@
// quality here is meh. Things could be organized more into functions, but as
// for now, it works fine, and isn't worth improving immediately.
-//#include <glad/glad.h>
-#include <GLFW/glfw3.h>
+#include "glad/glad.h"
+#define GLFW_NO_INCLUDE
+#include "GLFW/glfw3.h"
#include "teensy.h"
#include "teensy_common.h"
@@ -46,37 +47,8 @@ typedef struct {
uint32_t typed;
} Gl_Platform;
-typedef unsigned int GLuint;
-typedef unsigned int GLenum;
-
Gl_Platform p;
-GLuint glCreateShader(GLenum type);
-void glCompileShader(GLuint shader);
-void glShaderSource(GLuint shader, int n, const char **src, void *ptr);
-void glGetShaderiv(GLuint shader, GLenum what, int *res);
-void glGetShaderInfoLog(GLuint shader, size_t len, void *ptr, char *txt);
-void glGenVertexArrays(int n, GLuint *vaos);
-void glGenBuffers(int n, GLuint *bos);
-void glBindVertexArray(GLuint vao);
-void glBindBuffer(GLenum type, GLuint bo);
-void glBufferData(GLenum type, size_t size, void *data, GLenum draw);
-void glVertexAttribPointer();
-void glEnableVertexAttribArray(int n);
-GLuint glCreateProgram(void);
-void glAttachShader(GLuint prog, GLuint shader);
-void glLinkProgram(GLuint prog);
-void glDeleteShader(GLuint shader);
-void glGetProgramiv(GLuint prog, GLenum type, int *res);
-void glGetProgramInfoLog(GLuint prog, size_t len, void *ptr, char *txt);
-int glGetUniformLocation(GLuint prog, const char *name);
-void glDeleteProgram(GLuint prog);
-void glDeleteBuffers(int n, GLuint *bos);
-void glDeleteVertexArrays(int n, GLuint *vaos);
-void glGenerateMipmap(GLenum type);
-void glUseProgram(GLuint prog);
-void glUniform1i(int loc, int val);
-
static
void character_callback(GLFWwindow *window, unsigned int cp)
{
@@ -125,18 +97,22 @@ void ty_platform_init(ty_Ctx *ctx)
glfwMakeContextCurrent(p.win);
+ ty_log_info("initializing GLAD...");
+ if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress))
+ ty_log_fatal(TY_PLATFORM_ERR, "could not load GLAD");
+
glfwSetCharCallback(p.win, character_callback);
ty_Vec2 vertices[] = {
ty_vec2(-1, -1), ty_vec2(0, 1),
ty_vec2( 1, -1), ty_vec2(1, 1),
ty_vec2( 1, 1), ty_vec2(1, 0),
-
+
ty_vec2(-1, -1), ty_vec2(0, 1),
ty_vec2( 1, 1), ty_vec2(1, 0),
ty_vec2(-1, 1), ty_vec2(0, 0),
};
-
+
glGenTextures(1, &p.screen_handle);
glBindTexture(GL_TEXTURE_2D, p.screen_handle);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
@@ -163,7 +139,7 @@ void ty_platform_init(ty_Ctx *ctx)
GL_FALSE,
sizeof(ty_Vec2) * 2, (void*)sizeof(ty_Vec2)
);
-
+
glEnableVertexAttribArray(1);
p.program = glCreateProgram();