From 44a4539744442ec9153ec5726d289c894a7f4ee1 Mon Sep 17 00:00:00 2001 From: pragma37 Date: Thu, 29 Jul 2021 18:40:03 +0200 Subject: [PATCH] debug shader compilation --- Malt/GL/Shader.py | 28 ++++++++++++++++------------ Malt/Pipeline.py | 6 ++---- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/Malt/GL/Shader.py b/Malt/GL/Shader.py index bd148528..920cbf32 100644 --- a/Malt/GL/Shader.py +++ b/Malt/GL/Shader.py @@ -189,22 +189,29 @@ def remove_line_directive_paths(source): def compile_gl_program(vertex, fragment): status = gl_buffer(GL_INT,1) - length = gl_buffer(GL_INT,1) - info_log = gl_buffer(GL_BYTE, 1024) - error = "" def compile_shader (source, shader_type): shader = glCreateShader(shader_type) - glShaderSource(shader, source) + + source_ascii = source.encode('ascii') + + print("DEBUG SOURCE -------------------") + print(source_ascii) + + import ctypes + c_shader = GLuint(shader) + c_count = GLsizei(1) + c_source = (ctypes.c_char_p * 1)(source_ascii) + c_length = (GLint * 1)(len(source_ascii)) + + glShaderSource.wrappedOperation(c_shader, c_count, c_source, c_length) + glCompileShader(shader) glGetShaderiv(shader, GL_COMPILE_STATUS, status) if status[0] == GL_FALSE: - try: #BGL - glGetShaderInfoLog(shader, 1024, length, info_log) - except: #PYOPENGL - info_log = glGetShaderInfoLog(shader) + info_log = glGetShaderInfoLog(shader) nonlocal error error += 'SHADER COMPILER ERROR :\n' + buffer_to_string(info_log) @@ -223,10 +230,7 @@ def compile_shader (source, shader_type): glGetProgramiv(program, GL_LINK_STATUS, status) if status[0] == GL_FALSE: - try: #BGL - glGetProgramInfoLog(program, 1024, length, info_log) - except: #PYOPENGL - info_log = glGetProgramInfoLog(program) + info_log = glGetProgramInfoLog(program) error += 'SHADER LINKER ERROR :\n' + buffer_to_string(info_log) return (program, error) diff --git a/Malt/Pipeline.py b/Malt/Pipeline.py index 9d7b4ca3..3f7ed636 100644 --- a/Malt/Pipeline.py +++ b/Malt/Pipeline.py @@ -17,10 +17,8 @@ class Pipeline(object): - GLSL_HEADER = ''' - #version 410 core - #extension GL_ARB_shading_language_include : enable - ''' + GLSL_HEADER = "#version 410 core\n#extension GL_ARB_shading_language_include : enable\n" + SHADER_INCLUDE_PATHS = [] BLEND_SHADER = None