From 4fc8ce64702ecefbcf36a489f94327f3d78d0f7c Mon Sep 17 00:00:00 2001 From: Sam Hocevar Date: Fri, 31 Aug 2012 11:54:30 +0000 Subject: [PATCH] gpu: now shaders can only be created from a LolFx file. --- src/gpu/shader.cpp | 16 +++++----------- src/gpu/shader.h | 1 - 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/src/gpu/shader.cpp b/src/gpu/shader.cpp index c6dadef3..b200e7cf 100644 --- a/src/gpu/shader.cpp +++ b/src/gpu/shader.cpp @@ -131,17 +131,6 @@ Shader *Shader::Create(char const *lolfx) #endif } - Shader *ret = NULL; - if (vert && frag) - ret = Create(vert, frag); - - delete[] src; - - return ret; -} - -Shader *Shader::Create(char const *vert, char const *frag) -{ uint32_t new_vert_crc = Hash::Crc32(vert); uint32_t new_frag_crc = Hash::Crc32(frag); @@ -149,12 +138,17 @@ Shader *Shader::Create(char const *vert, char const *frag) { if (ShaderData::shaders[n]->data->vert_crc == new_vert_crc && ShaderData::shaders[n]->data->frag_crc == new_frag_crc) + { + delete[] src; return ShaderData::shaders[n]; + } } Shader *ret = new Shader(vert, frag); ShaderData::shaders[ShaderData::nshaders] = ret; ShaderData::nshaders++; + + delete[] src; return ret; } diff --git a/src/gpu/shader.h b/src/gpu/shader.h index 46457363..43a08e8b 100644 --- a/src/gpu/shader.h +++ b/src/gpu/shader.h @@ -64,7 +64,6 @@ class Shader { public: static Shader *Create(char const *lolfx); - static Shader *Create(char const *vert, char const *frag); static void Destroy(Shader *shader); ShaderAttrib GetAttribLocation(char const *attr, struct VertexUsage usage,