diff options
Diffstat (limited to 'src/3rdparty/angle/src/libGLESv2/Program.cpp')
-rw-r--r-- | src/3rdparty/angle/src/libGLESv2/Program.cpp | 27 |
1 files changed, 12 insertions, 15 deletions
diff --git a/src/3rdparty/angle/src/libGLESv2/Program.cpp b/src/3rdparty/angle/src/libGLESv2/Program.cpp index 5f53a1f581..c38aa5a61a 100644 --- a/src/3rdparty/angle/src/libGLESv2/Program.cpp +++ b/src/3rdparty/angle/src/libGLESv2/Program.cpp @@ -1,5 +1,6 @@ +#include "precompiled.h" // -// Copyright (c) 2002-2012 The ANGLE Project Authors. All rights reserved. +// Copyright (c) 2002-2013 The ANGLE Project Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,14 +10,7 @@ #include "libGLESv2/Program.h" #include "libGLESv2/ProgramBinary.h" - -#include "common/debug.h" - -#include "libGLESv2/main.h" -#include "libGLESv2/Shader.h" -#include "libGLESv2/utilities.h" - -#include <string> +#include "libGLESv2/ResourceManager.h" namespace gl { @@ -91,7 +85,7 @@ void InfoLog::appendSanitized(const char *message) } while (found != std::string::npos); - append("%s\n", msg.c_str()); + append("%s", msg.c_str()); } void InfoLog::append(const char *format, ...) @@ -112,15 +106,17 @@ void InfoLog::append(const char *format, ...) if (!mInfoLog) { - mInfoLog = new char[infoLength + 1]; + mInfoLog = new char[infoLength + 2]; strcpy(mInfoLog, info); + strcpy(mInfoLog + infoLength, "\n"); } else { size_t logLength = strlen(mInfoLog); - char *newLog = new char[logLength + infoLength + 1]; + char *newLog = new char[logLength + infoLength + 2]; strcpy(newLog, mInfoLog); strcpy(newLog + logLength, info); + strcpy(newLog + logLength + infoLength, "\n"); delete[] mInfoLog; mInfoLog = newLog; @@ -136,7 +132,7 @@ void InfoLog::reset() } } -Program::Program(ResourceManager *manager, GLuint handle) : mResourceManager(manager), mHandle(handle) +Program::Program(rx::Renderer *renderer, ResourceManager *manager, GLuint handle) : mResourceManager(manager), mHandle(handle) { mFragmentShader = NULL; mVertexShader = NULL; @@ -144,6 +140,7 @@ Program::Program(ResourceManager *manager, GLuint handle) : mResourceManager(man mDeleteStatus = false; mLinked = false; mRefCount = 0; + mRenderer = renderer; } Program::~Program() @@ -247,7 +244,7 @@ bool Program::link() mInfoLog.reset(); - mProgramBinary.set(new ProgramBinary()); + mProgramBinary.set(new ProgramBinary(mRenderer)); mLinked = mProgramBinary->link(mInfoLog, mAttributeBindings, mFragmentShader, mVertexShader); return mLinked; @@ -304,7 +301,7 @@ bool Program::setProgramBinary(const void *binary, GLsizei length) mInfoLog.reset(); - mProgramBinary.set(new ProgramBinary()); + mProgramBinary.set(new ProgramBinary(mRenderer)); mLinked = mProgramBinary->load(mInfoLog, binary, length); if (!mLinked) { |