summaryrefslogtreecommitdiff
path: root/src/shader/shader.c
diff options
context:
space:
mode:
authorsanine-a <sanine.not@pm.me>2020-10-27 15:31:14 -0500
committersanine-a <sanine.not@pm.me>2020-10-27 15:31:14 -0500
commitccd98d4dbdb7acde2433153a01d00a3b9bed02c0 (patch)
tree9ad033d4d6b48d9824a9c924fe23a421feff1f70 /src/shader/shader.c
parent50a8d3dc884816fbb1e3a3df3c401358e62b5eea (diff)
fix bug in honey.shader.new and add basic primitives bindings
Diffstat (limited to 'src/shader/shader.c')
-rw-r--r--src/shader/shader.c50
1 files changed, 16 insertions, 34 deletions
diff --git a/src/shader/shader.c b/src/shader/shader.c
index d733c60..122d59e 100644
--- a/src/shader/shader.c
+++ b/src/shader/shader.c
@@ -19,28 +19,6 @@ void honey_setup_shader(lua_State* L)
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-static bool compile_shader(int* shader,
- const char* source,
- int shader_type,
- char* error_message,
- size_t error_size)
-{
- int success;
-
- *shader = glCreateShader(GL_VERTEX_SHADER);
- glShaderSource(*shader, 1, source, NULL);
- glCompileShader(*shader);
- glGetShaderiv(*shader, GL_COMPILE_STATUS, &success);
- if (!success) {
- glGetShaderInfoLog(*shader, error_size, NULL, error_message);
- return false;
- }
-
- return true;
-}
-
-/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
-
int honey_shader_new(lua_State* L)
{
if (!honey_lua_validate_types(L, 2, HONEY_STRING, HONEY_STRING))
@@ -48,23 +26,28 @@ int honey_shader_new(lua_State* L)
const char* vertex_shader_source = lua_tostring(L, 1);
const char* fragment_shader_source = lua_tostring(L, 2);
-
+
+ int success;
char error[1024];
- int vertex_shader, fragment_shader;
-
- if (!compile_shader(&vertex_shader,
- vertex_shader_source,
- GL_VERTEX_SHADER,
- error, 1024)) {
+ int vertex_shader = glCreateShader(GL_VERTEX_SHADER);
+ glShaderSource(vertex_shader, 1,
+ &vertex_shader_source, NULL);
+ glCompileShader(vertex_shader);
+ glGetShaderiv(vertex_shader, GL_COMPILE_STATUS, &success);
+ if (!success) {
+ glGetShaderInfoLog(vertex_shader, 1024, NULL, error);
lua_pushstring(L, error);
lua_error(L);
}
- if (!compile_shader(&fragment_shader,
- fragment_shader_source,
- GL_FRAGMENT_SHADER,
- error, 1024)) {
+ int fragment_shader = glCreateShader(GL_FRAGMENT_SHADER);
+ glShaderSource(fragment_shader, 1,
+ &fragment_shader_source, NULL);
+ glCompileShader(fragment_shader);
+ glGetShaderiv(fragment_shader, GL_COMPILE_STATUS, &success);
+ if (!success) {
+ glGetShaderInfoLog(fragment_shader, 1024, NULL, error);
lua_pushstring(L, error);
lua_error(L);
}
@@ -74,7 +57,6 @@ int honey_shader_new(lua_State* L)
glAttachShader(shader, fragment_shader);
glLinkProgram(shader);
- int success;
glGetShaderiv(shader, GL_LINK_STATUS, &success);
if (!success) {
glGetShaderInfoLog(shader, 1024, NULL, error);