diff options
author | chai <chaifix@163.com> | 2018-09-06 21:30:06 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2018-09-06 21:30:06 +0800 |
commit | 074f9fe1ac195284865ac7b123469bafe2c9679f (patch) | |
tree | 0ca739dbf92f706c059c3424d18efe4fac07b30c /src/libjin/Graphics | |
parent | 957c073df5fc2c57d531c96cdca11bfafdbae076 (diff) |
*update
Diffstat (limited to 'src/libjin/Graphics')
-rw-r--r-- | src/libjin/Graphics/Drawable.cpp | 4 | ||||
-rw-r--r-- | src/libjin/Graphics/Shader.cpp | 3 | ||||
-rw-r--r-- | src/libjin/Graphics/base.shader.h | 2 |
3 files changed, 6 insertions, 3 deletions
diff --git a/src/libjin/Graphics/Drawable.cpp b/src/libjin/Graphics/Drawable.cpp index d4fd1ad..53b4f85 100644 --- a/src/libjin/Graphics/Drawable.cpp +++ b/src/libjin/Graphics/Drawable.cpp @@ -12,8 +12,8 @@ namespace graphics Drawable::Drawable(int w, int h) : texture(0) - , size() - , anchor() + , size(w, h) + , anchor(0, 0) { } diff --git a/src/libjin/Graphics/Shader.cpp b/src/libjin/Graphics/Shader.cpp index 45ad3d6..1af861f 100644 --- a/src/libjin/Graphics/Shader.cpp +++ b/src/libjin/Graphics/Shader.cpp @@ -45,7 +45,7 @@ namespace graphics JSLProgram::JSLProgram(const char* program) : currentTextureUnit(DEFAULT_TEX_UNIT) { - char* fs = (char*)alloca(strlen(program) + strlen(base_shader)); + char* fs = (char*)calloc(1, strlen(program) + base_size); formatShader(fs, program); GLuint shader = glCreateShader(GL_FRAGMENT_SHADER); glShaderSource(shader, 1, (const GLchar**)&fs, NULL); @@ -53,6 +53,7 @@ namespace graphics pid = glCreateProgram(); glAttachShader(pid, shader); glLinkProgram(pid); + free(fs); } JSLProgram::~JSLProgram() diff --git a/src/libjin/Graphics/base.shader.h b/src/libjin/Graphics/base.shader.h index 109d791..0b8eca9 100644 --- a/src/libjin/Graphics/base.shader.h +++ b/src/libjin/Graphics/base.shader.h @@ -23,6 +23,8 @@ void main() )"; #define formatShader(buf, program)\ sprintf(buf, base_shader, default_tex, program, default_tex) + +#define base_size (strlen(base_shader) + strlen(default_tex)*2) /* * https://stackoverflow.com/questions/10868958/what-does-sampler2d-store * The sampler2D is bound to a texture unit. The glUniform call binds it to texture |